原文链接:IDEA+mybatis实现员工管理系统 – 每天进步一点点
本文主要实现《Java EE企业级应用开发教程(Spring+SpringMVC+Mybatis)》第2版中的第2章课后习题:员工管理系统。
前面的搭建过程参考第一章代码:IDEA(2020版)实现MyBatis入门程序 – 每天进步一点点
本文源代码(访问密码: 3921):
MyBatis02.zip: https://url47.ctfile.com/f/64055047-1502033554-ff37b6?p=3921
本文可能遇到的报错:
java.io.IOException: Could not find resource mybatis-config.xml
IDEA 连接数据库报错Public Key Retrieval is not allowed
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;
private Integer id; // 主键id
private String name; // 姓名
private Integer age; // 年龄
private String position; // 职位
public void setId(Integer id) {
public String getName() {
public void setName(String name) {
public Integer getAge() {
public void setAge(Integer age) {
public String getPosition() {
public void setPosition(String position) {
this.position = position;
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"?>
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}
<insert id="addEmployee" parameterType="com.itheima.pojo.Employee">
insert into employee(id,name,age,position)values
(#{id},#{name},#{age},#{position})
<update id="updateEmployee" parameterType="com.itheima.pojo.Employee">
update employee set name= #{name},age = #{age},position= #{position} where
<delete id="deleteEmployee" parameterType="Integer">
delete from employee where id=#{id}
![]()
3.创建工具类
因为要做增删改查操作,所以可以把第1章sqlSession部分封装一下,封装成工具类
右击“itheima—>New—>Package”
![]()
文件夹名称选择“utils”,然后回车
![]()
然后右击刚才创建的 utils文件夹,选择“New—>Java Class”
![]()
文件名称输入 MyBatisUtils,然后点击回车
![]()
代码参考如下:
package com.itheima.utils;
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对象
// 使用MyBatis提供的Resources类加载MyBatis的配置文件
Resources.getResourceAsReader("mybatis-config.xml");
new SqlSessionFactoryBuilder().build(reader);
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" ?>
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<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}"/>
<!-- <mapper resource="mapper/UserMapper.xml"/>-->
<mapper resource="mapper/EmployeeMapper.xml"/>
![]()
3.创建测试类
右击”Test“文件夹,选择”New—>Java Class“
![]()
测试类名称为MyBatisTest
参考代码如下:
import com.itheima.pojo.Employee;
import com.itheima.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
public class MyBatisTest {
public void findByIdTest() {
SqlSession session = MyBatisUtils.getSession();
session.selectOne("findById", 2);
System.out.println(employee);
public void insertEmployeeTest() {
SqlSession session = MyBatisUtils.getSession();
Employee employee = new Employee();
employee.setPosition("总裁");
int result = session.insert("addEmployee", employee);
System.out.println("成功插入" + result + "条数据");
System.out.println("插入数据失败");
System.out.println(employee.toString());
public void updateEmployeeTest() {
SqlSession session = MyBatisUtils.getSession();
Employee employee = new Employee();
employee.setPosition("经理");
int result = session.update("updateEmployee", employee);
System.out.println("成功更新" + result + "条数据");
System.out.println("更新数据失败");
System.out.println(employee.toString());
public void deleteEmployeeTest() {
SqlSession session = MyBatisUtils.getSession();
int result = session.delete("deleteEmployee", 4);
System.out.println("成功删除" + result + "条数据");
System.out.println("删除数据失败");
实现效果如下:
![]()