`
huibin
  • 浏览: 754096 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

使用Spring的jdbcTemplate进一步简化JDBC操作

 
阅读更多

先看applicationContext.xml配置文件:


<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><?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
="com.microsoft.jdbc.sqlserver.SQLServerDriver">
        
</property>
        
<property name="url"
            value
="jdbc:microsoft:sqlserver://localhost:1433;databasename=bbs">
        
</property>
        
<property name="username" value="sa"></property>
        
<property name="password" value="sa"></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>
</beans>

在看SpringUtil类 


<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->package com.r.dao;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public final class SpringUtil {

    
private static ApplicationContext  ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    
    
public static Object getBean(String beanName){
         
return ctx.getBean(beanName);
    }    
}

 

最后看DAO:


<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->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.r.vo.Book;

public class BookDao {

    
private JdbcTemplate jdbcT = (JdbcTemplate) SpringUtil
            .getBean(
"jdbcTemplate");

    
public List findALL() {
        String sql 
= "select * from BookInfo";
        
return jdbcT.queryForList(sql);        
    }

    
public List<Book> findALLBooks() {
        List
<Book> books = new ArrayList<Book>();;
        String sql 
= "select * from BookInfo";
        List list 
= jdbcT.queryForList(sql); 
        Iterator iterator 
= list.iterator();
        Book book 
= null;
        
while (iterator.hasNext()) {
            Map map4book 
= (Map) iterator.next();
            book 
= new Book();
            book.setBid((Integer) map4book.get(
"bid"));
            book.setBookName((String)map4book.get(
"bookName"));
            book.setBookType((String)map4book.get(
"bookType"));        
            book.setBookPic(((BigDecimal)map4book.get(
"bookPic")).doubleValue() );            
            book.setCount((Integer) map4book.get(
"count"));
            books.add(book);
        }
        
return books;
    }    
    
public int delete(int bid){
        String sql 
= "delete from BookInfo where bid =?";
        
return jdbcT.update(sql, new Object[]{bid});
    }     
    
public static void main(String[] args) {        
        List
<Book> books = new BookDao().findALLBooks();;
        
for(Book book:books){
            System.out.println(book.getBid()
+","+book.getBookName()+","+book.getBookType());
        }
    }
}

 

细心你,会发现JdbcTemplate的实例中有一系列的方法如:queryForXXX,update,delete大大简化了JDBC操作。

当然,还可以再进一步的优化一下,就是通过依赖注入,直接把jdbcTemplate注入到dao类的jdbcT字段。

先看新的applicationContext.xml配置文件:  

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><?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
="com.microsoft.jdbc.sqlserver.SQLServerDriver">
        
</property>
        
<property name="url"
            value
="jdbc:microsoft:sqlserver://localhost:1433;databasename=bbs">
        
</property>
        
<property name="username" value="sa"></property>
        
<property name="password" value="sa"></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="bookDao" class="com.yy.struts.dao.BookDao">
       
<property name="jdbcT">
          
<ref bean="jdbcTemplate" />
       
</property>
    
</bean>
</beans>

 那么新的DAO类:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->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.r.vo.Book;

public class BookDao {

    
private JdbcTemplate jdbcT;

    
public List findALL() {
        String sql 
= "select * from BookInfo";
        
return jdbcT.queryForList(sql);        
    }

    
public List<Book> findALLBooks() {
        List
<Book> books = new ArrayList<Book>();;
        String sql 
= "select * from BookInfo";
        List list 
= jdbcT.queryForList(sql); 
        Iterator iterator 
= list.iterator();
        Book book 
= null;
        
while (iterator.hasNext()) {
            Map map4book 
= (Map) iterator.next();
            book 
= new Book();
            book.setBid((Integer) map4book.get(
"bid"));
            book.setBookName((String)map4book.get(
"bookName"));
            book.setBookType((String)map4book.get(
"bookType"));        
            book.setBookPic(((BigDecimal)map4book.get(
"bookPic")).doubleValue() );            
            book.setCount((Integer) map4book.get(
"count"));
            books.add(book);
        }
        
return books;
    }    
    
public int delete(int bid){
        String sql 
= "delete from BookInfo where bid =?";
        
return jdbcT.update(sql, new Object[]{bid});
    }     
    
public static void main(String[] args) {        
        List
<Book> books = new BookDao().findALLBooks();;
        
for(Book book:books){
            System.out.println(book.getBid()
+","+book.getBookName()+","+book.getBookType());
        }
    }
}
通过依赖注入,对象之间的关系由SPRING来维护,这样能降低类与类的耦合度
分享到:
评论

相关推荐

    spring-jdbcTemplate实例工程

    总的来说,Spring JdbcTemplate是Spring框架中处理数据库操作的重要工具,它通过简化JDBC API,提升了开发效率和代码质量。在实际项目中,结合Spring的其他组件,可以构建出稳定、高效的数据访问层。这个实例工程为...

    SpringJdbcTemplate封装工具类

    SpringJdbcTemplate是Spring框架中用于简化Java数据库访问的工具,它是Spring JDBC模块的核心。这个封装工具类的出现是为了提供一种更简洁、易于使用的接口来执行SQL操作,减轻开发者处理数据库连接、事务管理以及...

    使用spring jdbc template简化jdbc数据库操作实例代码

    Spring JDBC Template是Spring框架的一部分,它为Java数据库连接(JDBC)提供了一种抽象层,目的是简化数据库操作,同时保留了JDBC的灵活性。在实际开发中,它可以帮助我们避免编写大量的样板代码,如手动打开和关闭...

    基于注解的Spring JdbcTemplate

    基于注解的Spring JdbcTemplate进一步增强了这种便利性,允许开发者直接在方法上使用注解来指定SQL语句。 ### 2. 注解使用 Spring JdbcTemplate的注解支持主要包含以下几个关键注解: - `@Query`: 用于定义SQL...

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

    在Spring框架中,JdbcTemplate是用于简化数据库操作的重要工具,它是Spring JDBC模块的一部分。通过使用JdbcTemplate,开发者可以避免编写大量的重复代码,如手动管理连接、处理结果集等,从而专注于业务逻辑。本文...

    strut2+spring+springjdbctemplate做的简易登录系统

    Spring JDBC Template是Spring提供的一个简化数据库操作的工具,它封装了JDBC的繁琐部分,让开发者可以更专注于业务逻辑。 在这个“简易登录系统”中,Struts2主要承担用户界面和控制器之间的交互。用户在登录页面...

    一个简单易用可对象操作基于SpringJdbcTemplate的JDBC帮助包

    标题中的“一个简单易用可对象操作基于SpringJdbcTemplate的JDBC帮助包”指的是一个专为简化Java开发中数据库操作而设计的工具包。这个工具包利用了Spring的JdbcTemplate,它是一个轻量级的ORM(对象关系映射)框架...

    Spring Data JDBC与JDBC的区别

    `JdbcTemplate`是Spring提供的工具类,用于简化JDBC操作,例如执行SQL和处理结果集。`RowMapper`接口用于将结果集映射到Java对象。 集成Spring Data JDBC可以减少代码量,提高可维护性,并且由于Spring的其他模块...

    Spring JDBCTemplate连接池jar包

    Spring JDBC Template是Spring框架的一部分,它提供了一种简化数据库操作的方式,通过抽象出低级的JDBC细节,使开发者能够更高效、更安全地处理数据库交互。连接池是数据库资源管理的重要工具,它可以提高数据库访问...

    jdbcTemplate-spring对jdbc的支持

    标题 "jdbcTemplate-spring对jdbc的支持" 涉及到的是Spring框架中的一个核心组件——JdbcTemplate,它是Spring对Java数据库连接(JDBC)的一种封装,用于简化数据库操作。JdbcTemplate提供了一种模板方法模式,使得...

    Spring JdbcTemplate

    **Spring JdbcTemplate**是Spring框架中的一个核心组件,主要用于简化Java数据库访问。它提供了一种模板化的方式来执行SQL语句,使得开发人员可以避免编写大量的重复代码,专注于业务逻辑,而不是底层的数据库交互...

    Spring JdbcTemplate 常用方法整理

    总结起来,Spring JdbcTemplate是Spring框架中用于数据库操作的重要组件,它简化了JDBC的使用,提供了丰富的API来处理各种数据库操作。通过`JsonBean.java`和`JdbcUtils.java`,我们可以看到如何在实际项目中定义...

    SpringJDBC.rar_SpringJDBC_jdbctemplate_jdbctemplate spring

    在Java的Spring框架中,Spring JDBC(Java Database Connectivity)是一个重要的模块,用于简化数据库操作。Spring JDBC通过提供JdbcTemplate和SimpleJdbcTemplate等工具类,帮助开发者以更安全、更易于管理的方式与...

    Spring JdbcTemplate查询实例

    Spring JdbcTemplate是Spring框架中用于简化数据库操作的一个重要组件,它是Spring对JDBC的轻量级封装,旨在提供一种结构良好、易于使用的SQL执行机制,同时保持了JDBC的灵活性。在本实例中,我们将深入探讨Spring ...

    Spring JdbcTemplate api

    在Spring框架中,`JdbcTemplate`是一个用于简化JDBC编程的工具类,它采用了模板模式来分离数据库访问中的不变和可变部分,提供了一种更加健壮且易于使用的数据访问机制。`JdbcTemplate`负责处理资源的获取、关闭以及...

    spring jdbcTemplate

    其中,Spring JDBC Template是Spring提供的一个用于简化数据库操作的工具,它抽象了JDBC API,使我们能够以更简洁、更面向对象的方式来处理数据库事务。本篇文章将深入探讨Spring JdbcTemplate的使用方法和核心概念...

    spring jdbcTemplate 源码

    Spring JDBCTemplate是Spring框架中的一个核心组件,它提供了一种简化数据库操作的抽象层,使得开发者可以更加方便、高效地处理数据库事务。本篇将深入探讨Spring JDBCTemplate的使用及其源码解析,帮助你理解其背后...

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

    Spring JdbcTemplate简化了数据库操作,通过模板模式抽象出通用的流程,而回调机制则提供了定制化数据处理的能力。理解并熟练运用这些概念,能够帮助开发者更高效地进行数据库相关的编程,提高代码质量和可维护性。...

    spring的jdbcTemplate小案例

    JdbcTemplate是Spring提供的一种数据库操作工具,它简化了数据库访问,使开发者能够编写出更健壮、更易于维护的代码,避免了手动处理JDBC连接、预编译SQL语句等繁琐任务。 首先,我们来理解一下JdbcTemplate的基本...

Global site tag (gtag.js) - Google Analytics