generatorConfigation.xml。注意配置數據庫驅動包的絕對路徑。 java
<?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="c:/mysql-connector-java-5.1.22-bin.jar" /> <!-- 環境配置 ************************************************** id="自定義的配置名稱" targetRuntime="MyBatis版本" --> <context id="MySqlTables" targetRuntime="MyBatis3" > <!-- 數據庫 =============================================== driverClass="驅動" connectionURL="數據庫url" userId="用戶" password="密碼" --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/db_mybatis" userId="root" password="root"> </jdbcConnection> <!-- Java數據類型分離器,數據類型轉換 ===================== property 屬性 name="強迫雙精度" value="不" --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- Java模型生成器 ======================================= targetPackage="生成文件的目標路徑" targetProject="已存在的項目包" enableSubPackages-能夠省略對應約束名,true-是的,能夠省略tb_generator trimString-驗證字符串,true-是的 --> <javaModelGenerator targetPackage="cn.cvu.test.model" targetProject="src"> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- sql映射文件生成器 ======================================= targetPackage="生成文件的目標路徑" targetProject="已存在的項目包" enableSubPackages-能夠省略對應約束名,true-是的,能夠省略tb_generator --> <sqlMapGenerator targetPackage="cn.cvu.test.xml" targetProject="src"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- java委託對象DAO生成器,接口 ============================= type="" targetPackage="生成文件的目標路徑" targetProject="已存在的項目包" enableSubPackages-能夠省略對應約束名,true-是的,能夠省略tb_generator --> <javaClientGenerator type="XMLMAPPER" targetPackage="cn.cvu.test.dao" targetProject="src"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 表單,已存在,根據此表生成其它文件 ======================= tableName="已有的表單名稱" domainObjetctName="對應生成的文件名前綴" --> <table tableName="tb_generator" domainObjectName="Eminem"> <!-- useActualColumnNames-使用真實列名 , true-嗯。若是false,則由columnOverride節點控制 --> <property name="useActualColumnNames" value="true" /> <!-- 標識列 column="列名" sqlStatement="某種數據庫語言" identity="做爲主鍵" --> <generatedKey column="id" sqlStatement="MySql" identity="true" /> <!-- 覆蓋項,當property name="useActualColumnNames" value="true"時。 column="被覆蓋值的列名" property="用來覆蓋的對應的java類的屬性" --> <columnOverride column="name" property="generName" /> </table> </context> </generatorConfiguration>
將配置文件放到src裏。加入generator的jar文件。 mysql
package cn.cvu.test.build; import java.io.File; import java.util.ArrayList; import java.util.List; import org.junit.Test; 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 TestGenerateWithJava { @Test public void testBuild() throws Exception { // 信息緩存 List<String> warnings = new ArrayList<String>(); // 覆蓋已有的重名文件 boolean overwrite = true; // 準備 配置文件 File configFile = new File("F:/myeclipse_workspace/generator/src/generatorConfigation.xml"); // 1.建立 配置解析器 ConfigurationParser parser = new ConfigurationParser(warnings); // 2.獲取 配置信息 Configuration config = parser.parseConfiguration(configFile); // 3.建立 默認命令解釋調回器 DefaultShellCallback callback = new DefaultShellCallback(overwrite); // 4.建立 mybatis的生成器 MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); // 5.執行,關閉生成器 myBatisGenerator.generate(null); } }
選中src,按F5刷新,能夠看到新文件已經建立: web
修改報錯的EmineMapper.java文件,去除註解: sql
mybatis-3.2.2.jar
mybatis-generator-core-1.3.2.jar
mysql-connector-java-5.1.22-bin.jar 數據庫
上面咱們註釋掉了自動生成的註解代碼,在src新建一個xml配置文件,mybatisConfigation.xml: apache
<?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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1:3306/db_mybatis" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <mappers> <!-- 引入MBG生成器建立的映射文件 --> <mapper resource="cn/cvu/test/xml/EminemMapper.xml" /> </mappers> </configuration>
建立測試類cn.cvu.test.dotest.TestDoGeneratorWithJava : api
package cn.cvu.test.dotest; import java.io.Reader; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import cn.cvu.test.dao.EminemMapper; import cn.cvu.test.model.Eminem; import cn.cvu.test.model.EminemExample; import cn.cvu.test.model.EminemExample.Criteria; public class TestDoGeneratorWithJava { @Test public void testQuery() throws Exception { // 建立SQL會話: Reader reader = Resources.getResourceAsReader("mybatisConfigation.xml"); SqlSession session = new SqlSessionFactoryBuilder().build(reader).openSession(); // 建立查詢實例: EminemExample eminemExample = new EminemExample(); // 獲取映射實體: EminemMapper mapper = session.getMapper(EminemMapper.class); // 利用實體經過實例查詢所有條目 List<Eminem> eminems = mapper.selectByExample(eminemExample); System.out.println("ID \t\t name \t\t notes \n"); for (Eminem eminem : eminems) { System.out.println(eminem.getId()+ "\t\t"+eminem.getGenerName()+ "\t\t"+eminem.getNotes()); } session.close(); } }