- 浏览: 221072 次
- 性别:
- 来自: 长沙
最新评论
-
liuweihug:
jquery全局ajax参数详细执行分析-$.ajax竟然可以 ...
jquery ajax回调函数带入参数 -
czxlylc:
原来的点传不到回调函数里,回调函数里获得的值在外面又取不到,请 ...
通过百度地图API,将百度坐标转换成GPS经纬度 -
艾丽斯顿:
GPS坐标转百度坐标的功能 ,百度有这个api是吧,可是我调用 ...
通过百度地图API,将百度坐标转换成GPS经纬度 -
因为青所以涩:
我把配置中的所有地址用IP代替,终于解决了
java客户端访问hbase -
因为青所以涩:
你好!我服务器运行hbase后,页面访问http://192. ...
java客户端访问hbase
对于不同的数据库连接来源需求,spring提供了javax.sql.DataSource注入,更换数据来源只要在Bean定义中修改配置,而不用修改任何一行代码。
应不同的系统,可能使用不同的数据来源,例如:jdbc、连接池、或是JNDI等等,资料变更是底层的行为,不应影响到上层的业务逻辑。
例子:
<beans>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/demo</value>
</property>
<property name="username">
<value>caterpillar</value>
</property>
<property name="password">
<value>123456</value>
</property>
</bean>
<bean id="userDao" class="onlyfun.caterpillar.UserDao">
<property name="dataSource">
<ref bean="datasource"/>
</property>
</bean>
</beans>
其中"driverClassName"、"url"、"username"、"password"四個屬性分別用來設定JDBC驅動程式類別、資料庫 URL協定、使用者名稱、密碼,而DriverManagerDataSource继承了javax.sql.DataSource.
注意:
(1)、该例子使用的是简单的jdbc连接,如果应用到工程,必须使用连接池,这时只要更换class属性为class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
(2)、如果采用的是JNDI连接,可以这么设定:
<bean id="dataSource"
class="org.springframework.indi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc/demo</value>
</property>
</bean>
Spring学习笔记JDBC模版管理
对于Spring应用,Spring 提供了一个更好的数据持久化的框架,Spring让持久层的类UserDao继承 org.springframework.jdbc.core.JdbcTemplate这个封装了jdbc操作的类,要建立JdbcTemplate的实例,必须要有一个DataSource物件作为建构时的物件.
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
例子(1):-----取得模版
package onlyfun.caterpillar;
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
public class UserDAO implements IUserDAO {
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource) {
jdbcTemplate = new JdbcTemplate(dataSource);
}
return null;
}
}
例子(2):-----update操作(同样的操作适用于update、insert、delete)
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate
.update(
"UPDATE user SET age = ? WHERE id = ?",
new PreparedStatementSetter() {
public void setValues(PreparedStatementSetter ps)
throws SQLException {
ps.setInt(1, 18);
ps.setString(2, "erica");
}
}
);
第一个用于创建PreparedStatement的SQL。第二个参数是为PreparedStatement设定参数的
PreparedStatementSetter
注意:我们还可以通过JdbcTemplate.call方法调用存储过程.
编程式的事务管理:我们可以使用 org.springframework.jdbc.datasource.DataSourceTransactionManager(platformTransactionManager 的一个实现)作为我们的事务管理员,我们在Bean定义中配置,并将DataSource注入给它。
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/TestDB</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value></value>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="userDAO" class="onlyfun.caterpillar.UserDAO">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
</bean>
</beans>
DAO操作类:
package onlyfun.caterpillar;
import javax.sql.DataSource;
import org.springframework.jdbc.core.*;
import org.springframework.transaction.*;
import org.springframework.transaction.support.*;
import org.springframework.dao.*;
public class UserDAO {
private DataSource dataSource;
private PlatformTransactionManager transactionManager;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public void setTransactionManager(PlatformTransactionManager transactionManager) {
this.transactionManager = transactionManager;
}
public void insertUser(User user) {
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(def);
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.update("INSERT INTO USER VALUES('Spring008', 'caterpillar', 'M', 29)");
jdbcTemplate.update("INSERT INTO USER VALUES('Spring009', 'momor', 'F', 26)");
jdbcTemplate.update("INSERT INTO USER VALUES('Spring010, 'beckyday', 'F', 35)");
} catch (DataAccessException ex) {
transactionManager.rollback(status); // 也可以執行status.setRollbackOnly();
throw ex;
}
transactionManager.commit(status);
}
}
发表评论
-
sqlserver2000,2005,2008兼容驱动包
2014-01-24 17:40 829连接配置: sqlserver_driverName=com. ... -
java 本地缓存
2013-04-28 09:05 0下一个研究目标。。 -
字节流、字符串、16进制字符串转换
2013-04-18 15:47 3245/** * @Package: * @Clas ... -
c写入memcache,java for memcache读取不到
2013-01-16 16:39 1633c写入memcache,java for memcache读取 ... -
通过百度地图API,将百度坐标转换成GPS经纬度
2012-02-13 09:27 102282百度地图API中,有GPS坐标转百度坐标的功能 http:// ... -
myeclipse6.5注册(备用)
2011-12-13 09:01 698import java.text.DecimalFormat; ... -
【转】Struts2.0默认支持多种格式的result type
2011-12-08 08:28 1487<action name="attachmen ... -
s:if标签获取action中对象属性
2011-11-11 16:17 1018<s:if test="%{bizExtend ... -
httpurlconnection发送文件到服务端并接收
2011-11-03 18:31 13061客户端代码 import java.io.Data ... -
struts2中action返回调用另外一个action
2011-08-31 12:12 1190在struts2的配置文件中,需要这样配置 <re ... -
文件操作
2011-08-26 09:31 734import java.io.BufferedRead ... -
一些字符串相关面试题的java实现
2011-08-16 17:23 14991.字符串右移n位 2.字符串反转 3.返回任意整数对应二进制 ... -
HtmlParser抓取正文时去掉其中的js
2011-06-15 14:15 2426/* * 获取纯文本信息 */ public ... -
tomcat自动启动
2010-12-31 18:29 879开发的系统用了第三方工具,会导致tomcat直接关闭。没办法, ... -
Target runtime Apache Tomcat v6.0 is not defined错误
2010-12-01 09:12 1043修改org.eclipse.wst.common.projec ... -
【转】同时启动多个tomcat需要修改的配置
2010-11-30 11:00 1046在tomcat的conf子目录中打开server.xml文件, ... -
struts2文件上传报404错误
2010-11-03 10:51 2387struts2的上传有个2M的默认限制,超过2M的文件上传,没 ... -
读取src下的xml文件
2010-09-25 10:40 1737public String getSaveURL(Strin ... -
URL传中文乱码
2010-08-24 14:22 1343jsp页面: <%@ page language=&qu ... -
log4j指定输出源append、存入数据库并自定义参数
2010-08-16 10:32 7741在log4j中可以指定特定的输出源append。在数据库记录日 ...
相关推荐
Spring JDBC模板类——`org.springframework.jdbc.core.JdbcTemplate`是Spring框架中的核心组件,它为Java开发者提供了一种方便、安全的方式来执行SQL语句,而无需直接管理数据库连接。`JdbcTemplate`通过抽象出低...
1. **自动配置**: Spring Boot通过自动配置,可以快速设置数据源和JDBC模板。 2. **Repository接口**: 开发者只需定义Repository接口,Spring会自动提供实现,无需编写繁琐的DAO层代码。 3. **ORM支持**: 尽管不如...
1. **JdbcTemplate**:这是Spring JDBC的基础组件,它通过模板方法模式封装了常见的JDBC操作,如执行SQL查询、更新、存储过程等。使用JdbcTemplate,开发者无需手动管理数据库连接、预编译语句、结果集转换等细节,...
Spring JDBC不仅包含了JDBC的基本功能,如数据源配置、事务管理,还引入了模板模式,即JdbcTemplate,进一步降低了数据库操作的复杂性。 JdbcTemplate是Spring JDBC的核心类,它是对JDBC的简单而强大的封装。它提供...
在Spring Boot应用中,我们经常需要处理来自多个数据源的数据,比如在开发微服务架构时,每个服务可能对应一个特定的数据源。`JdbcTemplate`是Spring框架提供的一个用于简化数据库操作的工具,它使得数据库访问更为...
本文件模板将详细介绍如何在Spring中配置数据源,以便为你的应用程序提供稳定、高效的数据库连接。 首先,我们需要理解Spring支持多种类型的数据源,包括Apache的DBCP、C3P0、HikariCP以及Oracle的UCP等。选择哪种...
3. 嵌入式数据源(org.springframework.jdbc.datasource.embedded.EmbeddedDatabase):主要用于本地文件系统数据库,如HSQL、H2、Derby等。 二、事务(Transaction) 事务用于提供数据完整性,并在并发访问下确保...
2. 配置Spring:在servlet-context.xml中配置Spring的核心组件,包括Bean工厂、AOP、数据源以及JDBC模板。 3. 集成SpringJDBC:配置数据源,创建JdbcTemplate实例,然后在Service层中使用它进行数据库操作。 4. ...
在Spring框架中,Spring JDBC通过提供一个抽象层,使得开发者可以更方便地执行SQL查询,处理结果集,以及管理事务。下面将详细阐述两种在Spring中测试JDBC的方法。 ### 方法一:基于`JdbcTemplate` `JdbcTemplate`...
综上所述,`springjdbc.zip`文件中的示例可能展示了如何在Spring环境中配置和使用JDBC,包括数据源配置、事务管理、以及使用`JdbcTemplate`执行增删改查操作的完整流程。通过学习这些示例,开发者可以更好地理解和...
4. 数据访问对象(DAO):负责与数据库的交互,使用Spring JDBC模板执行SQL查询和更新操作。 5. 模型(Model):数据对象,用于在服务层和视图层之间传递数据。 6. 视图:可能包含JSP页面或其他模板技术,用于展示...
Spring框架支持多种数据源实现,如Apache Commons DBCP或C3P0,它们能够管理数据库连接的创建和回收。 2. **SQL查询**:`JdbcTemplate`提供了多种执行SQL查询的方法,如`queryForList`、`queryForObject`和`query`...
在学习Spring JDBC的过程中,你将深入理解如何设置数据源、事务管理以及如何进行CRUD(创建、读取、更新和删除)操作。 首先,要了解Spring JDBC的基本架构,包括DataSource、JdbcTemplate、SimpleJdbcInsert、...
总结起来,"Spring链接MYSQLjar包"涉及到的关键知识点包括:Spring框架、MySQL JDBC驱动、数据源配置、JdbcTemplate和NamedParameterJdbcTemplate的使用,以及Spring对数据库操作的支持。正确配置和使用这些组件,...
在配置Spring JDBC时,你需要在Spring的配置文件中定义数据源(DataSource)和JdbcTemplate实例。例如,你可以使用`com.zaxxer.hikari.HikariDataSource`作为高性能的数据源,然后通过`bean`定义创建`JdbcTemplate`...
标题“spring2跨数据源访问”涉及到的是Spring框架在处理多数据源情况下的技术要点,主要涵盖如何在Spring应用中实现对多个数据库的灵活访问。在这个主题中,我们通常会讨论以下几个关键知识点: 1. **多数据源配置...
通过配置XML或Java配置,可以将数据源注入到Spring容器中,如Apache的DBCP或C3P0等。 3. **JdbcTemplate介绍** JdbcTemplate是Spring JDBC的核心组件,它提供了一系列的模板方法来执行SQL语句,如查询、更新、插入...
`JdbcTemplate`是Spring提供的一种模板方法模式实现,它封装了JDBC的常用操作,如执行SQL查询、更新等,提供了异常转换和数据源管理等功能。通过使用`JdbcTemplate`,开发者可以编写出更简洁、更健壮的数据库访问...
总的来说,Spring JDBC的JdbcTemplate是Spring框架中用于数据库操作的关键组件,通过回调接口和模板方法设计,它极大地简化了数据库访问的代码,同时也提供了良好的异常处理和资源管理机制。理解和掌握JdbcTemplate...
1. 数据源配置:自动配置JDBC、JPA、MyBatis等数据访问技术。 2. 数据库迁移:支持Flyway和Liquibase数据库迁移工具。 3. Spring Data JPA:简化了与JPA供应商的交互,提供了CRUD操作的便捷接口。 六、Spring Boot...