`

Spring JdbcTemplate例子

阅读更多
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.batchUpdate 例子

    在Spring框架中,`JdbcTemplate`是用于简化Java数据库连接(JDBC)操作的一个核心组件。这个类提供了很多方法来执行SQL查询、更新语句,包括批处理操作。本篇文章将详细探讨`batchUpdate`方法及其在实际开发中的应用...

    使用Spring JDBCTemplate进行增删改查curd操作

    在这个例子中,我们注入了JdbcTemplate实例,并调用`update()`方法执行SQL,其中问号(?)是占位符,实际值由方法的参数提供。 2. 读取(Read) 读取数据通常涉及到查询数据库。JdbcTemplate提供了`query()`和`...

    Spring 学习 JdbcTemplate,模板模式,回调

    在这个例子中,我们注入了JdbcTemplate实例,并使用query方法执行SQL查询。传入的RowCallbackHandler将在遍历结果集时被调用,处理每一行数据。 **5. 总结** Spring JdbcTemplate简化了数据库操作,通过模板模式...

    基于java的企业级应用开发:Spring JdbcTemplate 的常用方法.ppt

    在上述例子中,测试方法创建了一个Spring上下文,并获取了`JdbcTemplate`实例,然后执行了创建表的SQL语句。通过这种方式,我们可以确保`JdbcTemplate`的`execute()`方法在独立的测试环境中能正常工作。 总的来说,...

    spring mvc+jdbctemplate非注解例子

    总的来说,这个"spring mvc+jdbctemplate非注解例子"涵盖了Web开发中的多个核心概念,包括Spring MVC的MVC设计模式、JdbcTemplate对数据库操作的抽象、AOP的切面编程以及连接池的高效资源管理。每个部分都需要对...

    Spring JdbcTemplate&声明式事务1

    Spring JdbcTemplate是一个强大的工具,它简化了Java应用程序与数据库之间的交互。在Spring框架中,JdbcTemplate作为对原生JDBC API的封装,提供了一种更安全、更易于使用的API,帮助开发者避免了处理连接关闭、异常...

    Spring JdbcTemplate方法详解

    JdbcTemplate主要提供以下五类方法;JdbcTemplate类支持的回调类;并附例子

    struts+spring +jdbctemplate demo

    这个Demo为学习和理解Struts、Spring和JdbcTemplate的集成提供了一个实际的例子,帮助开发者更好地掌握Java Web开发中的这些核心工具。通过实践,我们可以了解到如何在实际项目中有效地组合这些技术,提高代码的可...

    Spring例子

    在“SpringmvcDemo”这个例子中,我们将深入探讨Spring MVC的使用方法。 首先,Spring MVC通过DispatcherServlet作为入口点,处理所有的HTTP请求。DispatcherServlet负责调度请求到相应的控制器(Controller)。在...

    spring mvc注解jdbctemplate

    在这个例子中,`@Autowired`注解使JdbcTemplate自动注入到MyController类中。然后,我们定义了一个处理GET请求的方法`queryData()`,其中使用了JdbcTemplate的`queryForList()`方法执行SQL查询并返回结果。 ...

    基于spring freemarker jdbctemplate jquery的一个完整的项目例子

    才看了《spring 3.x》第一章内容,写的一个例子;感觉写得挺经典的。 于是骄傲地分享出来。 除了隐藏jdbc.properties里配置;其余都无保留的分享出来了。这里其实一个关于分库分表的配置文件。 使用技术细节:...

    spring内置jdbctemplate使用demo

    在数据访问层,Spring 提供了多种方式来操作数据库,其中 `JdbcTemplate` 是一个简单且强大的工具,它封装了 JDBC API,使得数据库操作变得更加简洁和安全。`JdbcTemplate` 减少了手写 SQL 和处理结果集的繁琐工作,...

    Spring:JdbcTemplate使用指南

    **Spring JdbcTemplate 使用指南** Spring框架中的JdbcTemplate是数据库操作的核心组件之一,它提供了一种简单、安全的方式来执行SQL查询和更新,而无需手动管理数据库连接。本指南将深入探讨JdbcTemplate的用法,...

    Spring的JDBCTemplate

    ### Spring的JDBCTemplate详解 #### 一、引言 在Java开发中,当我们面临复杂的数据库操作需求时,往往需要一种既能满足性能又能保证代码简洁性的解决方案。Spring框架提供的`JDBCTemplate`就是一个非常实用且强大...

    Spring_JdbcTemplate的用法

    Spring的JdbcTemplate是Spring框架中用于简化数据库操作的工具,它是Spring JDBC模块的核心组件,提供了对SQL查询的封装,使得数据库访问更为简单和安全。JdbcTemplate的API设计清晰,主要分为几个部分,其中包括...

    SPRING学习小例子

    在“onlineShop”例子中,可能会用到`JdbcTemplate`或者`NamedParameterJdbcTemplate`进行简单的SQL操作,也可以看到Repository接口的使用,通过DAO层进行数据访问。此外,`@Transactional`注解与数据库操作的结合,...

    Spring 入门例子

    **Spring 框架概述** ...总之,"Spring 入门例子"提供了一个学习和实践 Spring 框架的良好起点,通过这个实例,你可以逐步掌握 Spring 的基本概念和实际应用。在实践中不断深入,将有助于提升你的Java EE开发技能。

    Spring的小例子

    5. **JDBC与事务管理**:Spring提供了一套简化数据库操作的API,包括JdbcTemplate和NamedParameterJdbcTemplate,它们可以避免手动编写SQL和处理结果集。同时,Spring的声明式事务管理使得事务控制变得简单,只需在...

    spring深入26个例子

    例子可能会涉及Spring的JdbcTemplate、HibernateTemplate或MyBatis的使用,展示如何进行数据库操作。 5. **Spring MVC**:对于Web应用,Spring MVC提供了一个模型-视图-控制器的架构模式。例子可能涵盖控制器定义、...

Global site tag (gtag.js) - Google Analytics