本文主要实现《Java EE企业级应用开发教程(Spring+SpringMVC+Mybatis)》第2版中的第2章课后习题:员工管理系统。
前面的搭建过程参考第一章代码:
本文源代码:https://box356.lanzoub.com/i6tre2r5hlha
1.数据库部分
在第一章代码的基础上,我们首先创建数据库文件
use mybatis;
create table employee(
id int primary key auto_increment,
name varchar(20) not null,
age int not null,
position varchar(20)
);
insert into employee(id,name,age,position) values(null,'张三',20,'员工 '),(null,'李四',18, '员工'),(null,'王五',35,'经理');
在数据里执行,查看是否正常

2.创建实体类
右击“pojo”文件夹,选择“New—>Java Class”

java实体类的名字叫 Employee

代码参考如下:
package com.itheima.pojo; /** * 员工持久化类 */ public class Employee { private Integer id; // 主键id private String name; // 姓名 private Integer age; // 年龄 private String position; // 职位 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 Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } @Override public String toString() { return "Employee{" + "id=" + id + ", name=" + name + ", age=" + age + ", position=" + position + '}'; } }
2.创建mapper文件
在第一章代码的基础上,右击mapper文件夹,

文件名称选择“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"> <mapper namespace="com.itheima.mapper.EmployeeMapper"> <select id="findById" parameterType="Integer" resultType="com.itheima.pojo.Employee"> select * from employee where id = #{id} </select> <insert id="addEmployee" parameterType="com.itheima.pojo.Employee"> insert into employee(id,name,age,position)values (#{id},#{name},#{age},#{position}) </insert> <update id="updateEmployee" parameterType="com.itheima.pojo.Employee"> update employee set name= #{name},age = #{age},position= #{position} where id = #{id} </update> <delete id="deleteEmployee" parameterType="Integer"> delete from employee where id=#{id} </delete> </mapper>

3.创建工具类
因为要做增删改查操作,所以可以把第1章sqlSession部分封装一下,封装成工具类
右击“itheima—>New—>Package”

文件夹名称选择“utils”,然后回车

然后右击刚才创建的 utils文件夹,选择“New—>Java Class”

文件名称输入 MyBatisUtils,然后点击回车

代码参考如下:
package com.itheima.utils; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; /** * 工具类 */ public class MyBatisUtils { private static SqlSessionFactory sqlSessionFactory = null; // 初始化SqlSessionFactory对象 static { try { // 使用MyBatis提供的Resources类加载MyBatis的配置文件 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); // 构建SqlSessionFactory工厂 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (Exception e) { e.printStackTrace(); } } // 获取SqlSession对象的静态方法 public static SqlSession getSession() { return sqlSessionFactory.openSession(); } }

4.修改mybatis-config.xml文件
第1章的mapper文件扫描的userMapper.xml,现在改成要扫描EmployeeMapper.xml文件,修改如下
<mapper resource="mapper/EmployeeMapper.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="db.properties"/> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <!-- 数据库连接相关配置 ,db.properties文件中的内容--> <dataSource type="POOLED"> <property name="driver" value="${mysql.driver}"/> <property name="url" value="${mysql.url}"/> <property name="username" value="${mysql.username}"/> <property name="password" value="${mysql.password}"/> </dataSource> </environment> </environments> <!-- mapping文件路径配置 --> <mappers> <!-- <mapper resource="mapper/UserMapper.xml"/>--> <mapper resource="mapper/EmployeeMapper.xml"/> </mappers> </configuration>

3.创建测试类
右击”Test“文件夹,选择”New—>Java Class“

测试类名称为MyBatisTest
参考代码如下:
package Test; import com.itheima.pojo.Employee; import com.itheima.utils.MyBatisUtils; import org.apache.ibatis.session.SqlSession; import org.junit.Test; public class MyBatisTest { //查询 @Test public void findByIdTest() { // 通过工具类生成SqlSession对象 SqlSession session = MyBatisUtils.getSession(); Employee employee = session.selectOne("findById", 2); System.out.println(employee); session.commit(); // 关闭SqlSession session.close(); } //新增 @Test public void insertEmployeeTest() { // 通过工具类生成SqlSession对象 SqlSession session = MyBatisUtils.getSession(); Employee employee = new Employee(); employee.setId(4); employee.setName("赵六"); employee.setAge(55); employee.setPosition("总裁"); int result = session.insert("addEmployee", employee); if (result > 0) { System.out.println("成功插入" + result + "条数据"); } else { System.out.println("插入数据失败"); } System.out.println(employee.toString()); session.commit(); // 关闭SqlSession session.close(); } //更新 @Test public void updateEmployeeTest() { // 通过工具类生成SqlSession对象 SqlSession session = MyBatisUtils.getSession(); Employee employee = new Employee(); employee.setId(2); employee.setName("小四"); employee.setAge(23); employee.setPosition("经理"); int result = session.update("updateEmployee", employee); if (result > 0) { System.out.println("成功更新" + result + "条数据"); } else { System.out.println("更新数据失败"); } System.out.println(employee.toString()); session.commit(); // 关闭SqlSession session.close(); } //删除 @Test public void deleteEmployeeTest() { // 通过工具类生成SqlSession对象 SqlSession session = MyBatisUtils.getSession(); int result = session.delete("deleteEmployee", 4); if (result > 0) { System.out.println("成功删除" + result + "条数据"); } else { System.out.println("删除数据失败"); } session.commit(); // 关闭SqlSession session.close(); } }
实现效果如下:
