尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

IDEA+mybatis实现员工管理系统

IDEA+mybatis实现员工管理系统
📅 发布时间:2026/6/19 15:55:52

IDEA+mybatis实现员工管理系统

原文链接: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;
 
/**
* 员工持久化类
*/
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();
}
 
 
}

实现效果如下:

 

相关新闻

  • 完整教程:Notepad++ 全面快捷键指南(2025 最新版)
  • 2025年脱硝设备厂商权威推荐榜单:PNCR脱硝器/高分子脱硝设备/干法脱硫设备源头厂商精选
  • 国内工厂生产管理系统的排名靠前的是哪些?(2025年小型企业实战选购榜)

最新新闻

  • DeepTutor终极指南:打造您的个人AI学习助手
  • MC9S08SH32内存架构与安全机制:从寻址优化到Flash编程实战
  • 2026北京靠谱的上门回收字画公司推荐榜单 - 品牌排行榜
  • 重庆修补家具大理石/瓷砖/岩板/木门补漆推荐良匠千艺2026本地口碑榜 - 我叫一
  • 终极指南:用Parsec VDD免费扩展你的Windows虚拟显示器
  • 2026年新发布山东靠谱的罐罐酸奶加盟项目深度剖析:为何谷物全书罐罐酸奶成为市场焦点? - 品牌鉴赏官2026

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号