Spring的JDBCTemplate
当hql等查询方式不能满足性能或灵活性的要求,必须使用SQL时,大家有三种选择:
第一、使用Hibernate 的sql 查询函数,将查询结果对象转为Entity对象。
第二、使用Hibernate Session的getConnection 获得JDBC Connection,然后进行纯JDBC API操作;
第三、选择把Spring的JDBCTemplate作为一种很不错的JDBC Utils来使用。
JdbcTemplate类
JdbcTemplate是core包的核心类。它替我们完成了资源的创建以及释放工作,从而简化了我们对JDBC的使用。它还可以帮助我们避免一些常见的错误,比如忘记关闭数据库连接。JdbcTemplate将完成JDBC核心处理流程,比如SQL语句的创建、执行,而把SQL语句的生成以及查询结果的提取工作留给我们的应用代码。它可以完成SQL查询、更新以及调用存储过程,可以对ResultSet进行遍历并加以提取。它还可以捕获JDBC异常并将其转换成org.springframework.dao包中定义的,通用的,信息更丰富的异常。
下面看看我做的例子
包结构,还有需要的jar包,数据库用的是oracle,表用的事scott下面的Dept表,这里是主要代码,如果想看全部请下载附件例子。
package com.jiaozg.dao;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.springframework.jdbc.core.JdbcTemplate;
import com.jiaozg.model.Dept;
import com.jiaozg.util.SpringUtil;
主要类:
public class DeptDao {
private JdbcTemplate jdbcT;
public void setJdbcT(JdbcTemplate jdbcT) {
this.jdbcT = jdbcT;
}
public List findALL() {
String sql = "select * from dept";
return jdbcT.queryForList(sql);
}
public List<Dept> findALLDepts() {
List<Dept> depts = new ArrayList<Dept>();;
String sql = "select * from Dept";
List list = jdbcT.queryForList(sql);
Iterator iterator = list.iterator();
Dept dept = null;
while (iterator.hasNext()) {
Map map4dept = (Map) iterator.next();
dept = new Dept();
dept.setDeptNo(((BigDecimal) map4dept.get("DEPTNO")).intValue());
dept.setDName((String)map4dept.get("DNAME"));
dept.setLoc((String)map4dept.get("LOC"));
depts.add(dept);
}
return depts;
}
public int delete(int bid){
String sql = "delete from DeptInfo where bid =?";
return jdbcT.update(sql, new Object[]{bid});
}
public static void main(String[] args) {
DeptDao dao = (DeptDao) SpringUtil.getBean("deptDao");
List<Dept> depts = dao.findALLDepts();;
for(Dept dept:depts){
System.out.println(dept.getDeptNo()+","+dept.getDName()+","+dept.getLoc());
}
System.out.println("---------------------------------");
List list = dao.findALL();
for(Iterator it = list.iterator(); it.hasNext(); ) {
System.out.println(it.next());
}
}
}
public class SpringUtil {
private static ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
public static Object getBean(String beanName){
return ctx.getBean(beanName);
}
}
主要配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="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">
<bean id="springDSN"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@127.0.0.1:1521:orcl">
</property>
<property name="username" value="scott"></property>
<property name="password" value="Qwer1234"></property>
</bean>
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate" abstract="false"
lazy-init="false" autowire="default" dependency-check="default">
<property name="dataSource">
<ref bean="springDSN" />
</property>
</bean>
<bean id="deptDao" class="com.jiaozg.dao.DeptDao">
<property name="jdbcT">
<ref bean="jdbcTemplate" />
</property>
</bean>
</beans>
- 大小: 180.6 KB
分享到:
相关推荐
在Spring框架中,`JdbcTemplate`是用于简化Java数据库连接(JDBC)操作的一个核心组件。这个类提供了很多方法来执行SQL查询、更新语句,包括批处理操作。本篇文章将详细探讨`batchUpdate`方法及其在实际开发中的应用...
在这个例子中,我们注入了JdbcTemplate实例,并调用`update()`方法执行SQL,其中问号(?)是占位符,实际值由方法的参数提供。 2. 读取(Read) 读取数据通常涉及到查询数据库。JdbcTemplate提供了`query()`和`...
在这个例子中,我们注入了JdbcTemplate实例,并使用query方法执行SQL查询。传入的RowCallbackHandler将在遍历结果集时被调用,处理每一行数据。 **5. 总结** Spring JdbcTemplate简化了数据库操作,通过模板模式...
在上述例子中,测试方法创建了一个Spring上下文,并获取了`JdbcTemplate`实例,然后执行了创建表的SQL语句。通过这种方式,我们可以确保`JdbcTemplate`的`execute()`方法在独立的测试环境中能正常工作。 总的来说,...
总的来说,这个"spring mvc+jdbctemplate非注解例子"涵盖了Web开发中的多个核心概念,包括Spring MVC的MVC设计模式、JdbcTemplate对数据库操作的抽象、AOP的切面编程以及连接池的高效资源管理。每个部分都需要对...
Spring JdbcTemplate是一个强大的工具,它简化了Java应用程序与数据库之间的交互。在Spring框架中,JdbcTemplate作为对原生JDBC API的封装,提供了一种更安全、更易于使用的API,帮助开发者避免了处理连接关闭、异常...
JdbcTemplate主要提供以下五类方法;JdbcTemplate类支持的回调类;并附例子
这个Demo为学习和理解Struts、Spring和JdbcTemplate的集成提供了一个实际的例子,帮助开发者更好地掌握Java Web开发中的这些核心工具。通过实践,我们可以了解到如何在实际项目中有效地组合这些技术,提高代码的可...
在“SpringmvcDemo”这个例子中,我们将深入探讨Spring MVC的使用方法。 首先,Spring MVC通过DispatcherServlet作为入口点,处理所有的HTTP请求。DispatcherServlet负责调度请求到相应的控制器(Controller)。在...
在这个例子中,`@Autowired`注解使JdbcTemplate自动注入到MyController类中。然后,我们定义了一个处理GET请求的方法`queryData()`,其中使用了JdbcTemplate的`queryForList()`方法执行SQL查询并返回结果。 ...
才看了《spring 3.x》第一章内容,写的一个例子;感觉写得挺经典的。 于是骄傲地分享出来。 除了隐藏jdbc.properties里配置;其余都无保留的分享出来了。这里其实一个关于分库分表的配置文件。 使用技术细节:...
在数据访问层,Spring 提供了多种方式来操作数据库,其中 `JdbcTemplate` 是一个简单且强大的工具,它封装了 JDBC API,使得数据库操作变得更加简洁和安全。`JdbcTemplate` 减少了手写 SQL 和处理结果集的繁琐工作,...
**Spring JdbcTemplate 使用指南** Spring框架中的JdbcTemplate是数据库操作的核心组件之一,它提供了一种简单、安全的方式来执行SQL查询和更新,而无需手动管理数据库连接。本指南将深入探讨JdbcTemplate的用法,...
Spring的JdbcTemplate是Spring框架中用于简化数据库操作的工具,它是Spring JDBC模块的核心组件,提供了对SQL查询的封装,使得数据库访问更为简单和安全。JdbcTemplate的API设计清晰,主要分为几个部分,其中包括...
在“onlineShop”例子中,可能会用到`JdbcTemplate`或者`NamedParameterJdbcTemplate`进行简单的SQL操作,也可以看到Repository接口的使用,通过DAO层进行数据访问。此外,`@Transactional`注解与数据库操作的结合,...
**Spring 框架概述** ...总之,"Spring 入门例子"提供了一个学习和实践 Spring 框架的良好起点,通过这个实例,你可以逐步掌握 Spring 的基本概念和实际应用。在实践中不断深入,将有助于提升你的Java EE开发技能。
5. **JDBC与事务管理**:Spring提供了一套简化数据库操作的API,包括JdbcTemplate和NamedParameterJdbcTemplate,它们可以避免手动编写SQL和处理结果集。同时,Spring的声明式事务管理使得事务控制变得简单,只需在...
例子可能会涉及Spring的JdbcTemplate、HibernateTemplate或MyBatis的使用,展示如何进行数据库操作。 5. **Spring MVC**:对于Web应用,Spring MVC提供了一个模型-视图-控制器的架构模式。例子可能涵盖控制器定义、...