Oracle 在Spring+Hibernate中的使用
阿新 • • 發佈:2018-12-31
本文會基於一個搭建好的工程更新配置檔案完成。
1、準備
您需要一個搭建好的Spring+Hibernate工程。
2、jdbc驅動
若已安裝Oracle,在Oracle主目錄中有,比如本人的為:C:\app\iamanxpp\product\12.1.0\dbhome_1\jdbc。
把ojdbc7.jar新增到工程中即可。
因為為Maven工程,新增jar包方式如下:
- <dependency>
- <groupId>com.oracle</groupId>
- <artifactId>ojdbc14</artifactId>
- <version>10.2.0.4.0</version>
- <scope>system</scope>
- <systemPath>C:\java\workspace\web\Oracle12JDBC\lib\ojdbc7.jar</systemPath>
- </dependency>
其中systemPath請填入您實際的jdbc地址。
如果web容器使用tomcat,請將ojdbc7.jar同時新增到tomcat中的lib目錄,比如本人為:
- C:\java\apache-tomcat-7.0.61\lib
下面開始更新專案的配置。
3、配置檔案
db.properties
請修改相關引數為您實際的值:
- #Oracle
- jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
- jdbc.url=jdbc:oracle:thin:@//127.0.0.1:1521/orcl
- jdbc.username=yourusername
- jdbc.password=yourpassword
applicationContext.xml
資料來源的配置請保證如下:
- <context:property-placeholderlocation="classpath:/db.properties"
- <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <propertyname="driverClassName"value="${jdbc.driverClassName}"/>
- <propertyname="url"value="${jdbc.url}"/>
- <propertyname="username"value="${jdbc.username}"/>
- <propertyname="password"value="${jdbc.password}"/>
- <propertyname="maxActive"value="100"></property>
- <propertyname="minIdle"value="20"></property>
- <propertyname="maxWait"value="3000"></property>
- <propertyname="initialSize"value="30"></property>
- </bean>
各大資料庫sql是有差別的,需要配置方言:
- <beanid="sessionFactory"
- class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
- <propertyname="dataSource"ref="dataSource"/>
- <propertyname="packagesToScan">
- <list>
- <value>com.anxpp.demo.core.entity</value>
- </list>
- </property>
- <propertyname="hibernateProperties">
- <props>
- <propkey="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
- <propkey="hibernate.show_sql">false</prop>
- <propkey="hibernate.format_sql">true</prop>
- <propkey="hibernate.hbm2ddl.auto">update</prop>
- </props>
- </property>
- </bean>
4、執行測試
接下來就可以編寫對應的Controller、Service和Dao層程式碼了,因為是基於上面提到的那個工程的,所以這裡簡單修改就能演示了。
新增程式碼:
- @RequestMapping("/oracle")
- @ResponseBody
- publicString oracleCreateTable(){
- logger.trace("oracle");
- demoService.save("anxpp");
- return demoService.findAll();
- }
執行測試:
多次請求將多次插入值到資料庫,並返回。