栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis加强(2)~mybatis的代码生成器 Generator

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis加强(2)~mybatis的代码生成器 Generator


一、mybatis的代码生成器 Generator ✿ 介绍:

​ MyBatis Generator 简称 MBG,是一个专门为 iBatis、MyBatis 框架使用者提供的代码生成器,

可以快速根据表生成对应的模型对象、Mapper接口、Mapper文件,甚至生成 QBC 风格查询对象。

MBG 支持基本的增删改查操作,也支持 QBC 风格的条件查询,但是复杂的查询还是需要我们写 SQL。

官方文档地址:http://www.mybatis.org/generator/

官方项目地址:https://github.com/mybatis/generator/releases


■ 运行 MyBatis Generator:

□ 方式一:使用 Java 代码运行(目前选用)
□ 方式二:使用 Maven 插件运行(项目中选用)


✿ mybatis的Generator使用:

① 拷贝jar包

② MGB的配置 genratorConfig.xml [包含生成代码的配置参数]

③ 运行MGB:方式一(使用 Java 代码运行) 方式二(使用 Maven 插件运行)



1、配置详解: ■ genratorConfig.xml 文件【常用的配置】:

genratorConfig.xml 文件的Context元素的属性 targetRuntime=“MyBatis3Simple”

使用的时候要注意:

元素 jdbcConnection 连接数据库的四要素(注意数据库的名称)元素 javaModelGenerator 生成domain对象的targetPackage 和 targetProject元素 sqlMapGenerator 生成Mapper文件的targetPackage 和 targetProject元素 javaClientGenerator 生成Mapper接口的targetPackage 和 targetProject元素 table的tableName表名




  
    
    
    
    
    
 
    
    
       
       
    
 
    
    
    
 
    
    
       
    
 
    
    
       
    
 
    
    
       
    
 
 
    
     
    
       
    
2、启动类 Generator:
public class Generator {
	public static void main(String[] args) throws Exception {
		//MBG执行过程中的警告信息
		List warnings = new ArrayList();
		//生成代码重复时,是否覆盖源代码
		boolean override = false;
		InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("generatorConfig.xml");
		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config = cp.parseConfiguration(in);

		DefaultShellCallback callback = new DefaultShellCallback(override);
		//创建MBG
		MyBatisGenerator mbg = new MyBatisGenerator(config, callback, warnings);
		mbg.generate(null);
		//输出警告信息
		for (String warn : warnings) {
			System.out.println(warn);
		}
	}
}

■ 运行MBG 生成了domain类、mapper接口和mapper.xml 文件

在开发中,一般建议手写domain类

■ 细节:数据库的表名t_user2,生成对象变成TUser2【可以把数据库的表名取名为user----》生成对象User】

MBG遇到下划线,使用驼峰法表示,还有MBG默认大小写不敏感,列名—》属性名全小写(设置一下属性useActualColumnNames即可大小写敏感):

对象
表名使用下划线(t_user)TUser
列名使用驼峰法默认大小写不敏感,全小写

开发中数据库表中属性很少使用下划线_ 命名
3、QBC案例: ■ QBC 风格:Query By Criteria 一种查询方式,比较面向对象,看不到sql语句

主要由Criteria、Example 组成,使用面向对象的方式区域拼接查询条件,一般适合简单查询(单表查询)。

genratorConfig.xml 文件的Context元素的属性 targetRuntime=“MyBatis3” 可以生成带有条件的增删改查,缺省

■ 测试例子:

	@Test
	public void testQuery() {
		SystemUserMapper mapper = MyBatisUtil.getMapper(SystemUserMapper.class);
		
//		//查询id为2的员工
//		SystemUserKey key = new SystemUserKey();
//		key.setId(2L);
//		mapper.selectByPrimaryKey(key);
		
		//查询userType在2-10之间
		//查询条件example
		SystemUserExample example = new SystemUserExample();
		//查询规则criteria
		Criteria criteria = example.createCriteria();
		criteria.andUserTypeBetween(2, 3);
		
		//模糊查询
		criteria.andUsernameLike("明");
		mapper.selectByExample(example);
	}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/737077.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号