Home >Java >javaTutorial >Getting Started with MyBatis (7) ---Reverse Engineering
1. Reverse Engineering
1.1, Overview
mybatis requires SQL written by the program number.
mybatis officially provides reverse engineering, which can automatically generate the code required for mybatis execution for a single table
(mapper, java, maper.xml, po...)
is generally generated from database to java code. Process
2. Import jar package
2.1, mybatis-generator
3. Configure xml
3.1, generatorConfig.xml
br/>PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.exception.XMLParserException;import org.mybatis.generator.internal.DefaultShellCallback;public class GeneratorSqlmap { public void generator() throws Exception{ 五、测试 5.1、测试类 package com.pb.ssm.mapper;import static org.junit.Assert.fail;import java.util.Date;import java.util.List;import javax.crypto.Cipher;import org.junit.Before;import org.junit.Test;import org.springframework.context.applicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.pb.ssm.po.Author;import com.pb.ssm.po.AuthorExample;import com.pb.ssm.po.AuthorExample.Criteria;public class AuthorMapperTest { private ApplicationContext applicationContext; private AuthorMapper authorMapper; The above is the content of Getting Started with MyBatis (7)---Reverse Engineering. For more related content, please pay attention to PHP Chinese Net (www.php.cn)!
"http:// /mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
"
"
" " "
; --> & gt; l & lt;/jdbcoconnection & gt;
& lt;-default False, analyze JDBC Decimal and NUMERIC as Integer, as to True, JDBC Decimal
and Numeric Types are parsed into java.math. .Bigdecimal -& gt;
& lt ;javaTypeResolver>
;javaModelGenerator targetPackage=" com.mybatis.po "
targetproject =". src "& gt;
& lt; proprity name =" enableSubpackages "value =" false " /& gt;
& lt; rimstrings "value =" true " /& gt;
& lt; proprity name = "enablesubpackages" value = "false" /& gt;
& lt;! Before and after space- -> =" XMLMAPPER"
targetPackage="com.pb.mybatis.mapper" ages" value="false" />
" " ="blog">
" "
4. Run the java program to generate
4.1, java program
List
File configFile = new File("generatorConfig.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(null);
}
public static void main(String[] args) throws Exception { try {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
@Before public void setUp() throws Exception {
applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml");
authorMapper=(AuthorMapper) applicationContext.getBean("authorMapper");
}
//根据条件查询记录数 @Test public void testCountByExample() {
AuthorExample example=new AuthorExample(); //可以加条件,不加条件默认查询全部
Criteria criteria=example.createCriteria(); //加条件,介绍不是空的 criteria.andAuthorBioIsNotNull(); int num=authorMapper.countByExample(example);
System.out.println("num="+num);
}
//根据条件删除 @Test public void testDeleteByExample() {
AuthorExample example=new AuthorExample(); //可以加条件,不加条件默认查询全部
Criteria criteria=example.createCriteria();
criteria.andAuthorUsernameEqualTo("程序员"); int num=authorMapper.deleteByExample(example);
System.out.println("num="+num);
}
//根据主键ID删除 @Test public void testDeleteByPrimaryKey() { int num=authorMapper.deleteByPrimaryKey(18);
System.out.println("num="+num);
} //插入 @Test public void testInsert() {
Author author=new Author();
author.setAuthorUsername("再测试一下");
author.setAuthorPassword("admin123");
author.setAuthorEmail("admin1234@QQ.com");
int num=authorMapper.insert(author);
System.out.println("num="+num); //这个方法插入,默认不会把数据库自增加ID返回,如果需要,可以手动增加
System.out.println("插入后的ID"+author.getAuthorId());
} //插入 @Test public void testInsertSelective() {
Author author=new Author();
author.setAuthorUsername("再测试一下");
author.setAuthorPassword("admin123");
author.setAuthorEmail("admin1234@qq.com");
author.setRegisterTime(new Date());
int num=authorMapper.insert(author);
System.out.println("num="+num); //这个方法插入,默认不会把数据库自增加ID返回,如果需要,可以手动增加
System.out.println("插入后的ID"+author.getAuthorId());
} //自定义 条件查询 @Test public void testSelectByExample() { //声明一个对象
AuthorExample authorExample=new AuthorExample(); //创建criteria对象添加条件 and 连接
Criteria criteria=authorExample.createCriteria(); //需要手动加%
criteria.andAuthorUsernameLike("%张三%");
List
System.out.println(list.size());
}
//Query based on primary key ID @Test public void testSelectByPrimaryKey() {
Author author= Mapper. selectByPrimaryKey(6);
System.out.println(author.getAuthorUsername()+"..."+author.getAuthorBio());
}
@Test public void testUpdateByExampleSelective() {
fail("Not yet implemented ");
}
@Test public void testUpdateByExample() {
fail("Not yet implemented");
}
@Test public void testUpdateByPrimaryKeySelective() {
fail( "Not yet implemented");
}
@Test public void testUpdateByPrimaryKey() {
fail("Not yet implemented");
}
}