1. 程式人生 > >mybatis generator 自定義類名(修改mybatis-generator-1.3.2原始碼改dao類名)

mybatis generator 自定義類名(修改mybatis-generator-1.3.2原始碼改dao類名)

網上找了一大堆的例子,感覺這個比較全,比較細,就是寫的比較多,如果想看詳細的,請看下面的連結,自動忽略我的:

http://www.blogjava.net/bolo/archive/2015/03/20/423683.html

本篇只寫手頭只有一個eclipse的情況下(maven外掛已經裝好了),怎麼修改dao的類名

1.建maven專案:

1)

2)

3)

4)

5)如果沒有src/main/java src/main/resources這樣的結構,那麼專案右鍵-》properties->java build path.選擇libraries選項卡,edit,彈出編輯對話方塊,選擇workspace default jre,確定後重新整理就出來了。

2.修改pom.xml

自動生成的pom.xml如圖

在16、17行之間新增如下依賴:

<dependency>  
    <groupId>log4j</groupId>  
    <artifactId>log4j</artifactId>  
    <version>1.2.17</version>  
</dependency> 
<dependency>
    <groupId>org.apache.ant</groupId>
    <artifactId>ant</artifactId>
    <version>1.7.1</version>
</dependency>

儲存。右鍵-》maven->update project一下,等原始碼拷進來就不會報錯了

完整的如下:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.xdf</groupId>
  <artifactId>Mybatis-Generator-Maven1</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>Mybatis-Generator-Maven1 Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>  
        <groupId>log4j</groupId>  
        <artifactId>log4j</artifactId>  
        <version>1.2.17</version>  
    </dependency> 
    <dependency>
        <groupId>org.apache.ant</groupId>
        <artifactId>ant</artifactId>
        <version>1.7.1</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>Mybatis-Generator-Maven1</finalName>
  </build>
</project>



3.下載原始碼,專案右鍵-》maven->download sources。

這時會在本地庫裡找到這個原始碼:

把這個檔案解壓,把org所在的整個包拷貝到src/main/java下

將generatorConfig.xml、log4j.properties拷貝到src/main/resources下

generatorConfig.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>
	<!-- 資料庫驅動 -->
	<classPathEntry location="D:\mysql-connector-java-5.1.9.jar" />
	<context id="DB2Tables" targetRuntime="MyBatis3">
		<!-- <plugin type="cn.dulinan.mybatis.PaginationPlugin" />  -->
		<commentGenerator>
			<property name="suppressDate" value="true" />
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://127.0.0.1:3306/maventest" userId="root"
			password="root">
		</jdbcConnection>
		<!-- <javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver> -->
		<javaModelGenerator targetPackage="cn.dulinan.domain"
			targetProject="cn.dulinan.ssm">
			<property name="enableSubPackages" value="true" />
			<property name="trimStrings" value="true" />
		</javaModelGenerator>
		<sqlMapGenerator targetPackage="cn.dulinan.mapper"
			targetProject="cn.dulinan.ssm">
			<property name="enableSubPackages" value="true" />
		</sqlMapGenerator>
		<javaClientGenerator type="XMLMAPPER"
			targetPackage="cn.dulinan.dao" targetProject="cn.dulinan.ssm">
			<property name="enableSubPackages" value="true" />
		</javaClientGenerator>
		<table tableName="t_user" domainObjectName="User"></table>
<!-- 		<table tableName="user" domainObjectName="User"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			selectByExampleQueryId="false"></table> -->
	</context>
</generatorConfiguration>  

上面的是把mysql-connector-java-5.1.9.jar直接放到D盤了,另外mysql連線的資料庫,使用者名稱,密碼,及包名結構需要自己改一下

log4j.properties

#\u5B9A\u4E49LOG\u8F93\u51FA\u7EA7\u522B  
log4j.rootLogger=DEBUG,Console,File
#\u5B9A\u4E49\u65E5\u5FD7\u8F93\u51FA\u76EE\u7684\u5730\u4E3A\u63A7\u5236\u53F0  
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#\u53EF\u4EE5\u7075\u6D3B\u5730\u6307\u5B9A\u65E5\u5FD7\u8F93\u51FA\u683C\u5F0F\uFF0C\u4E0B\u9762\u4E00\u884C\u662F\u6307\u5B9A\u5177\u4F53\u7684\u683C\u5F0F  
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
  
#\u6587\u4EF6\u5927\u5C0F\u5230\u8FBE\u6307\u5B9A\u5C3A\u5BF8\u7684\u65F6\u5019\u4EA7\u751F\u4E00\u4E2A\u65B0\u7684\u6587\u4EF6  
log4j.appender.File = org.apache.log4j.RollingFileAppender
#\u6307\u5B9A\u8F93\u51FA\u76EE\u5F55  
log4j.appender.File.File = logs/ssm.log
#\u5B9A\u4E49\u6587\u4EF6\u6700\u5927\u5927\u5C0F  
log4j.appender.File.MaxFileSize = 10MB
# \u8F93\u51FA\u6240\u4EE5\u65E5\u5FD7\uFF0C\u5982\u679C\u6362\u6210DEBUG\u8868\u793A\u8F93\u51FADEBUG\u4EE5\u4E0A\u7EA7\u522B\u65E5\u5FD7  
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%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

4.修改檔案

主要修改如下三個地方:

1)IntrospectedTable.java中

第820行,將 sb.append("Mapper"); //$NON-NLS-1$   改成sb.append("Dao"); //修改Dao包名

2)新增GeneratorConfig.java檔案,作為生成的入口

package org.mybatis.generator;

import java.io.File;
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.internal.DefaultShellCallback;


public class GeneratorConfig {

	public static void main(String[] args) throws Exception{
	       List<String> warnings = new ArrayList<String>();
	       boolean overwrite = true;
	       File configFile = new File(GeneratorConfig.class.getResource("/generatorConfig.xml").toURI());
	       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);
	}
}

3)DefaultShellCallback.java,由於執行時,如果找不到xml配置的包名,在此類中會丟擲異常,因此在這裡,修改一下,直接建立檔案

在這個類中第50行處,註釋掉1,新增2



此時已修改完畢,在GeneratorConfig.java的main函式執行後,重新整理專案,會有如下程式碼生成

包名已改好