MyBatis的核心配置

一、需求分析

完成一个员工管理系统,实现员工数据的增删改查。要求:

1.使用MyBatis入门程序的方式,新建项目实现按照id查找员工的功能,使用测试类的方式进行测试。

2.对项目进行修改

1)开启延迟加载

2)为POJO实体类通过自动扫描包的形式设置别名

3)引入映射文件的方式由“使用类路径引入 ”修改为“使用包名引入 ”

4)测试查找功能

5)插入1条数据(赵六,42,员工)

6)将员工“赵六”的职位修改为“经理”

7)删除员工“赵六”

二、资料、视频教程

        使用“MyBatis入门程序”相同的资料,资料下载

MyBatis核心配置

三、编码实现

1、搭建环境
1)数据库环境

mybatis数据库,t_employee表,添加三条记录

2)新建项目

Name:CoreConfProject,GroupID:com.sw

3)引入依赖

pom.xml文件

    <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.27</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
4)数据库连接的配置文件

src/main/resources,新建数据库连接的配置文件db.properties。要求MySQL8版本及以上

mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=123456
5)MyBatis核心配置文件

src/main/resources,新建MyBatis的核心配置文件mybatis-config.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>
</configuration>
6)数据封装类

src/main/java,新建com.sw.pojo包,新建Employee类

public class Employee {
    private Integer id;
    private String name;
    private Integer age;
    private String position;
    //get、set
    //tostring
}
7)Mybatis映射文件

src/main/resources,新建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为映射的根节点-->
<!--mapper为映射的根节点,namespace指定Dao接口的完整类名
mybatis会依据这个接口动态创建一个实现类去实现这个接口,
而这个实现类是一个Mapper对象-->
8)修改MyBatis核心配置文件
<!--mapping文件路径配置-->
<mappers>
    <mapper resource="mapper/EmployeeMapper.xml"/>
</mappers>
2、MyBatis入门程序方式
1)select功能

映射文件EmployeeMapper.xml,实现select方法

<mapper namespace="com.sw.pojo.Employee">
    <select id="getOne" parameterType="int" resultType="com.sw.pojo.Employee">
       select * from t_employee where id = #{id}
    </select>
</mapper>
2)测试输出

src→main→java,Test类,新建main方法

        //1、获取核心配置文件
        Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
        //2、创建SqlSessionFactory工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //3、创建SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //核心业务
        Employee employee = sqlSession.selectOne("com.sw.pojo.Employee.getOne", 1);
        System.out.println(employee);
        //5、释放资源
        sqlSession.close();
3、MyBatis核心配置方式
1)开启延迟加载

修改核心配置文件mybatis-config.xml

<!--开启延迟加载-->
<settings>
    <setting name="lazyLoadingEnabled" value="true"/>
</settings>
2)设置别名

修改核心配置文件mybatis-config.xml

<!--设置别名-->
<typeAliases>
   <package name="com.sw.pojo"/>
</typeAliases>
3)引入映射文件

I.创建mapper接口。src/main/java创建com.sw.mapper包,新建EmployeeMapper接口,getOne方法。

public interface EmployeeMapper {
    Employee getOne(int id);
}

II.修改映射文件EmployeeMapper.xml的namespace属性,namespace属性值必须为接口的完整类名

III.映射文件的引入方式修改为“使用包名引入 ”,核心配置文件mybatis-config.xml

注意: 映射文件的位置必须放在接口的同包目录下,映射文件名必须和接口同名

<!-- mapping文件路径配置 -->
<mappers>
   <package name="com.sw.mapper" />
</mappers>

IV.修改项目结构

src/main/resources目录下,新建com/sw/mapper目录

4)测试查找数据功能

为com.sw.mapper包EmployeeMapper接口的getOne方法创建测试,右键→Generate→Test

@Before

public void setUp() throws Exception {
   //1、获取核心配置文件
   Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
   //2、创建SqlSessionFactory工厂对象
   SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
   //3、创建SqlSession对象
   sqlSession = sqlSessionFactory.openSession();
}

@After

public void tearDown() throws Exception {
   //释放资源
   if (sqlSession!=null){
       sqlSession.close();
   }
}

@Test

public void testInsertOne() {
   EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
   Employee employee = employeeMapper.getOne(1);
   System.out.println(employee);
}
5)插入数据功能

I.修改接口EmployeeMapper

int insertOne(Employee employee);

II.修改映射文件EmployeeMapper.xml

<insert id="insertOne" parameterType="Employee"  keyProperty="id" useGeneratedKeys="true">
   insert into t_employee (id,name,age,position) values (null ,#{name},#{age},#{position});
</insert>

III.测试

public void testTestInsertOne() {
   Employee employee = new Employee();
   employee.setName("赵六");
   employee.setAge(42);
   employee.setPosition("员工");
   EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
   int res = employeeMapper.insertOne(employee);
   sqlSession.commit();
   if (res==1){
       System.out.println("插入数据成功");
   }
}
6)修改数据功能

将员工“赵六”的职位修改为“经理”

I.修改接口EmployeeMapper

int updateOne(Employee employee);

II.修改映射文件EmployeeMapper.xml

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

III.测试

public void testUpdateOne() {
   EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
   Employee employee = employeeMapper.getOne(4);
   employee.setPosition("经理");
   int res = employeeMapper.updateOne(employee);
   sqlSession.commit();
   if (res==1){
       System.out.println("修改数据成功");
   }
}
7)删除数据功能

删除员工“赵六”

I.修改接口EmployeeMapper

int deleteOne(int id);

II.修改映射文件EmployeeMapper.xml

<delete id="deleteOne" parameterType="int">
   delete from t_employee where id = #{id}
</delete>

III.测试

public void testDeleteOne() {
   EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
   int res = employeeMapper.deleteOne(4);
   sqlSession.commit();
   if (res==1){
       System.out.println("删除数据成功");
   }
}

  • 11
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

勇 士 Teacher

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

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

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

打赏作者

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

抵扣说明:

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

余额充值