实验三 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);
}
}