1、实体类Employee.java
// 省略set/get/toString方法
public class Employee {
private Integer EmployeeId;
private String EmployeeName;
private String EmployeePassword;
private String EmployeeAge;
private Integer DepartmentId;
}
2、Mapper接口EmployeeMapper.java
public interface EmployeeMapper { public abstract Employee queryEmployeeById(String id); public abstract List<Employee> queryEmployees(); public abstract void insertEmployeeById(Employee employee); public abstract void updateEmployee(Employee employee); public abstract void deleteEmployeeById(Employee employee); }
3、jdbc.properties
jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC jdbc.username=root jdbc.password=root
4、mybatis-conf.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>
<settings>
<!--开启驼峰命名规则-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<!--com.mybatis.entity包下的所有实体类都开启别名-->
<package name="com.mybatis.entity"></package>
</typeAliases>
<environments default="development">
<environment id="development">
<!-- 配置事务管理,采用JDBC管理事务-->
<transactionManager type="JDBC"/>
<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>
<!-- pojo的映射文件UserMapper引入到配入到配置文件中 -->
<mappers>
<!-- resource要写成路径 -->
<mapper resource="UserMapper.xml"/>
// 引入EmployeeMapper.xml,通过全局配置文件找到XXXMapper.xml配置文件
<mapper resource="EmployeeMapper.xml"/>
</mappers>
</configuration>
5、EmployeeMapper.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">
<!--绑定EmployeeMapper接口-->
<mapper namespace="com.mybatis.dao.EmployeeMapper">
<!--绑定EmployeeMapper接口中insertEmployeeById方法-->
<insert id="insertEmployeeById" parameterType="com.mybatis.entity.Employee">
INSERT INTO employee VALUES(null,#{EmployeeName},#{EmployeePassword},#{EmployeeAge},#{DepartmentId})
</insert>
<delete id="deleteEmployeeById" parameterType="com.mybatis.entity.Employee">
DELETE FROM employee WHERE EMPLOYEE_ID=#{EmployeeId}
</delete>
<update id="updateEmployee" parameterType="com.mybatis.entity.Employee">
UPDATE employee SET EMPLOYEE_NAME=#{EmployeeName},EMPLOYEE_PASSWORD=#{EmployeePassword},EMPLOYEE_AGE=#{EmployeeAge},
DEPARTMENT_ID=#{DepartmentId} WHERE EMPLOYEE_ID = #{EmployeeId}
</update>
<select id="queryEmployeeById" parameterType="java.lang.String" resultType="com.mybatis.entity.Employee">
SELECT EMPLOYEE_ID,EMPLOYEE_NAME,EMPLOYEE_PASSWORD,EMPLOYEE_AGE,DEPARTMENT_ID FROM employee
WHERE EMPLOYEE_ID=#{employeeId}
</select>
<select id="queryEmployees" resultType="com.mybatis.entity.Employee">
SELECT EMPLOYEE_ID,EMPLOYEE_NAME,EMPLOYEE_PASSWORD,EMPLOYEE_AGE,DEPARTMENT_ID FROM employee;
</select>
</mapper>
6、测试类
public class TestMybatis {
// 根据指定ID查询Employee
@Test
public void test01() throws IOException {
SqlSession session = TestMybatis.openSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
Employee employee = mapper.queryEmployeeById("3");
System.out.println(employee);
}
// 查询所有的Employee
@Test
public void test02() throws IOException {
SqlSession session = TestMybatis.openSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
List<Employee> employees = mapper.queryEmployees();
System.out.println(employees);
}
// 添加Employee
@Test
public void test03() throws IOException {
SqlSession session = TestMybatis.openSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
Employee e = new Employee();
e.setEmployeeId(null);
e.setEmployeeName("汪十");
e.setEmployeePassword("321");
e.setEmployeeAge("30");
e.setDepartmentId(30);
// 插入新的Employee
mapper.insertEmployeeById(e);
session.commit();
}
// 根据ID删除指定的Employee
@Test
public void test04() throws IOException {
SqlSession session = TestMybatis.openSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
Employee e = new Employee();
e.setEmployeeId(9);
// 插入新的Employee
mapper.deleteEmployeeById(e);
session.commit();
}
// 根据ID对Employee修改
@Test
public void test05() throws IOException {
SqlSession session = TestMybatis.openSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
Employee e = new Employee();
e.setEmployeeId(7);
e.setEmployeeName("陈九");
e.setEmployeePassword("123456789");
e.setEmployeeAge("41");
e.setDepartmentId(1);
mapper.updateEmployee(e);
session.commit();
}
// 获得SqlSession对象
public static SqlSession openSession() {
String resource = "mybatis-config.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
return session;
}
}