搭建mybatis指南


一、搭建MyBatis

1.开发环境

IDEA version : 2021.2.2

mysql version :8.0.23

mybatis version : 3.5.2

maven version : 3.5.7

2.创建maven工程

next->Name(存放路径)->groupID(com.lyc.mybatis)->finish

加入依赖

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <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.25</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>

3.创建数据库连接信息配置文件

在项目中的src/main/resources目录下创建db.properties

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

4.创建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"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--引入映射文件-->
    <mappers>
        <mapper resource="mappers/UserMapper.xml"/>
    </mappers>
</configuration>

参数详细:

<?xml version="1.0" encoding="UTF-8" ?>  xml的版本号
<!DOCTYPE configuration  mybatis中的约束  dtd文件
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
configuration 根标签
environments 可嵌套多个单数标签 <!--设置连接数据库的环境-->
<mappers>        <!--引入映射文件-->
<transactionManager type="JDBC"/> 事务的管理方式以jdbc的方式进行管理
<dataSource type="POOLED"> 数据库连接池 下一次使用直接调用


5.创建POJO实体

这是我们的表中的数据 跟实体类的属性要一致(默认的映射规则)->为属性名赋值

在src/main/java 目录下创建com.lyc.mybatis.pojo包 在pojo包下创建User类 该类用于封装User对象的属性 如下:

public class User {

    private int uid;
    private String uname;
    private int uage;

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public int getUage() {
        return uage;
    }

    public void setUage(int uage) {
        this.uage = uage;
    }

6.创建mapper接口

MyBatis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要

提供实现类。

在src/main/java/com.lyc.mybatis下创建mapper文件夹

在文件夹下创建UserMapper接口

int insertUser();

7.创建映射文件UserMapper.xml

在src/main/resources下创建一个mappers文件夹 在文件下创建映射文件UserMapper.xml

用于配置真正的sql与java对象之间的映射

1.MyBatis映射文件用于编写SQL,访问以及操作表中的数据

2、MyBatis中可以面向接口操作数据,要保证两个一致:

a>mapper接口的全类名和映射文件的命名空间(namespace)保持一致

b>mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致

<?xml version="1.0" encoding="UTF-8"?>
<!--sql与java之间的映射 -->
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lyc.mybatis.mapper.UserMapper">

    <insert id="insertUser">
        insert into users values (4,'王五',19)
    </insert>
</mapper>

映射文件的命名规则:

表所对应的实体类的类名+Mapper.xml

例如:表t_user,映射的实体类为Users,所对应的映射文件为UsersMapper.xml

8.测试

import com.lyc.mybatis.mapper.UserMapper;
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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class MapperTest01 {
    @Test
    public void TestMapper() throws IOException {
        //读取MyBatis的核心配置文件 InputStream is = Resources.g
        InputStream resourceAsStream =   Resources.getResourceAsStream("mybatis-config.xml");

            
        ////通过核心配置文件所对应的字节输入流创建工厂类SqlSessionFactory,生产SqlSession对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(resourceAsStream);
        SqlSession session = sqlSessionFactory.openSession();

        
        UserMapper mapper = session.getMapper(UserMapper.class);
        
        //调用UserMapper接口中的方法,就可以根据UserMapper的全类名匹配元素文件,通过调用的方法名匹配 映射文件中的SQL标            签,并执行标签中的SQL语句
        int result = mapper.insertUser();
       
       //事务提交
        session.commit();
        System.out.println("result"+result);

    }
}


文章作者: liming
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liming !
评论
  目录