`
zhangfeiii
  • 浏览: 43356 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

使用Spring的JdbcTemplate访问数据库

阅读更多
JdbcTemplate模板可以简化JDBC操作,但是创建一个JdbcTemplate需要一个DataSource接口,在Spring中,当然就是向JdbcTemplate中注入一个DataSource,然后通过JdbcTemplate来获取一个连接(Connection)。

假设SQL Server 2000数据库(新建的数据库名称为hibernate)中有一张person表,简单地记录了人员的详细信息。

使用Spring的IOC机制实现注入,配置XML代码如下所示:

<?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.0.xsd">


<bean id="springDataSource"
   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=hibernate">
   </property>
   <property name="username" value="sa"></property>
   <property name="password" value="111111"></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="springDataSource" />
   </property>
</bean>

</beans>

首先编写一个PersonDao,代码如下所示:

package org.shirdrn.jdbcTemplate.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.sql.DataSource;

import org.shirdrn.interf.IPersonDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;

public class PersonDao implements IPersonDao {
private JdbcTemplate jdbcTemplate;

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {    // 注入JdbcTemplate
   this.jdbcTemplate = jdbcTemplate;
}

public Connection getConnection(){    // 获取Connection
   ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
   DataSource springDataSource = (DataSource)ctx.getBean("springDataSource");
   JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");
   /*jdbcTemplate.setDataSource(springDataSource);  
   setJdbcTemplate(jdbcTemplate);     */
   DataSource dataSource = jdbcTemplate.getDataSource();
   Connection conn = null;
   try {
    conn = dataSource.getConnection();
   } catch (SQLException e) {
    e.printStackTrace();
   }
   return conn;
}

public ResultSet queryPersons(String sql){
   ResultSet rs = null;
   try {
    Connection connection = getConnection();
    Statement st = connection.createStatement();
    rs = st.executeQuery(sql);
   } catch (SQLException e) {
    e.printStackTrace();
   }
   return rs;
}
}

上面注释掉的两行代码:

   jdbcTemplate.setDataSource(springDataSource);
   setJdbcTemplate(jdbcTemplate);

其实是多余的,实际上Spring的IOC容器会自动检测并自动注入的。

建立测试主函数:

package org.shirdrn.main;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.shirdrn.jdbcTemplate.dao;

public class Main {

public static void main(String[] args){
   PersonDao pd = new PersonDao();
   ResultSet rs = pd.queryPersons("select * from person");
   int n = 0;
   try {
    while(rs.next()){
     n++;
     System.out.println("id     = "+rs.getString("id"));
     System.out.println("name   = "+rs.getString("name"));
     System.out.println("gender = "+rs.getString("gender"));
     System.out.println("age    = "+rs.getString("age"));
     System.out.println("addr   = "+rs.getString("addr"));
     System.out.println("*******************************");
    }
    System.out.println("数据库中共有记录 "+n+" 条");
   } catch (SQLException e) {
    e.printStackTrace();
   }
}
}

分享到:
评论

相关推荐

    Spring boot 使用JdbcTemplate访问数据库

    SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物。本文重点给大家介绍spring boot 使用JdbcTemplate访问数据库,需要的朋友可以参考下

    在Java的Servlet中使用Spring JdbcTemplate-MyEclipse版.rar

    本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到MyEclipse中进行调试运行,注意默认编译器是JDK1.6。

    在Java的Servlet中使用Spring JdbcTemplate-Eclipse版

    本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到Eclipse中进行调试运行,注意默认编译器是JDK1.8。

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

    初次学习spring。才看了《spring 3.x》第一章内容,写的一个例子;感觉写得挺经典的。 于是骄傲地分享出来。...jdbctemplate访问数据库;log4j配置文件;json拼凑; jquery技术;分库分表访问的设计;

    Spring Boot 与 Kotlin 使用JdbcTemplate连接MySQL数据库的方法

    本文介绍在Spring Boot基础下配置数据源和通过 JdbcTemplate 编写数据访问的示例。感兴趣的朋友跟随脚本之家小编一起学习吧

    基于java的企业级应用开发:Spring Jdbc.ppt

    Spring JdbcTemplate的解析 从JdbcTemplate的继承关系图可以看出,JdbcTemplate类的直接父类是JdbcAccessor,该类为子类提供了一些访问数据库时使用的公共属性。 其主要功能是获取数据库连接,还可以引入对数据库...

    Spring3.X编程技术与应用,完整扫描版

    全书分3篇共21章,具体内容包括:Spring环境的安装与使用、JSP与JSTL简介、 Spring基础概念与工具、用SpringJdbcTemplate访问数据库、使用Mayen工程、Spring MVC编程、基于 MVC的资源共享网站设计、Spring的AOP编程...

    springboot-集成达梦数据库-源代码

    jpa-hibernate-dm: 数据库为{国产达梦数据库},持久层技术为jpa-hibernate mybatis-dm: 数据库为{国产达梦数据库},持久层技术为mybatis mybatis-plus-dm: 数据库为{国产达梦数据库},持久层技术为mybatis-plus 补充...

    Spring Boot 实战开发2022年

    │ 07 数据访问:如何使用 JdbcTemplate 访问关系型数据库?.mp4 │ 13 服务调用:如何正确理解 RetTemplate 远程调用实现原理?.mp4 │ 20 服务监控:如何使用 Actuator 组件实现系统监控?.mp4 │ 22 运行管理...

    Android代码-spring-boot2-learning

    spring-boot2 本文是基于 Spring Boot 2.x 版本进行的系列教程,欢迎关注我的公众号 battcn ...chapter4: 一起来学Spring Boot | 第五篇:使用JdbcTemplate访问数据库 chapter5: 一起来学Spring Boot | 第六篇:整

    酒店预订管理系统

    (1)JSF和Spring的集成配置:将JSF作为前端,Spring...(2)JdbcTemplate的使用:该应用使用Spring中的JdbcTemplate来访问数据库,使得开发不必书写底层JDBC的代码,简化了开发,详见DBUtil类的开发以及Spring的配置文件。

    springMVC全面覆盖示例

    使用springMvc+SpringJdbcTemplate开发的一个示例,展现了SpringMVC的强大,其中包括Spring的七大控制器及上传下载及拦截器的使用示例,以及使用JdbcTemplate进行数据库的访问操作。

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    springboot项目整合.zip

    第五篇:使用JdbcTemplate访问数据库] 第六篇:整合SpringDataJpa] 第七篇:整合Mybatis] 第八篇:通用Mapper与分页插件的集成] 第九篇:整合Lettuce Redis] 第十篇:使用Spring Cache集成Redis] 第十...

    Spring.3.x企业应用开发实战(完整版).part2

    第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 JDBCTemplate小试牛刀 11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据...

    图书管理系统( Spring+Spring MVC+JdbcTemplate).zip

    内存:包括随机访问内存 (RAM) 和只读存储器 (ROM),用于临时或永久地存储程序和数据供CPU快速访问。 存储设备:如硬盘、固态硬盘 (SSD)、光盘驱动器等,用于长期保存大量的程序和数据。 输入/输出设备:如键盘、...

    spring in action英文版

     4.5.2 用JdoTemplate访问数据库  4.6 Spring和iBATIS  4.6.1 配置SQL Map  4.6.2 使用SqlMapClientTemplate  4.7 Spring和OJB  4.8 小结  第5章 事务管理  5.1 理解事务  5.1.1 仅用4个...

    Java Springboot学习资料.rar

    使用JdbcTemplate访问数据库 整合SpringDataJpa 整合Mybatis 通用Mapper与分页插件的集成 整合Lettuce Redis 使用Spring Cache集成Redis 集成Swagger在线调试 初探RabbitMQ消息队列 RabbitMQ延迟队列 actuator 服务...

    Spring3.x企业应用开发实战(完整版) part1

    第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 JDBCTemplate小试牛刀 11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据...

Global site tag (gtag.js) - Google Analytics