一、思路:Spring集成Mybatis,连接Oracle数据库,并利用mybatis-generator自动生成Dao、Model、Mapping。这边我们接上一节,只是添加了Oracle部分。如果有疑惑或者不明白的可以查看上一节J2ee项目从0搭建(七):集成Mybatis、mybatis-generator代码生成、MySQL数据库
二、pom.xml配置文件中:<dependencies>中我们需要配置oracle的ojdbc依赖;
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>7.0</version>
</dependency>
如果自己本地没有ojdbc包或者http://mvnrepository.com/仓库中也找不到合适的pom依赖,可以下载ojdbc(我这边使用的),使用命令导入到本地仓库后即可。
mvn install:install-file -Dfile=ojdbc7-7.0.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=7.0 -Dpackaging=jar
三、定义好Oracle的数据库参数:驱动名、地址、用户名、密码等;在src/main/resources下创建application.properties
#oracle database setting
jdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:orcl
jdbc.username=xxxxxx
jdbc.password=xxxxxx
#connection pool settings
jdbc.pool.maxIdle=10
jdbc.pool.maxActive=40
四、还在此目录下创建spring-mybatis.xml配置文件,使用<context:property-placeholder>引入上面定义好的属性配置文件,并配置一个DataSource bean,oracle就配置好了。
<!-- Oracle -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<!-- 数据库信息 -->
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 链接池信息:最大活跃数、最大空闲数 -->
<property name="maxActive" value="40" />
<property name="maxIdle" value="${jdbc.pool.maxIdle}" />
<property name="defaultAutoCommit" value="false" />
<!-- 连接Idle一个小时后超时(配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒) -->
<property name="timeBetweenEvictionRunsMillis" value="3600000" />
<property name="minEvictableIdleTimeMillis" value="3600000" />
<!-- 验证连接有效与否的SQL,不同的数据配置不同 -->
<!-- 用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。 推荐使用SELECT 1-->
<property name="validationQuery" value="SELECT 1 from dual" />
<!-- 这里建议配置为TRUE,防止取到的连接不可用 -->
<!-- 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 -->
<property name="testOnBorrow" value="true" />
<!-- 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 -->
<property name="testOnReturn" value="true" />
<!-- 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效 -->
<property name="testWhileIdle" value="true" />
</bean>
五、为了确保mybatis-generator生成的映射文件可以使用spring注解管理bean的创建,在spring-mybatis.xml中将自动生成的model、dao、Mapping.xml路径进行配置。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
<property name="typeAliasesPackage" value="com.spring.demo.mybatis.model" />
<!-- 显式指定Mapper文件位置 -->
<property name="mapperLocations" value="classpath:/mybatis/*.xml" />
</bean>
<!-- 扫描basePackage下所有以@MyBatisRepository标识的 接口 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.spring.demo.mybatis.dao" />
</bean>
六、我们用mybatis-generator自动生成Dao、Model、Mapping,所以仍然在此目录下创建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">
<!-- mvn mybatis-generator:generate -->
<generatorConfiguration>
<classPathEntry
location="D:\xxx\maven-repository\com\oracle\ojdbc7\7.0\ojdbc7-7.0.jar" />
<context id="baseTradeTables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<jdbcConnection driverClass="oracle.jdbc.OracleDriver"
connectionURL="jdbc:oracle:thin:@xxx:xxx:xxx:xxx:orcl" userId="xxxxxx"
password="xxxxxx">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="true" />
</javaTypeResolver>
<!-- 后台生成 -->
<javaModelGenerator targetPackage="com.spring.demo.mybatis.model"
targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="mybatis"
targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.spring.demo.mybatis.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table tableName="DESC_INFO">
</table>
</context>
</generatorConfiguration>
六、mybatis-generator配置好之后,我们就来自动生成一下user表的dao、model、mapping:在项目目录下(pom.xml)打开命令行工具,输入mvn mybatis-generator:generate,第一次的话,如果缺少某些依赖jar的话可能需要花点时间。
七、BUILD SUCCESS之后,刷新项目后,就能发现自动生成的文件了。
八、这边只是简单说了mybatis和oracle的集成,部分详情可以查看
J2ee项目从0搭建(七):集成Mybatis、mybatis-generator代码生成、MySQL数据库
======================================================================================================================