MyBatis逆向工程配置
通过MyBatis逆向工程,可以很方便地自动生成java代码。
使用MyBatis逆向工程,需要从官网下载jar包
将jar包添加在lib后,在工程目录下新建mbg.xml文件
打开mgb.xml文件,做如下配置:
<generatorConfiguration>
<!--
targetRuntime="MyBatis3Simple":生成简单版的CRUD
MyBatis3:豪华版
-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- jdbcConnection:指定如何连接到目标数据库 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis?allowMultiQueries=true"
userId="root"
password="root">
</jdbcConnection>
<!-- -->
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- javaModelGenerator:指定javaBean的生成策略
targetPackage="test.model":目标包名
targetPFroject="\MBGTestProject\src":目标工程
-->
<javaModelGenerator targetPackage="com.timephoenix.mybatis.bean"
targetProject=".\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- sqlMapGenerator:sql映射生成策略: -->
<sqlMapGenerator targetPackage="com.timephoenix.mybatis.dao"
targetProject=".\conf">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- javaClientGenerator:指定mapper接口所在的位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.timephoenix.mybatis.dao"
targetProject=".\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 指定要逆向分析哪些表:根据表要创建javaBean -->
<table tableName="tbl_dept" domainObjectName="Department"></table>
<table tableName="tbl_employee" domainObjectName="Employee"></table>
</context>
</generatorConfiguration>
在测试包下写入如下代码,然后运行测试:
@Test
public void testMBG() throws Exception{
List<String> warnings = new ArrayList();
boolean overwrite = true;
File configFile = new File("mbg.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback,warnings);
myBatisGenerator.generate((ProgressCallback)null);
}
即可得到自动生成的java代码:
测试生成的代码:
@Test
public void testMBG01() throws IOException{
SqlSessionFactory sqlSessionFactory = this.getSqlSessionFactory();
SqlSession openSession = sqlSessionFactory.openSession();
EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
Employee selectByPrimaryKey = mapper.selectByPrimaryKey(4);
System.out.println("学生" + selectByPrimaryKey.getLastName());
}
ctiteria使用:
EmployeeMapper mapper = (EmployeeMapper)openSession.getMapper(EmployeeMapper.class);
EmployeeExample example = new EmployeeExample();
Criteria criteria = example.createCriteria();
criteria.andLastNameLike("%e%");
criteria.andGenderEqualTo("1");
Criteria criteria2 = example.createCriteria();
criteria2.andEmailLike("%e%");
example.or(criteria2);
List<Employee> list = mapper.selectByExample(example);
Iterator var9 = list.iterator();
while(var9.hasNext()) {
Employee employee = (Employee)var9.next();
System.out.println(employee.getId());
}