13Spring的数据访问方式
来源:互联网 发布:淘宝账户名怎么修改 编辑:程序博客网 时间:2024/06/16 04:40
传统的JDBC访问技术(效率低)
Jdbc数据访问的一般流程:
获取数据源 Class.forName(……);
根据数据源获取数据连接 Connerctionconn=DriverManager.getConnerction(url,name,pwd);
设定事务开始 conn.setAutoCommit(false);Statement st=conn.createStatement();
执行操作 st.executeUpdate(sql);
提交/回滚 conn.commit();/conn.rollback();
省略关闭资源
Spring的数据访问
Spring有三种通过XML文件实现DataSource注入的方式:
1. spring的DriverManagerDataSource
2. DBCP连接池
3. Tomcat的JNDI
一、 spring的DriverManagerDataSource(效率和传统的JDBC区别很小)
在XML中配置数据源时,配置该数据源的BeanId为dataSource,他的类处于org.springframework.jdbc.datasource包下,名称为DriverManagerDataSource.class。
之后配置其数据库信息,阅读其源代码,可以看到DriverManagerDataSource类提供了四种构造方法。
分别是:
publicDriverManagerDataSource()
{
}
public DriverManagerDataSource(Stringurl)
{
setUrl(url);
}
public DriverManagerDataSource(Stringurl, Stringusername, Stringpassword)
{
setUrl(url);
setUsername(username);
setPassword(password);
}
public DriverManagerDataSource(Stringurl, PropertiesconProps)
{
setUrl(url);
setConnectionProperties(conProps);
}
同时DriverManagerDataSource的父类为AbstractDriverBasedDataSource.父类的源代码中主要由四个属性为:
private Stringurl;
private Stringusername;
private Stringpassword;
private PropertiesconnectionProperties;
所以,我们在进行设值注入时,可以根据自己的需求注入相应的数据。
当然根据源码同样可以使用配置文件注入。
接下来使用声明式事务管理。
之后进行声明式事务管理,这里使用的同一包(org.springframework.jdbc.datasource)下的类DataSourceTransactionManager.class。
其中有一个属性privateDataSourcedataSource;
所以在配置该Bean时,我们需要将之前配置的dataSource传入进去。
之后配置一个实例Bean进行操作即可。
配置文件代码:
<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 设定DataSource的方法 -->
<!-- 配置该数据源的BeanId为dataSource,他的类处于org.springframework.jdbc.datasource包下,名称为
DriverManagerDataSource.class-->
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- 配置数据库的信息 -->
<propertyname="url"><!--数据库连接 -->
<value>jdbc:mysql://DataBaseUrl/DataBaseName/TableName</value>
</property>
<propertyname="username">
<value>username</value>
</property>
<propertyname="password">
<value>pwd</value>
</property>
<!-- 上面是直接设值注入三个属性,还可以使用配置文件注入。
还可以使用资源文件的方式进行配置。
-->
</bean>
<!-- 接下来设定声明式事务管理,这里使用的是同包(org.springframework.jdbc.datasource)下的
DataSourceTransactionManager.class类。
-->
<beanid="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 将数据源注入 -->
<propertyname="dataSource">
<refbean="dataSource"></ref>
</property>
</bean>
</beans>
在配置datasource时还应该配置DriverClassName:
二、 使用DBCP连接池
——DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。
在spring中使用DBCP连接池需要用到三个jar包:
commons-collections.jar包、commons-dbcp.jar、commons-pool.jar
之后在XML配置datasource时,使用dbcp中BasicDataSource类即可。
三、 使用Tomcat的JNDI
使用tomcat的JNDI容易,首先需要在Tomcat的server.xml文件中配置,之后使用jndi的JndiObjectFactoryBean作为datasource。
- 13Spring的数据访问方式
- Spring访问数据的方式
- spring mvc 的jpa JpaRepository数据层 访问方式汇总
- spring mvc 的jpa JpaRepository数据层 访问方式汇总
- spring mvc 的jpa JpaRepository数据层 访问方式汇总
- spring mvc 的jpa JpaRepository数据层 访问方式汇总
- spring mvc 的jpa JpaRepository数据层 访问方式汇总
- spring mvc 的jpa JpaRepository数据层 访问方式汇总
- spring mvc 的jpa JpaRepository数据层 访问方式汇总
- Spring Data JPA 数据访问方式
- Iterator的数据访问方式
- Spring Boot的数据访问
- spring mvc 访问静态资源的方式
- java和spring访问资源的方式
- spring MVC jpa jpaRepository 数据层访问 方式汇总
- WP7访问云端数据的方式
- Oracle对数据的访问方式
- 数据分布对访问方式的影响
- Medium 5题 Longest Palindromic Substring
- 12Spring的事务处理二
- java算法4~交换两个整数,不能使用任何额外的变量
- PHP 用户提交的数据的安全性验证
- python中is和==的区别
- 13Spring的数据访问方式
- spring-data-mongodb-1.9.x中Aggregation关于Conditional Aggregation Operators的坑
- IOS Label下划线 中划线
- 重叠I/O之事件通知
- 日期和数量 根据数量合并分组
- bzoj 2761
- tensorflow存储图和训练的权重为.pb,然后读取.pb并使用
- rsync for windows 详细使用教程
- Android Notification的完整例子--设置下班闹钟和护眼闹钟