mybatis实现反向工程
生活随笔
收集整理的這篇文章主要介紹了
mybatis实现反向工程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion> ?<groupId>com.henu</groupId><artifactId>mybatis_fanxianggongcheng</artifactId><version>1.0-SNAPSHOT</version> ?<dependencies><!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency> ? ?<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency> ?<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency> ?<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency> ?<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version></dependency> ?<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.20</version></dependency> ?</dependencies> ? </project>generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> ? <generatorConfiguration><context id="testTables" targetRuntime="MyBatis3"><commentGenerator><!-- 是否去除自動生成的注釋 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/mybatisplus" userId="root"password="123456"></jdbcConnection><!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver> ?<!-- targetProject:生成PO類的位置 --><javaModelGenerator targetPackage="com.henu.pojo"targetProject=".\src"><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name="enableSubPackages" value="false" /><!-- 從數據庫返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="com.henu.mapper"targetProject=".\src"><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.henu.mapper"targetProject=".\src"><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 指定數據庫表 --><table schema="" tableName="dept"></table><table schema="" tableName="emp"></table><table schema="" tableName="user"></table></context> </generatorConfiguration>GeneratorSqlmap
import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; ? import java.io.File; import java.util.ArrayList; import java.util.List; ? public class GeneratorSqlmap { ?public void generator() throws Exception{ ?List<String> warnings = new ArrayList<String>();boolean overwrite = true;//指定 逆向工程配置文件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();} ?} ? }運行GeneratorSqlmap,當然在這之前你需要把generatorConfig.xml修改為你所需要的情況。
比如:generatorConfig.xml中
<!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/mybatisplus" userId="root"password="123456"> </jdbcConnection>各種包名的命名自行設置
數據庫的指定
<!-- 指定數據庫表 --> <table schema="" tableName="dept"></table> <table schema="" tableName="emp"></table> <table schema="" tableName="user"></table>這是我的指定數據庫:
【注】我的generatorConfig.xml路徑在這個項目下即:
mybatis_fanxianggongcheng
然后運行-------》》》》》》
生成com包,將其移動到java下。
即:
【注意】將xml文件剪切放入resources中即:
[注意]這里有一個idea的有趣地方,在resources下建立的目錄需一層一層建立,如果直接com.henu.mapper并不識別,即先com然后在com下建henu,在henu下建mapper
另外mybatis的配置文件:SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> ?<properties resource="jdbcConfig.properties"></properties> ? ?<!--使用typeAliases配置別名,它只能配置bean中類的別名--><typeAliases><package name="com.henu.pojo"></package></typeAliases> ? ?<!-- 配置環境 --> ?<environments default="mysql"><!--配置mysql的環境--><environment id="mysql"><!--配置事務的類型--><transactionManager type="JDBC"></transactionManager><!--配置數據源(連接池)--><dataSource type="POOLED"><!--配置連接數數據庫的基本信息--><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments> ?<!--配置映射文件的位置--><mappers><package name="com.henu.mapper"></package></mappers> ? </configuration>jdbcConfig.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=utf8 username=root password=123456log4j.properties
log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG測試類
package com.henu.test; ? import com.henu.mapper.UserMapper; import com.henu.pojo.User; import com.henu.pojo.UserExample; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.After; import org.junit.Before; import org.junit.Test; ? import java.io.IOException; import java.io.InputStream; import java.util.List; ? /*** @author George* @description**/ public class MybatisTest { ?private InputStream in;private SqlSession sqlSession; ?@Before //用于測試方法執行之前執行public void init() throws IOException {in = Resources.getResourceAsStream("SqlMapConfig.xml");//2.創建SqlSessionFactory工廠SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);//3.使用工廠生成SqlSession對象sqlSession = factory.openSession();} ? ?@After //用于測試方法執行之后執行public void destory() throws IOException {sqlSession.close();in.close();} ? ?@Testpublic void test01(){UserMapper userMapper = sqlSession.getMapper(UserMapper.class);UserExample userExample = new UserExample();UserExample.Criteria criteria = userExample.createCriteria(); ?criteria.andIdLessThan(10);List<User> users = userMapper.selectByExample(userExample);for (User user : users) {System.out.println(user);}}@Testpublic void test02(){UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user1 = userMapper.selectByPrimaryKey(2);System.out.println(user1);} }總結
以上是生活随笔為你收集整理的mybatis实现反向工程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单介绍强引用,软引用,弱引用,虚引用
- 下一篇: spring-AOP前言