1. 程式人生 > >Mybatis七(MBG 逆向工程)

Mybatis七(MBG 逆向工程)

utf-8 res rim sel oct bat art conn map

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

https://github.com/mybatis/generator/releases

<1>編寫mbg.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
"> <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/mybatis" userId="root" password="root"> </jdbcConnection> <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:user" userId
=user" password="root123"> </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.generator.model" targetProject=".\src"> <!-- enableSubPackages:是否讓schema作為包的後綴 --> <property name="enableSubPackages" value="false" /> <!-- 從數據庫返回的值被清理前後的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="com.generator.mapper" targetProject=".\src"> <!-- enableSubPackages:是否讓schema作為包的後綴 --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.generator.mapper" targetProject=".\src"> <!-- enableSubPackages:是否讓schema作為包的後綴 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 指定數據庫表 --> <table tableName="user" domainObjectName="User"></table> <table tableName="department"></table> </context> </generatorConfiguration>

<2>建立pacage,對應目錄

<3>編寫生成代碼類,運行後刷新目錄

public class MybatisGeneratorTest {
    
    @Test
    public void generator() throws Exception{
 
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定 逆向工程配置文件
        File configFile = new File("config/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(null);
 
    } 
}

<4>.生成的逆向工程測試

 public void testSelectByExample() {
        String resource = "mybatis-config.xml";
        InputStream inputStream;
        try {
            inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            UserExample example = new UserExample();

//Criteria類是UserExample類裏面的內部類,Criteria類是幹什麽用的呢?它專門用於封裝自定義查詢條件的
Criteria criteria = example.createCriteria();
criteria.andGenderEqualTo("1");
criteria.andLastNameLike("%張%");

        // 執行查詢

       List<User> list = mapper.selectByExample(example);

for (User user : list) {
                System.out.println(user);
            }
            sqlSession.commit();
            // 釋放資源
            sqlSession.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

Mybatis七(MBG 逆向工程)