mybatis逆向工程
- 导入架包
2. 在工程底下创建一个generatorConfig.xml
在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>
<!--是否去除自动生成的注释-->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类,连接地址,用户名,密码-->
<!-- jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis"
userId="root"
password="123">
</jdbcConnection-->
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
userId="scott"
password="123456">
</jdbcConnection>
<!-- 默认false,表示把JDBC DECIMAL和NUMERIC类型解析为Integer,为true时把JDBC DECIMAL和NUMERIC解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成的pojo类的位置-->
<javaModelGenerator targetPackage="com.neuedu.mybatis.po"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置-->
<sqlMapGenerator targetPackage="com.neuedu.mybatis.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.neuedu.mybatis.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table tableName="emp" enableSelectByExample="false" enableDeleteByExample="false" enableUpdateByExample="false" enableCountByExample="false"></table>
<table tableName="dept" enableSelectByExample="false" enableDeleteByExample="false" enableUpdateByExample="false" enableCountByExample="false"></table>
<!-- <table schema="" tableName="sys_user"></table>
<table schema="" tableName="sys_role"></table>
<table schema="" tableName="sys_permission"></table>
<table schema="" tableName="sys_user_role"></table>
<table schema="" tableName="sys_role_permission"></table> -->
<!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>
我们需要注意的是generatorconfig.xml文件中的也是需要我们去改动的比如数据库的连接那里,连接的是哪个数据库,userid以及username都需要注意要跟自己的一样;
3.将我们的db.properties文件与mybatis-config.xml文件放入src目录下。
4.在src目录下创建一个包为Test,里面再创建一个Test类,将以下代码输入到Test中
public class Test {
public static void main(String[] args) throws Exception {
generator();
}
private static void generator() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("generatorConfig.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);
System.out.println(">>>>>>>>>>>>>>>>>>");
}
}
执行这段代码就会自动生成数据类表中数据的实体类与接口层
6.再在Test里面创建一个TestResult类,输入以下代码
package Test;
import java.io.InputStream;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.neuedu.mybatis.mapper.EmpMapper;
import com.neuedu.mybatis.po.Emp;
public class TestResult {
public static void main(String[] args)throws Exception {
// 1.初始化mybatis的环境
// 读取mybatis核心配置文件,获取sessionFactory
InputStream inputStream = Resources
.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
// 获取Session
SqlSession session = sessionFactory.openSession();
EmpMapper empMapper=session.getMapper(com.neuedu.mybatis.mapper.EmpMapper.class);
Emp emp=empMapper.selectByPrimaryKey(7566);
System.out.println(emp.getEname());
}
}
就可以得到我们想要的数据了;
在执行最后这一段代码时,一定要把数据库打开,不然的话会报错