深入浅出Mybatis系列(一)Mybatis入门
最早接触Mybatis是在2016年,那时候学习只会用,根本不知道什么原理,不懂的原理的地方只能死记。搭建一个小的demo放到github,工作需要的时候就直接复制黏贴,虽然也能满足工作需要但是总感觉到不带劲。在找到工作后大概2017年时候就对Mybatis的源码进行了阅读,其实相对于Dubbo,Spring,之类的源码Mybatis的源码还是非常简单的,现在也经常推荐给刚开始学习看源码的同学。很早就像写Mybatis的源码分析了,2018年就开始写了一点,但是一直拖到了2019年才写完。本篇是第一篇我们写以一个小例子来开篇,看一下老司机是如何快速搭建一个Mybatis的开发小例子的。
关键词
插件
配置文件
SpringBoot
技术栈
SpringBoot
maven
数据库脚本
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for `T_USER`
-- ----------------------------
DROP TABLE IF EXISTS `T_USER`;
CREATE TABLE `T_USER` (
`uid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`name` char(32) DEFAULT NULL,
`token_id` char(64) NOT NULL,
PRIMARY KEY (`uid`,`token_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS = 1;
利用Maven插件自动生成实体类,Mapper。
POM文件引入插件
<plugin>
<groupId>org.mybatis.nerator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
插件配置文件
在src/main/resources/generator/目录创建一个配置文件
- generatorConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<!--使用方法:mvn mybatis-generator:generate-->
<generatorConfiguration>
<!--连接驱动要确定地址-->
<classPathEntry location="/Users/mac/.m2/repository/mysql/mysql-connector-java/8.0.12/mysql-connector-java-8.0.12.jar"/>
<context id="context1" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/test"
userId="root"
password="root">
</jdbcConnection>
<!--实体类也不用提前,建立,会自动根据数据库生成,对应数据库中字段-->
<javaModelGenerator targetPackage="orm.example.dal.model" targetProject="src/main/java"/>
<!--映射的mapper.xml文件-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
<!--映射文件,目标不必提前生成,会自动生成-->
<javaClientGenerator targetPackage="orm.example.dal.mapper" targetProject="src/main/java"
type="XMLMAPPER"/>
<!--输入表明,表名不用对应实体,会自动判断-->
<table tableName="t_user" ></table>
</context>
</generatorConfiguration>
运行插件命令
mvn mybatis-generator:generate
下图红色框框都是自动生成的
TUserMapper包括基本的增删改查。
代码测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class LxchinesszzMybatisStudyApplicationTests {
@Autowired
TUserMapper tUserMapper;
@Autowired
ApplicationContextTools applicationContextTools;
@Test
public void contextLoads() {
List<TUser> tUsers = tUserMapper.selectAll();
System.out.println(tUsers);
//[TUser{id=1, name='中国'}, TUser{id=2, name='美国'}, TUser{id=3, name='日本'},
// TUser{id=4, name='菲律宾'}, TUser{id=5, name='印度尼西亚'},
// TUser{id=6, name='*'}, TUser{id=7, name='俄罗斯'}]
}
}
好啦,这样一个简单的mybatis 的例子就能成功运行啦。通过这个例子,能使你快速搭建一个Mybatis的例子了。下一篇正式开始分析源码