Spring与数据库
来源:互联网 发布:协同过滤算法cf 编辑:程序博客网 时间:2024/06/05 12:39
Spring与数据库
**Spring的数据异常访问体系
Spring的平台无关持久化异常
数据访问模板 回调
应用程序DAO--->DAO支持--->数据访问模板--->持久化框架--->数据库
**配置数据源
不管选择哪种Spring DAO的支持方式,都需要配置一个
数据源引用。
Spring提供了在上下文中配置数据源Bean的多种方式,包括:
-通过JDBC驱动程序定义数据源;
-通过JNDI查找数据源;
-连接池的数据源;
=====使用JNDI数据源=====
<jee:jndi-lookup id="dataSource" jndi-name="/jdbc/SpitterDS"
resource-ref="true"/>
其中jndi-name属性用于指定JNDI中的资源名称。如果只设置了jndi-name属性,
那么就会根据指定的名称查找数据源。但是如果应用程序运行在Java服务器中
(Tomcat,JBoss等),则需将resource-ref,属性设置为true,这样给定的jndi-name会自动加上java:comp/env/前缀。
=====使用数据源连接池(推荐使用)=====
尽管Spring没有提供数据源连接池实现,但DBCP项目是个不错的选择,DBCP包含了
多个提供连接池功能的数据源,其中BasicDataSource是最常用的的,因为它易于在Spring
中配置。
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<!-- results in a setDriverClassName(String) call -->
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="masterkaoli"/>
</bean>
=====使用JDBC驱动的数据源=====
在Spring中,通过JDBC驱动定义数据源是最简单的配置方式。
Spring提供了两种数据源对象(都没有提供连接池功能)
-DriverManagerDataSource每次请求返回一个新建连接
-SingleConnectionDataSource每次请求返回同一个连接
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<context:property-placeholder location="jdbc.properties"/>
**在Spring中集成Hibernate
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="mappingResources">
<list>
<value>product.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.HSQLDialect
</value>
</property>
</bean>
**Spring的数据异常访问体系
Spring的平台无关持久化异常
数据访问模板 回调
应用程序DAO--->DAO支持--->数据访问模板--->持久化框架--->数据库
**配置数据源
不管选择哪种Spring DAO的支持方式,都需要配置一个
数据源引用。
Spring提供了在上下文中配置数据源Bean的多种方式,包括:
-通过JDBC驱动程序定义数据源;
-通过JNDI查找数据源;
-连接池的数据源;
=====使用JNDI数据源=====
<jee:jndi-lookup id="dataSource" jndi-name="/jdbc/SpitterDS"
resource-ref="true"/>
其中jndi-name属性用于指定JNDI中的资源名称。如果只设置了jndi-name属性,
那么就会根据指定的名称查找数据源。但是如果应用程序运行在Java服务器中
(Tomcat,JBoss等),则需将resource-ref,属性设置为true,这样给定的jndi-name会自动加上java:comp/env/前缀。
=====使用数据源连接池(推荐使用)=====
尽管Spring没有提供数据源连接池实现,但DBCP项目是个不错的选择,DBCP包含了
多个提供连接池功能的数据源,其中BasicDataSource是最常用的的,因为它易于在Spring
中配置。
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<!-- results in a setDriverClassName(String) call -->
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="masterkaoli"/>
</bean>
=====使用JDBC驱动的数据源=====
在Spring中,通过JDBC驱动定义数据源是最简单的配置方式。
Spring提供了两种数据源对象(都没有提供连接池功能)
-DriverManagerDataSource每次请求返回一个新建连接
-SingleConnectionDataSource每次请求返回同一个连接
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<context:property-placeholder location="jdbc.properties"/>
**在Spring中集成Hibernate
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="mappingResources">
<list>
<value>product.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.HSQLDialect
</value>
</property>
</bean>
0 0
- Spring与数据库
- Spring与数据库
- spring security2【与数据库权限关联】
- spring与数据库的连接简单版
- 【j2ee spring】6、spring与数据库的连接配置
- spring MVC链接数据库与JDBC连接数据库
- spring 数据库
- spring 数据库
- Spring与Hibernate Dao中操作数据库的另外方式
- Spring Security ACL使用MySQL配置与数据库脚本
- 数据库隔离级别(mysql+Spring)与性能分析
- Memcached与Spring AOP构建分布式数据库前端缓存框架
- spring的事务传播属性与数据库的隔离级别
- spring 事务没有回滚与mysql数据库引擎
- spring学习笔记(20)数据库事务并发与锁详解
- spring batch 与 MyBatis 读取数据库生成pojo的问题
- spring整合shiro权限管理与数据库设计
- Spring 使用JdbcTemPlate的方式实现与数据库的连接
- interactivePopGestureRecognizer
- 《Java课程实习》日志(周四)
- BaiduMap---百度地图官方Demo之POI搜索功能(介绍关键词查询,suggestion查询和查看餐饮类Place详情页功能)
- 慕课网笔记-多线程中Thread和Runnable的区别
- 关于linux里面编程语句while的运用,转载
- Spring与数据库
- OSG绘制几何体学习总结(超全)
- 工程编译时发生 No architectures to compile for 错误
- redis 数据类型详解 以及 redis适用场景场合
- 单机安装kafka
- c语言中static用法总结
- js ajax 前台到后台中文乱码的解决方法
- File Transfer&Types Of File Translators
- Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果