Java MyBatis的使用

首先maven引用配置:

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.5</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.18</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.10</version>
    </dependency>

第一步:MySQL建表

CREATE TABLE `account` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(200) DEFAULT NULL COMMENT '用户名',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

第二步:生成对应实体类

  这里推荐一个自动生成的平台:http://java.bejson.com/generator/  

import java.io.Serializable;
import lombok.Data;
import java.util.Date;
import java.util.List;

/**
*  用户表
* @author  2019-12-12
*/
@Data
public class Account implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
    * 主键
    */
    private Long id;

    /**
    * 用户名
    */
    private String name;

    public Account() {
    }

}

第三步:创建该表SQL查询的映射文件(accountMapper.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="accountMappero">

    <resultMap id="BaseResultMap" type=".entity.AccountEntity" >
                <result column="id" property="id" />
                <result column="name" property="name" />
    </resultMap>

    <sql id="Base_Column_List">
                id,
                name
    </sql>

    <insert id="insert" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType=".entity.AccountEntity">
        INSERT INTO account
        <trim prefix="(" suffix=")" suffixOverrides=",">
                        <if test ='null != name'>
                        name
                        </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                        <if test ='null != name'>
                        #{name}
                        </if>
        </trim>
    </insert>

    <delete id="delete" >
        DELETE FROM account
        WHERE id = #{id}
    </delete>

    <update id="update" parameterType=".entity.AccountEntity">
        UPDATE account
        <set>
                    <if test ='null != name'>name = #{name}</if>
        </set>
        WHERE id = #{id}
    </update>


    <select id="load" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List" />
        FROM account
        WHERE id = #{id}
    </select>

    <select id="pageList" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List" />
        FROM account
        LIMIT #{offset}, #{pageSize}
    </select>

    <select id="pageListCount" resultType="java.lang.Integer">
        SELECT count(1)
        FROM account
    </select>

</mapper>

第四步:配置数据库连接文件(conf.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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <!-- 配置数据库连接信息 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://服务器地址:端口号/数据库名称?serverTimezone=GMT%2B8" />
                <property name="username" value="数据库用户名" />
                <property name="password" value="数据库密码" />
            </dataSource>
        </environment>
    </environments>     
    <mappers>
        <!-- 注册userMapper.xml文件-->
        <mapper resource="accountMapper.xml"/>
     </mappers>
    
</configuration>

第五步:编写测试方法

import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.util.List;

import com.springdemo.model.User;
import com.springdemo.tools.DBTools;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class Test {

    public static void main(String[] args) throws IOException {
    
        //mybatis的配置文件
        String resource = "conf.xml";
        //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
        InputStream is = Resources.getResourceAsStream(resource);
        //构建sqlSession的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        //创建能执行映射文件中sql的sqlSession
        SqlSession session = sessionFactory.openSession();
        /*
         * 映射sql的标识字符串 这里的accountMapper是accountMapper.xml中mapper的namespaces
         */
        String statement = "accountMapper.load";
        Account user = session.selectOne(statement,1);
        System.out.println(user);
        
}

最后:done

原文地址:https://www.cnblogs.com/yishilin/p/12029458.html