1.背景
在練習使用mybatis-generator時候,無意間看到博文esaycode(代碼神器),https://www.jianshu.com/p/e4192d7c6844,試驗完,感覺這個工具和mybatis-generator工具類似。
2.使用步驟
<1>idea安裝easy code插件;
<2>使用idea的database功能,連接到數據庫,支持oracle、mysql;
<3>對應table,使用generate code;
<4>修改代碼,自動生成很難完全滿足需求,仍然需要修改(比如使用ojdbc,生成的語法居然是mysql的分頁語法,所以這個工具只是幫助做一些簡單的任務)
3.測試代碼
3.1工程目錄
3.2配置文件
datasource.properties
jdbc.databaseurl=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.13.44)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=db1)))
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.username=admin
jdbc.password=123
mybatis-config.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<propertiesresource="config/datasource.properties"></properties>
<typeAliases>
<!--別名方式1,一個一個的配置type中放置的是類的全路徑,alias中放置的是類別名
<typeAliasetype="com.mybatis.demo.Entity.User"alias="UserBean"/>-->
<!--別名方式2,自動掃描,將JAVA類的類名作為類的類別名-->
<!--<packagename="com.mybatis.demo.Entity"/>-->
<typeAliasalias="TaskResultRecord"type="com.common.easycode.entity. Record"/>
</typeAliases>
<!--配置mybatis運行環境-->
<environmentsdefault="development">
<environmentid="development">
<!--type="JDBC"代表使用JDBC的提交和回滾來管理事務-->
<transactionManagertype="JDBC"/>
<!--mybatis提供了3種數據源類型,分別是:POOLED,UNPOOLED,JNDI-->
<!--POOLED表示支持JDBC數據源連接池-->
<!--UNPOOLED表示不支持數據源連接池-->
<!--JNDI表示支持外部數據源連接池-->
<dataSourcetype="POOLED">
<propertyname="driver"value="${jdbc.driver}"/>
<propertyname="url"value="${jdbc.databaseurl}"/>
<propertyname="username"value="${jdbc.username}"/>
<propertyname="password"value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--映射文件方式1,一個一個的配置-->
<mapperresource="mapper/RecordDao.xml"/>
<!--映射文件方式2,自動掃描包內的Mapper接口與配置文件-->
<!--<packagename="com.mybatis.demo"/>-->
</mappers>
</configuration>
pom.xml
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
3.3.測試代碼
publicclassTaskResultRecordService{
publicstaticvoidmain(String[]args){
/*
測試easycode
*/
try{
Reader reader=Resources.getResourceAsReader("config/mybatis-config.xml");
SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader);
SqlSession session=sessionFactory.openSession();
RecordDao recordDao=session.getMapper(RecordDao.class);
recordDAO.selectById...
session.commit();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
4.注意事項
1.使用ojdbc6的時候出現了: java.lang.ArrayIndexOutOfBoundsException: 9 ;【解決辦法】使用ojdbc7
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>