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>