Mybatis简单入门

Posted 蚂蚁分享圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis简单入门相关的知识,希望对你有一定的参考价值。

前言

  之前一直有直接使用Mybatis,但是没有细致的整理出来。长时间没有使用,细致的内容都忘记了。因此借此机会,从头开始整理,以后可以直接查看此次记录的内容。

Mybatis的介绍

  MyBatis是支持普通SQL查询存储过程高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.

  JDBC->dbutils(自动封装)->MyBatis->Hibernate

  参考官网文档介绍:http://www.mybatis.org/mybatis-3/zh/getting-started.html

准备工作

  依赖包

  从Mybatis的官网下载最新的jar,目前github上最新的是mybatis-3.4.6,并下载源码包导入project冲使用。下载mysql的驱动包:mysql-connector-java-5.1.7-bin.jar。下载log4j的jar:log4j-1.2.16.jar(目的是为了让mybatis能够输出日志,便于查看执行过程。此外,这次只使用Mybatis,因此在Java Project中进行验证,没有使用Maven进行管理包。

  数据库

1 create database mybatis;
2 use mybatis;
3 CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);
4 INSERT INTO users(NAME, age) VALUES(Tom, 12);
5 INSERT INTO users(NAME, age) VALUES(Jack, 11);

  配置文件

  src下新建log4j配置文件log4j.properties

 1     log4j.properties\uFF0C
 2     log4j.rootLogger=DEBUG, Console
 3     #Console
 4     log4j.appender.Console=org.apache.log4j.ConsoleAppender
 5     log4j.appender.Console.layout=org.apache.log4j.PatternLayout
 6     log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
 7     log4j.logger.java.sql.ResultSet=INFO
 8     log4j.logger.org.apache=INFO
 9     log4j.logger.java.sql.Connection=DEBUG
10     log4j.logger.java.sql.Statement=DEBUG
11     log4j.logger.java.sql.PreparedStatement=DEBUG    log4j.properties\uFF0C
12     log4j.rootLogger=DEBUG, Console
13     #Console
14     log4j.appender.Console=org.apache.log4j.ConsoleAppender
15     log4j.appender.Console.layout=org.apache.log4j.PatternLayout
16     log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
17     log4j.logger.java.sql.ResultSet=INFO
18     log4j.logger.org.apache=INFO
19     log4j.logger.java.sql.Connection=DEBUG
20     log4j.logger.java.sql.Statement=DEBUG
21     log4j.logger.java.sql.PreparedStatement=DEBUG

 

  src新建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>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="admin"/>
      </dataSource>
    </environment>
  </environments>
 <!-- <mappers>
    <mapper resource="com/lion/test1/UserMapper.xml"/>
  </mappers>-->
</configuration>

 

验证

  1. 新建pojo User 属性 int id,String name,int age  //getter setter toString   注意:此处的属性需和数据库表字段保持一致,不然无法完成字段映射,后面讲解不一致时如何进行字段映射。
  2. 定义操作User对应users表的sql映射文件UserMapper.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="com.lion.test1.UserMapper">
      <select id="selectUser" parameterType="int" resultType="com.lion.pojo.User">
        select * from users where id = #{id}
      </select>
    </mapper>
  3. 在mybatis配置文件mybatis-config.xml中注册映射文件UserMapper.xml  (上面mybatis配置文件中注释掉内容,注意:注册映射文件使用的市文件的路径 / 而不是包路径 . )
      <mappers>
        <mapper resource="com/lion/test1/UserMapper.xml"/>
      </mappers>
  4. 编写测试代码,执行映射文件中的查询
    public static void main(String[] args) throws IOException {
            String resource = "mybatis-config.xml";
            // 加载Mybatis的配置文件 同时也会加载映射文件
            InputStream inputStream = Resources.getResourceAsStream(resource);
            // 使用XML文件构建sqlSessionFacory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            // 创建能执行映射文件中sql的sqlSession
            SqlSession session = sqlSessionFactory.openSession();
            // 映射sql的标识字符串
            String stament = "com.lion.test1.UserMapper.selectUser";
            User user = session.selectOne(stament, 1);
            System.out.println(user);
        }

    Console输出:

    2018-05-16 23:48:27,714 [main] DEBUG [com.lion.test1.UserMapper.selectUser] - ==>  Preparing: select * from users where id = ? 
    2018-05-16 23:48:27,867 [main] DEBUG [com.lion.test1.UserMapper.selectUser] - ==> Parameters: 1(Integer)
    2018-05-16 23:48:27,956 [main] DEBUG [com.lion.test1.UserMapper.selectUser] - <== Total: 1
    User [id=1, name=Tom, age=12]

     

以上是关于Mybatis简单入门的主要内容,如果未能解决你的问题,请参考以下文章

08.@Scheduled瀹氭椂浠诲姟銆佹暣鍚坖dbcTemplate銆乵ybatis鍖哄垎澶氭暟鎹簮

推荐net开发cad入门阅读代码片段

PHP展示KMP拓展算法思想

NML工程入门-三步使用

通过java反射实现简单的关于MongoDB的对象关系映射(ORM).

Jquary入门( 修改内容)