已有的前置条件
- eclipse 创建的maven Java 工程
- database: mysql version8.0.23
- db实例:MYDB
- table:
drop table if exists emp;
create table emp( id int primary key auto_increment, name varchar(50), job varchar(50), salary double);
实操
- 依赖配置,关注(mysql和mybatis的依赖配置)
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
- Mapper 配置
<?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="EmpMapper">
<select id="findAll" resultType="com.centim.pojo.Emp">
select * from emp
</select>
<update id="insert" >
insert into emp value(null,'刘德华','演员','8888')
</update>
</mapper>
- Mybatis 核心文件(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>
<environments default="env1">
<environment id="env1">
<!-- type: JDBC(recommended), MANAGED -->
<transactionManager type="JDBC"/>
<!-- type:POOLED(recommended),UNPOOLED,JNDI -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/MYDB?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="11111111"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="EmpMapper.xml" />
</mappers>
</configuration>
- emp表POJO准备
package com.centim.pojo;
public class Emp {
private Integer id;
private String name;
private String job;
private Double salary;
public Integer getId() {return id;}
public void setId(Integer id) {this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getJob() {return job;}
public void setJob(String job) {this.job = job;}
public Double getSalary() {eturn salary;}
public void setSalary(Double salary) {this.salary = salary;}
@Override
public String toString() {
return "Emp [id=" + id + ", name=" + name + ", job=" + job + ", salary=" + salary + "]";
}
}
- Emp DAO接口准备
package com.centim.dao;
import java.util.List;
import com.centim.pojo.Emp;
public interface EmpMapper {
public List<Emp> findAll();
public int insert();
}
- 测试
package com.centim.mybatis;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import com.centim.dao.EmpMapper;
import com.centim.pojo.Emp;
public class EmpMapperInterface {
private static SqlSession session;
static {
try {
session = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml")).openSession(true);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void insert() {
// 用session子类对象实例
EmpMapper empMapper = session.getMapper(EmpMapper.class);
int rows=empMapper.insert();
System.out.println("成功新增条数:"+rows);
}
@Test
public void findAll() {
// 用session子类对象实例
EmpMapper empMapper = session.getMapper(EmpMapper.class);
List<Emp> list =empMapper.findAll();
for(Emp emp:list) {
System.out.println(emp.toString());
}
}
}