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>
验证
- 新建pojo User 属性 int id,String name,int age //getter setter toString 注意:此处的属性需和数据库表字段保持一致,不然无法完成字段映射,后面讲解不一致时如何进行字段映射。
- 定义操作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>
- 在mybatis配置文件mybatis-config.xml中注册映射文件UserMapper.xml (上面mybatis配置文件中注释掉内容,注意:注册映射文件使用的市文件的路径 / 而不是包路径 . )
<mappers> <mapper resource="com/lion/test1/UserMapper.xml"/> </mappers>
- 编写测试代码,执行映射文件中的查询
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鍖哄垎澶氭暟鎹簮