官网地址

程序猿升级课

热爱开源,喜欢摸索


深入浅出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的例子了。下一篇正式开始分析源码

posted @ 2019-01-16 17:06  chinesszz  阅读(143)  评论(0编辑  收藏  举报
ヾ(≧O≦)〃嗷~