0
点赞
收藏
分享

微信扫一扫

实验三 SpringJDBCtEMPLATE对数据库操作案例

云朵里的佛光 2022-03-11 阅读 61

实验三 SpringJDBCtEMPLATE对数据库操作案例

实验任务一:创建工程导入所需要的坐标依赖

 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.45</version>
    </dependency>
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus</artifactId>
      <version>3.3.2</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.22</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

实验任务二:创建数据库

create database mybatis;
use mybatis;
create table customer(
id int primary key auto_increment,
username varchar(10),
jobs varchar(10),
phone varchar(10)
) ;

实验任务三:创建Customer实体类

package com.axx.pojo;

        import lombok.Data;

@Data
public class Customer {
    private Integer id;
    private String username;
    private String jobs;
    private String phone;

}

实验任务四:创建CustomerDao类

package com.axx.dao;

import com.axx.pojo.Customer;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CustomerDao {

    public List<Customer> query();

    public void add(Customer customer);

    public void update(Customer customer);

    public Customer queryById(Integer id);

    public void deleteById(Integer id);
}


实验任务五:创建CustomerService类

package com.axx.service;

import com.axx.pojo.Customer;
import com.axx.pojo.Student;

import java.util.List;

public interface StudentService {

    public List<Student> query();

    public void add(Student student);

    public void update(Student student);

    public Student queryById(Integer id);

    public void deleteById(Integer id);
}

实验任务六:创建CustomerServiceImpl实现类

package com.axx.service.impl;

import com.axx.dao.CustomerDao;
import com.axx.pojo.Customer;
import com.axx.service.CustomerService;
import com.axx.until.BeanDao;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class  CustomerServiceImpl extends BeanDao implements CustomerService {

    SqlSession session ;
    CustomerDao dao ;

    public List<Customer> query() {
        session =getSession();
        dao = session.getMapper(CustomerDao.class);
        List<Customer> list = dao.query();
        closeSession(session);
        return list;
    }


    public void add(Customer customer) {
        session =getSession();
        dao = session.getMapper(CustomerDao.class);
        dao.add(customer);
        session.commit();
        closeSession(session);
    }

    @Override
    public void update(Customer customer) {
        session =getSession();
        dao = session.getMapper(CustomerDao.class);
        dao.update(customer);
        session.commit();
        closeSession(session);
    }

    @Override
    public Customer queryById(Integer id) {
        session =getSession();
        dao = session.getMapper(CustomerDao.class);
        Customer byId = dao.queryById(id);
        session.commit();
        closeSession(session);
        return byId;
    }

    @Override
    public void deleteById(Integer id) {
            session =getSession();
            dao = session.getMapper(CustomerDao.class);
            dao.deleteById(id);
            session.commit();
            closeSession(session);
        }

    }

实验任务七:创建BeanDao类

package com.axx.until;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.mybatis.spring.SqlSessionFactoryBean;

import java.io.IOException;
import java.io.Reader;

public class BeanDao {

    static  SqlSessionFactory sqlMapper ;
    static {
        String resources = "mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resources);
        } catch (IOException e) {
            e.printStackTrace();
        }
        sqlMapper= new SqlSessionFactoryBuilder().build(reader);
    }

    public SqlSession getSession(){
        SqlSession session=sqlMapper.openSession();
        return session;
    }

    public void closeSession(SqlSession session){
        session.close();
    }
}

实验任务八:customerMapper.xml实现方法

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.axx.dao.CustomerDao">
    
    <select id="query" resultType="com.axx.pojo.Customer">
       select * from mybatis.customer
    </select>

    <insert id="add"  parameterType="customer">
        insert into mybatis.customer(username,jobs,phone) values(#{username},#{jobs},#{phone})
    </insert>

    <update id="update" parameterType="customer" >
        update mybatis.customer set username=#{username},jobs=#{jobs},phone=#{phone}
        where id=#{id};
    </update>

    <select id="queryById" parameterType="customer" resultType="com.axx.pojo.Customer">
        select * from mybatis.customer where id=#{id}
    </select>

    <delete id="deleteById" parameterType="customer">
        delete from mybatis.customer where id = #{id}
    </delete>
</mapper>

实验任务八:配置Spring核心配置

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <properties resource="jdbc.properties"></properties>

    <typeAliases>
        <typeAlias type="com.axx.pojo.Customer" alias="customer"></typeAlias>
        <typeAlias type="com.axx.pojo.Student" alias="student"></typeAlias>
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com.axx.mapper/customerMapper.xml"/>
        <mapper resource="com.axx.mapper/studentMapper.xml"/>
    </mappers>



</configuration>

jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=x5

实验任务九:创建测试类

import com.axx.dao.CustomerDao;
import com.axx.pojo.Customer;
import com.axx.service.CustomerService;
import com.axx.service.impl.CustomerServiceImpl;
import org.junit.Test;


import java.util.List;

public class Test1 {
    CustomerService service = new CustomerServiceImpl();

    @Test
    public void add() {

        Customer customer = new Customer();
        customer.setUsername("aixiaoxu");
        customer.setPhone("1234567");
        customer.setJobs("it manneger");
        service.add(customer);
    }

    @Test
    public void query() {
        List<Customer> list = service.query();
        System.out.println(list);

    }

    @Test
    public void update() {
        Customer customer = new Customer();
        customer.setId(4);
        customer.setUsername("eee");
        customer.setPhone("22");
        customer.setJobs("teacher");
        service.update(customer);
    }

    @Test
    public void deleteById() {
        service.deleteById(7);
    }

    @Test
    public void queryById() {
        Customer customer = service.queryById(1);
        System.out.println(customer);
    }
}






举报

相关推荐

0 条评论