Mybatis案例:员工管理系统
一、项目要求
现有一张员工表如下。利用本章所学知识完成一个员工管理系统。实现如下功能:根据id查询员工信息、新增员工信息、根据id修改员工信息、根据id删除员工信息。
要求:根据员工表在数据库中创建一个employee表,并利用本章所学知识完成一个员工管理系统,该系统需要实现以下几个功能。
(1)根据id查询员工信息;
(2)新增员工信息;
(3)根据id修改员工信息;
(4)根据id删除员工信息。
二、项目准备
软件:IntelliJ IDEA 2019.3.1
开发语言:JAVA
JDK: 1.8
所需包:
mysql-connector-java-5.1.47.jar
mybatis-3.4.6.jar
hamcrest-core-1.3.jar
junit-4.12-sources.jar
IDEA中创建项目及模块
以项目SZXM及其模块Mybatis-1创建为例。
- 创建项目SZXM后,删除src目录。
- 在项目SZXM创建模块Mybatis-1 操作如下图
- 构建模块的各类目录 如:java源文件目录、资源文件目录、测试目录。 (1)将src改成普通目录 (2)在src下创建如下目录结构(如:在src上创建子目录操作为src上右击鼠标 --> new --> directory) (3)设置各目录的作用。 main下的java子目录标记为图中的“Sources Root”,即为java源文件目录; main下的resources子目录图中的“Resources Root”,即为资源文件目录; test下的java子目录标记为图中的“Test Sources Root”,即为测试的源文件目录; 一般有不成文规定文件存放位置:(下面包名中的lyrpx表示项目开发的公司名称,我这里用我的网名) com.lyrpx.pojo包:存入POJO类 com.lyrpx.utils包:存放工具类 com.lyrpx.mapper包:存放数据持久层接口、其实现类、映射文件(也有把映射文件放至resources的mapper文件夹中的作法) com.lyrpx.service包:存放业务类接口、其实现类
三、Mybaits项目实战
项目目标:
(1)根据id查询员工信息;
(2)新增员工信息;
(3)根据id修改员工信息;
(4)根据id删除员工信息。
第一步,按图手动导入相关JAR
(在maven项目中只要添加依赖,但此处我们要手动添加)
(1)单击File --> Project Structure…,弹出如下所示窗口,按步骤单击鼠标左键后导入全局库(要将mybatis、mysql、junit数据库三个JAR包导入)
你导入后如下图所示就OK了!
再到上述窗口的“Modules”选项下确定模块Mybatis-1有这些刚导入的包,就可以进入下一步了。
第二步,准备数据库及数据表
在Navicat创建数据库及数据表
(1)先启动Mysql
(2)打开Navicat
(3)按下图创建数据库
创建数据表及插入数据的脚本如下:
DROPTABLEIFEXISTS`employee`;CREATETABLE`employee`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(20)NOTNULL,`age`int(11)NOTNULL,`position`varchar(20)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=4DEFAULTCHARSET=utf8;INSERTINTO`employee`VALUES('1','张三','20','员工');INSERTINTO`employee`VALUES('2','李四','18','员工');INSERTINTO`employee`VALUES('3','王五','35','经理');
第三步、启动IDEA,按下述步骤配置数据库连接。
(3)弹出下图窗口,并做相关操作。
(4)测试连接
(5)连接成功后,单击上图的“Schemas"选择卡,刷新之后勾选你要求连接的数据库(可以选多个)。
(6)有下图的数据库及表,说明你成功了!
第四步,编写POJO类 – Employee
packagecom.lyrpx.pojo;publicclassEmployee{privateint id;privateString name;privateint age;privateString position;publicEmployee(){}publicEmployee(int id,String name,int age,String position){this.id = id;this.name = name;this.age = age;this.position = position;}publicintgetId(){return id;}publicvoidsetId(int id){this.id = id;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}publicintgetAge(){return age;}publicvoidsetAge(int age){this.age = age;}publicStringgetPosition(){return position;}publicvoidsetPosition(String position){this.position = position;}@OverridepublicStringtoString(){return"Employee{"+"id="+ id +", name='"+ name +'\''+", age="+ age +", position='"+ position +'\''+'}';}}
第五步,编写mapper类----EmployeeMapper接口
packagecom.lyrpx.mapper;importcom.lyrpx.pojo.Employee;importjava.util.List;publicinterfaceEmployeeMapper{//查询所有记录List<Employee>selectAll();//按id查询EmployeeselectById(int id);//添加记录intadd(Employee employee);//按id修改记录intupdate(Employee employee);//按id删除记录intdelete(int id);}
第六步,创建属性文件db.properties(存放数据连接信息)
#配置数库连接信息
mysql.dirver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/szxm?useUnicode=true&characterEncoding=UTF-8
mysql.username=root
mysql.pwd=123456
第七步,创建mybatis的核心配置文件mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--引入属性文件:可以多个--><propertiesresource="db.properties"/><typeAliases><packagename="com.lyrpx.pojo"/></typeAliases><environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><propertyname="driver"value="${mysql.dirver}"/><propertyname="url"value="${mysql.url}"/><propertyname="username"value="${mysql.username}"/><propertyname="password"value="${mysql.pwd}"/></dataSource></environment></environments></configuration>
第八步,编写映射文件EmployeeMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.lyrpx.mapper.EmployeeMapper"><!--查询所有记录--><selectid="selectAll"resultType="Employee">
select * from employee
</select><!-- 按id查询--><selectid="selectById"resultType="Employee">
select * from employee where id=#{id}
</select><!--添加--><insertid="add"parameterType="com.lyrpx.pojo.Employee">
insert into employee(id, name,age,position ) values (#{id},#{name},#{age},#{position})
</insert><!-- 修改--><updateid="update"parameterType="com.lyrpx.pojo.Employee">
UPDATE employee
<set>
id=#{id},
name =#{name},
age=#{age},
position =#{position}
</set><where>
id = #{id}
</where></update><!-- 按id删除--><deleteid="delete">
delete from employee where id=#{id}
</delete></mapper>
第九步,修改核心配置文件
配置中加载映射文件EmployeeMapper.xml。配置方法:在mybatis-config.xml的 元素后面加如下元素。
<mappers><mapperresource="mapper/EmployeeMapper.xml"/></mappers>
第十步,编写测试类MyTest
importcom.lyrpx.mapper.EmployeeMapper;importcom.lyrpx.pojo.Employee;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.Test;importjava.io.IOException;importjava.io.InputStream;importjava.util.List;publicclassMyTest{//按id查询@Testpublicvoidtest01()throwsIOException{// 第一步InputStream in =Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory factory =newSqlSessionFactoryBuilder().build(in);SqlSession sqlSession = factory.openSession();// 第二步EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);//第3大步:调用接口对象的相应方法完成测试List<Employee> employee = mapper.selectAll();for(Employee employees : employee){System.out.println(employees);}// 按id查询System.out.println("=====================================");Employee employees = mapper.selectById(2);System.out.println(employees);}//新增员工信息@Testpublicvoidtest02()throwsIOException{// 第一步InputStream in =Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory factory =newSqlSessionFactoryBuilder().build(in);SqlSession sqlSession = factory.openSession();// 第二步EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);//第3大步:调用接口对象的相应方法完成测试//新增员工信息System.out.println("=====================================");Employee users =newEmployee(4,"王六",26,"扫地工");int n = mapper.add(users);if(n !=0){System.out.println("成功");}
sqlSession.commit();
sqlSession.close();}// 按id修改@Testpublicvoidtest03()throwsIOException{// 第一步InputStream in =Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory factory =newSqlSessionFactoryBuilder().build(in);SqlSession sqlSession = factory.openSession();// 第二步EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);//第3大步:调用接口对象的相应方法完成测试// 按id修改Employee users =newEmployee();
users.setId(3);
users.setName("易班");
users.setAge(19);
users.setPosition("总经理");int n = mapper.update(users);if(n !=0){System.out.println("成功");}
sqlSession.commit();
sqlSession.close();}// 按id删除@Testpublicvoidtest04()throwsIOException{// 第一步InputStream in =Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory factory =newSqlSessionFactoryBuilder().build(in);SqlSession sqlSession = factory.openSession();// 第二步EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);//第3大步:调用接口对象的相应方法完成测试// 按id删除int result = mapper.delete(4);System.out.println(result);
sqlSession.commit();
sqlSession.close();}}
四、源代码
源代码
版权归原作者 TechLens 所有, 如有侵权,请联系我们删除。