Mybatis框架学习(一)——框架部署与使用

本文详细介绍了如何从零开始搭建MyBatis框架,包括创建Maven项目、添加依赖、配置文件、创建数据表、实体类、DAO及映射文件,最后进行单元测试。通过实例展示了MyBatis的基本操作,包括插入和删除书籍。
摘要由CSDN通过智能技术生成

1. 框架部署

1.1 创建空的Maven项目

1.2 添加依赖

需要添加的依赖为 mybatis 以及 mysql driver ,如下

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
</dependency>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

1.3 文件配置

  1. 创建一个自定义文件模板,名为 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>
</configuration>
  1. 在resources目录下创建jdbc.properties文件,配置键值对如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306?useUnicode=true&characterEncoding=utf8
username=root
password=ma123456
  1. resource 文件夹目录下创建名为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>
    
    <!--  使用jdbc.properties中的数据  -->
    <properties resource="jdbc.properties"></properties>
    <!-- 在environments配置数据库连接信息 -->
    <!-- 在environments标签中可以定义多个environment标签,每个environment标签可以定义一套连接配置 -->
    <!-- default属性,用来指定使用哪个environment标签 -->
    <environments default="mysql">
        
        <environment id="mysql">
            <!--transactionManager标签用于配置数据库管理方式-->
            <transactionManager type="JDBC"></transactionManager>
            <!--dataSource标签就是用来配置数据库连接信息 -->
            <dataSource type="POOLED">
            	<!--引用properties中的文件信息-->
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
        
    </environments>

</configuration>

2. 框架使用

2.1 创建数据表

我要操作的数据库的表构造如下,表名为 books
在这里插入图片描述

2.2 创建实体类

  1. 创建实体类之前我们先添加 lombok 依赖,这样就能依靠注释来添加构造方法个 gettersetter 方法。
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.22</version>
    <scope>provided</scope>
</dependency>
  1. 创建一个接收数据库信息的实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Book {
    private int num;
    private String book_name;
    private String author;
}

2.3 创建DAO

创建一个DAO,定义数据库的操作方法

public interface BookDAO {
	//插入书籍
    public int insertBook(Book book);
    //删除书籍
    public int deleteBook(int num_book);
}

2.4 创建DAO映射文件

有了DAO的方法实现接口,接下来就是在映射文件中实现接口了。

  1. 创建自定义模型 mapper ,后缀为 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 namespace="">

</mapper>
  1. resource 文件夹下创建文件夹 mappers ,在 mappers 中用上述模板创建 Bookmapper.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文件相当于DAO接口的‘实现类’,namespace属性要指定`实现`DAO接口的全限定名-->
<mapper namespace="com.mr.DAO.BookDAO">

    <insert id="insertBook">
        insert into novels.books
        values(#{num},#{name},#{author})
    </insert>

    <delete id="deleteBook">
        delete from novels.books where num=#{num}
    </delete>

</mapper>

注意:上述代码中 #{num} 中的 num 是自己定义的类中的属性名,num=#{num} 中前一个 num 是数据库中列的名字

2.5 将映射文件添加到主配置文件

mybatis-config.xml 文件中的 environment 标签后添加 mappers 标签,指定映射文件的映射位置。

<mappers>
    <mapper resource="mappers/BookMapper.xml"></mapper>
</mappers>

3. 单元测试

3.1 添加依赖

测试时需要添加单元测试的依赖,如下

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

3.2 创建测试类

在要测试的类的代码后面点击右键,点击 generate , 点击 Test ,选择要测试的方法,选择 JUnit4 ,就能生成要测试的单元类。
在这里插入图片描述

3.3 测试代码

测试代码如下所示:

public class BookDAOTest {

    @Test
    public void insertBook() {
        try {
            //加载mybatis配置文件
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            //会话工厂
            SqlSessionFactory factory = builder.build(is);
            //会话(连接)
            SqlSession sqlSession = factory.openSession();
            //通过会话获取DAO对象
            BookDAO bookDAO = sqlSession.getMapper(BookDAO.class);
            //测试StudentDAO中的方法
            int i = bookDAO.insertBook(new Book(11, "福尔摩斯探案全集", "柯南道尔"));
            //需要手动提交
            sqlSession.commit();
            System.out.println(i);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Test
    public void deleteBook() {
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            SqlSessionFactory factory = builder.build(is);
            SqlSession sqlSession = factory.openSession();
            
            BookDAO bookDAO = sqlSession.getMapper(BookDAO.class);
            int i = bookDAO.deleteBook(11);
            sqlSession.commit();
            System.out.println(i);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值