Mybatis学习-(案例)员工管理系统(三)——创建Maven项目并测试

上一篇,我们搭建完成了仓库,本篇开始创建我们的Maven项目!

❤ (ɔˆз(ˆ⌣ˆc)“玥”——乃古上神珠也。见者好运连连,点个关注,咱们来玥方长!

(ง •̀_•́)ง加油😁😁😁


目录

❤ (ɔˆз(ˆ⌣ˆc)“玥”——乃古上神珠也。见者好运连连,点个关注,咱们来玥方长!

一、前言

二、创建Maven项目及配置环境

(一)打开IDEA

1、左上角找到”file",点击打开下拉窗口

2、点击“new",打开下面的窗口

 3、点击”Project",打开新的窗口

 4、完成上面的步骤后,点击“Next"继续操作

5、Finish!!!

三、创建测试项目

(一)配置pom.xml文件

 二、配置数据登录信息

1、配置db.properties

 2、配置mybatis-comfig.xml

3、重加载Maven项目

三、创建实体类

(一)创建pojo实体类

(二)配置关联映射类

(三)配置接口类

(四)配置工具类

(五)配置测试类

(六)运行测试


一、前言

对于Mybatis是什么,已在前一篇文章详细介绍了 !可以看回下面的文章。

Mybatis学习-(案例)员工管理系统——Maven仓库http://t.csdn.cn/JSMBw

我们学习Mybatis框架的目的是为了操作我们的数据库,进行数据的查询、插入、删除、更新等等!

在创建好仓库后,本篇我们可以上手创建Maven项目了,我使用的是本地仓库!

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_12,color_FFFFFF,t_70,g_se,x_16

 这是我们的本地仓库路径!

 

二、创建Maven项目及配置环境

创建Maven项目,我们需要用到开发工具IDEA!需要自行下载一下!

(一)打开IDEA

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_20,color_FFFFFF,t_70,g_se,x_16 

 由于我们IDEA是设置过的,进去的界面就是这样!第一次进去的界面你可能看不见我上图这个,但你可以在右边找到一个按钮:“Create Project"

点击一下就可以进入创建新的项目!跟着我的步骤:

1、左上角找到”file",点击打开下拉窗口

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_15,color_FFFFFF,t_70,g_se,x_16

2、点击“new",打开下面的窗口

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_20,color_FFFFFF,t_70,g_se,x_16

 3、点击”Project",打开新的窗口

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_20,color_FFFFFF,t_70,g_se,x_16

 4、完成上面的步骤后,点击“Next"继续操作

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_20,color_FFFFFF,t_70,g_se,x_16

 第7步,自定义你的项目名称,第8步是你的项目保存路径,第9步配置按照默认的信息就好,其中Ver是你的项目版本,默认为测试版本。

5、Finish!!!

最后点击”Finish",完成Maven项目的创建啦!

 

三、创建测试项目

(一)配置pom.xml文件

导入依赖,即把我们本地仓库的包导入进来!

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.itheima</groupId>
    <artifactId>employeeSystem</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>

        <!--1、	解决idea不会自动将src/main/java目录下xml文件编译进classes文件方法。-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>

        <!--2、	解决maven测试窗口乱码问题-->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <argLine>-Dfile.encoding=UTF-8</argLine>
                </configuration>
            </plugin>
        </plugins>

    </build>

</project>

 二、配置数据登录信息

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_14,color_FFFFFF,t_70,g_se,x_16

 在“resources"下创建两个文件”db.properties"、"mybatis-comfig.xml"

同时如果你的"resources"文件没有出现我图片中的标志,那需要设置一下,右击文件图标,在新打开的窗口找到“Mark Directory",接着点击”Test Resources Root“即可。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_20,color_FFFFFF,t_70,g_se,x_16

1、配置db.properties

mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/myDB?serverTimezone=UTC&\
  characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=

其中myDB为我创建的数据库的名称!!!username、password对应你设置的用户名和密码

 2、配置mybatis-comfig.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="config/db.properties"/>
    <typeAliases>
        <typeAlias type="com.itheima.pojo.Employee" alias="Employee"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <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>
   
</configuration>

 

3、重加载Maven项目

最后点击最右边的"Maven”,进去加载一下便可成功导入你的依赖包,从下图可以看见。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_20,color_FFFFFF,t_70,g_se,x_16

 

三、创建实体类

(一)创建pojo实体类

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_9,color_FFFFFF,t_70,g_se,x_16

 为了方便,可以提前创建好上图的三个包,右击找到对应按钮即可创建。

接着在pojo包下,创建Employee实体类

e4418275a5e24dbeaf3814cf63a569f0.png

 配置Employee.java文件

package com.itheima.pojo;

public class Employee {
    private int 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 "pojo{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", position='" + position + '\'' +
                '}';
    }

}

 

(二)配置关联映射类

新建mapper包,然后创建EmployeeMapper.xml

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_13,color_FFFFFF,t_70,g_se,x_16

代码:

 

<?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="selectEmployeeById" parameterType="Integer" resultType="Employee">
        select * from employee where id=#{id}
    </select>
    
    <insert id="insertEmployee" parameterType="com.itheima.pojo.Employee">
        insert into employee(id,name,age,position) values(#{id},#{name},#{age},#{position})
    </insert>

    <update id="updateEmployeeById" parameterType="Employee">
        update employee set name=#{name},age=#{age},position=#{position} where id=#{id}
    </update>

    <delete id="deleteEmployeeById" parameterType="Integer">
        delete from employee where id=#{id}
    </delete>

</mapper>

根据题目《员工管理系统》的需要,创建id查询、插入、更新、删除的SQL语句!

(三)配置接口类

上面的SQL语句功能实现,我利用的接口的方法!

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_11,color_FFFFFF,t_70,g_se,x_16 

 创建一个接口类,下面是代码:

package com.itheima.mapper;

import com.itheima.pojo.Employee;

public interface EmployeeMapper {
    Employee selectEmployeeById(int id);
    int insertEmployee(Employee employee);
    int updateEmployeeById(Employee employee);
    int deleteEmployeeById(int id);
}

实现的功能对应SQL语句。

(四)配置工具类

为了操作数据库,进行频繁的数据操作,我们需要创建持久类:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_12,color_FFFFFF,t_70,g_se,x_16 

 代码:

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;

import java.io.Reader;

public class MyBatisUtils {
    private static SqlSessionFactory sqlSessionFactory=null;
    static
    {
        try{
            Reader reader= Resources.getResourceAsReader("config/mybatis-config.xml");
            sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
        }catch (Exception e)
        {
            e.printStackTrace();
        }
    }
    public static SqlSession getSession()
    {
        return sqlSessionFactory.openSession();
    }
}

(五)配置测试类

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_15,color_FFFFFF,t_70,g_se,x_16 

 文件创建如上图所示,一共四个测试类,我们可以一个一个的创建,下面是详细的代码:

//selectEmployeeTest.java

package employeeSystemTest;

import com.itheima.mapper.EmployeeMapper;
import com.itheima.pojo.Employee;
import com.itheima.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

public class selectEmployByIdTest {
    @Test
    public void selectEmployById()
    {
        SqlSession sqlSession = MyBatisUtils.getSession();
        EmployeeMapper employeeMapper=sqlSession.getMapper(EmployeeMapper.class);
        Employee employee=employeeMapper.selectEmployeeById(1);
        System.out.println(employee);
        sqlSession.close();
    }
}

//insertEmployeeTest.java

package employeeSystemTest;

import com.itheima.mapper.EmployeeMapper;
import com.itheima.pojo.Employee;
import com.itheima.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

public class insertEmployeeTest {
    @Test
    public void insertEmployee()
    {
        SqlSession sqlSession = MyBatisUtils.getSession();
        EmployeeMapper employeeMapper=sqlSession.getMapper(EmployeeMapper.class);
        Employee employee=new Employee();
        int count=0;
        employee.setId(3);
        employee.setName("王五");
        employee.setAge(35);
        employee.setPosition("经理");
        count=employeeMapper.insertEmployee(employee);
        System.out.println("成功插入"+count+"条信息!");
        sqlSession.commit();
        sqlSession.close();
    }
}

//updateEmployeeTest.java

package employeeSystemTest;

import com.itheima.mapper.EmployeeMapper;
import com.itheima.pojo.Employee;
import com.itheima.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

public class updateEmployeeByIdTest {
    @Test
    public void updateEmployeeById()
    {
        SqlSession sqlSession = MyBatisUtils.getSession();
        EmployeeMapper employeeMapper=sqlSession.getMapper(EmployeeMapper.class);
        Employee employee=new Employee();
        int count=0;
        employee.setId(2);
        employee.setName("王大发");
        employee.setAge(17);
        employee.setPosition("员工");
        count=employeeMapper.updateEmployeeById(employee);
        sqlSession.commit();
        System.out.println("成功修改"+count+"条信息!");
        sqlSession.close();
    }
}

//deleteEmployeeTest.java

package employeeSystemTest;

import com.itheima.mapper.EmployeeMapper;
import com.itheima.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

public class deleteEmployeeByIdTest {
    @Test
    public void delectEmployeeById()
    {
        SqlSession sqlSession = MyBatisUtils.getSession();
        EmployeeMapper employeeMapper=sqlSession.getMapper(EmployeeMapper.class);
        int count=0;
        count=employeeMapper.deleteEmployeeById(2);
        sqlSession.commit();
        System.out.println("成功删除"+count+"条信息!");
        sqlSession.close();
    }
}

 

(六)运行测试

//selectEmployeeTest.java

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_20,color_FFFFFF,t_70,g_se,x_16

 //insertEmployeeTest.java

修改一下代码:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_20,color_FFFFFF,t_70,g_se,x_16

 运行结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_20,color_FFFFFF,t_70,g_se,x_16

 数据库信息:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p2l546l5pa56ZW_,size_14,color_FFFFFF,t_70,g_se,x_16

 好!已经显示插入成功的数据。

还剩下的两个测试类,更新和删除,可以自行测试哦!!!

本篇内容就到此结束!《员工管理系统》Maven项目已经全部完成!!!

关注我!咱们来玥方长!!!

 

  • 18
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来玥方长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值