0


Mybatis案例:员工管理系统

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创建为例。

  1. 创建项目SZXM后,删除src目录。
  2. 在项目SZXM创建模块Mybatis-1 操作如下图在这里插入图片描述
  3. 构建模块的各类目录 如: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();}}

四、源代码

源代码


本文转载自: https://blog.csdn.net/qq_43596041/article/details/123441841
版权归原作者 TechLens 所有, 如有侵权,请联系我们删除。

“Mybatis案例:员工管理系统”的评论:

还没有评论