MyBatis——员工管理系统
实验要求
本实验要求根据表1在数据库中创建一个employee表,并利用MyBatis的核心配置相关知识完成一个员工管理系统。
实验内容
员工编号(id) | 员工姓名(name) | 员工年龄(age) | 员工职位(position) |
---|---|---|---|
1 | 张三 | 20 | 员工 |
2 | 李四 | 18 | 员工 |
3 | 王五 | 35 | 经理 |
该员工管理系统需要实现以下几个功能:
- 根据id查询员工信息。
- 新增员工信息。
- 根据id修改员工信息。
- 根据id删除员工信息。
实验分析
本实验主要考查对MyBatis的核心配置,主要是核心对象和核心配置文件和MyBatis映射文件。
- 建立好实验所需的数据库及表。
- 需要在项目的src/main/resource目录下创建数据库连接的配置文件和MyBatis的核心配置文件和mapper文件夹。
- 再在src/main/java下创建一个实体类Employee,编写员工的基本信息;再创建工具类MyBatisUtils。
- 最后在src/test/java下创建一个测试类Test1完成实验内容。
代码实现
Resource
db.properties(数据库连接配置文件)
driver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&\ characterEncoding=utf8&useUnicode=true&useSSL=falseusername=rootpassword=1
mybatis-config.xml(MyBatis的核心配置文件)
DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <properties resource="db.properties"> properties> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> dataSource> environment> environments> <mappers> <mapper resource="mapper/EmployeeMapper.xml"/> mappers>configuration>
EmployeeMapper.xml(映射文件)
DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.cqust.entity.Employee"><resultMap type="com.cqust.entity.Employee" id="employeeMap"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> <result property="position" column="position"/>resultMap> <select id="findEmployeeById" resultMap="employeeMap"> select * from employee where id = #{id} select> <insert id="addEmployee" parameterType="com.cqust.entity.Employee" > insert into employee (id,name,age,position) values (#{id},#{name},#{age},#{position}) insert> <update id="updateEmployee" parameterType="com.cqust.entity.Employee"> update employee set name=#{name},age=#{age},position=#{position} where id=#{id} update> <delete id="deleteEmployee" parameterType="int"> delete from employee where id=#{id} delete>mapper>
entity层
Employee类
package com.cqust.entity;public class Employee { private int id; //员工id private String name; //员工姓名 private int age; //员工年龄 private String position; //员工职位 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } @Override public String toString() { return "职员{" + "员工编号=" + id + ", 员工姓名='" + name + '\'' + ", 员工年龄=" + age + ", 员工职位='" + position + '\'' + '}'; }}
utils层
MyBatisUtils类
package com.cqust.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;import java.io.Reader;public class MyBatisUtils { private static SqlSessionFactory sqlSessionFactory = null; //初始化SQLSessionFactory对象 static { try{ //使用MyBatis提供的Resource类加载MyBatis的配置文件 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); //构建SQLSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (Exception e){ e.printStackTrace(); } } //获取SqlSession对象的方法 public static SqlSession getSession(){ //若传入true表示关闭事务控制,自动提交;false表示开启事务控制 return sqlSessionFactory.openSession(true); }}
测试层
Test1(测试类)
import com.cqust.entity.Employee;import com.cqust.utils.MyBatisUtils;import org.apache.ibatis.session.SqlSession;import org.junit.Test;public class Test1 { @Test public void findEmployeeById(){ //通过工具类获取SQLSession对象 SqlSession sqlSession = MyBatisUtils.getSession(); //创建Employee对象接收SQL语句的查询结果 Employee employee0 = sqlSession.selectOne("findEmployeeById",2); System.out.println(employee0); //关闭事务 sqlSession.close(); } @Test public void addEmployee(){ SqlSession sqlSession = MyBatisUtils.getSession(); //实例化Employee Employee employee = new Employee(); employee.setId(6); //设置id employee.setName("李耳"); //设置姓名 employee.setAge(5000); //设置年龄 employee.setPosition("太上老君"); //设置职位 //这里的addEmployee一定要与Mapper文件中的id对应,多一个空格都不行,之前就是因为这个一直报错 sqlSession.insert("addEmployee",employee); System.out.println("添加成功!"); sqlSession.close(); } @Test public void updateEmployee(){ SqlSession sqlSession = MyBatisUtils.getSession(); Employee employee = new Employee(); employee.setId(2); employee.setName("沙僧"); employee.setAge(3000); employee.setPosition("卷帘大将"); sqlSession.update("updateEmployee",employee); System.out.println("更新成功!"); sqlSession.close(); } @Test public void deleteEmployee(){ SqlSession sqlSession = MyBatisUtils.getSession(); sqlSession.delete("deleteEmployee",2); System.out.println("删除成功!"); sqlSession.close(); }}
实验小结
本实验主要对MyBatis的核心配置进行了大体的应用。例如:MyBatis中的3个重要核心对象SqlSessionFactoryBuilder、SqlSessionFactory和SqlSession;核心配置文件中的元素及其使用;映射文件中的几个主要是元素。通过本实验,可以初步了解MyBatis中的3个重要核心对象的作用,熟悉核心配置文件中常用元素的使用,并掌握映射文件中常用元素的使用。
谢谢浏览!
来源地址:https://blog.csdn.net/m0_72151428/article/details/127399054