MyBatis入门

一、概念

MyBatis是一款ORM(Object Relationship Mapping 对象关系映射)框架

二、如何使用

1.新建maven项目,导入依赖:

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.5</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.20</version>
    </dependency>
</dependencies>

2.新建数据表

create table user (
    id int primary key auto_increment,
    username varchar(11) not null,
    password varchar(11) default ''
);

3.新建数据表对应的实体类User:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
</dependency>

在建实体类前先引一下lombok来简化一下实体类的编写

package com.viewts.entity;

import lombok.Data;

@Data
public class User {
    private long id;
    private String username;
    private String password;
}

4.创建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>
    <!-- 配置MyBatis运行环境 -->
    <environments default="development">
        <environment id="development">
            <!-- 配置JDBC事务管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- POOLED配置JDBC数据源连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/demo"/>
                <property name="username" value="root"/>
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>
</configuration>

注意:我这里的mysql默认用户密码为空。

5.编写mapper文件:

<?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.viewts.mapper.UserMapper">
    <!-- 新建用户 -->
    <insert id="insertUser" parameterType="com.viewts.entity.User">
        insert into user values (null, #{username}, #{password})
    </insert>
</mapper>

6.在config.xml中注册UserMapper:

<!-- 注册UserMapper -->
<mappers>
    <!-- resource指文件路径 -->
    <mapper resource="com/viewts/mapper/UserMapper.xml"></mapper>
</mappers>

7.调用MyBatis的原生接口

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>*.xml</include>
                <include>*.properties</include>
            </includes>
        </resource>
    </resources>
</build>

这里先处理一个细节,由于我们的mapper文件不是定义在resources目录下的,因此需要修改配置文件,**表示当前目录及其子目录。

然后新建测试类:

public class AppTest {
    @Test
    public void test01() {
        InputStream inputStream = AppTest.class.getClassLoader().getResourceAsStream("config.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder  = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        String statement = "com.viewts.mapper.UserMapper.insertUser";
        User user = new User(233L, "viewts", "111111");
        sqlSession.insert(statement, user);
        sqlSession.commit();
    }
}

8.运行,可以看到数据库表中插入了一条新纪录。

原文地址:https://www.cnblogs.com/viewts/p/13203102.html