spring jdbc框架

spring+jdbc

1、jdbc编程的特点:

模板编程

固定代码+动态的参数

spring产生dataSource

JdbcTemplate{//模板编程

private DataSource dataSource;

public void setDataSource(DataSource dataSource){

this.dataSource = dataSource;

}

public void update(String sql){

//产生链接

//产生Statement

//执行executeUpdate方法

}

使用spring与JDBC连接的方式

导包

1、让自己写的一个dao类继承JdbcDaoSupport

2、让自己写的一个dao类继承JdbcTemplate

3、让自己写的一个dao类里有一个属性为JdbcTemplate

总结:

1、引入dataSource的方式:

1、在dataSource的设置中直接写值

2、引入properties文件

2、在dao的写法中有很多种,最终只需要把dataSource注入到jdbcTemplate中

拿update当例子

PersonDao.java

 1 package cn.itcast.spring.jdbc;
 2
 3 import org.springframework.jdbc.core.support.JdbcDaoSupport;
 4
 5 //JdbcDaoSupport的有setDataSource方法可以注入 DataSource
 6 public class PersonDao extends JdbcDaoSupport{
 7     public void update()
 8     {
 9         System.out.println("update operation 让自己写的一个dao类继承JdbcDaoSupport" );
10         this.getJdbcTemplate().update("update person set pname=‘aa‘ where pid=1");
11     }
12 }

PersonDao2.java

 1 package cn.itcast.spring.jdbc;
 2
 3 import javax.sql.DataSource;
 4
 5 import org.springframework.jdbc.core.JdbcTemplate;
 6 import org.springframework.jdbc.core.support.JdbcDaoSupport;
 7
 8
 9 public class PersonDao2 extends JdbcTemplate{
10     //JdbcTemplate的父类有setDataSource方法可以注入 DataSource
11     //自身有构造方法 注入DataSource
12     //配置文件两种方法都可以
13     public PersonDao2(DataSource ds) {
14         super(ds);
15     }
16     public void update()
17     {
18         System.out.println("update operation 让自己写的一个dao类继承JdbcTemplate" );
19         this.update("update person set pname=‘aa‘ where pid=2");
20     }
21 }

PersonDao3.java

 1 package cn.itcast.spring.jdbc;
 2
 3 import javax.sql.DataSource;
 4
 5 import org.springframework.jdbc.core.JdbcTemplate;
 6 import org.springframework.jdbc.core.support.JdbcDaoSupport;
 7
 8 //3、让自己写的一个dao类里有一个属性为JdbcTemplate
 9 //先让数据源 注入到JdbcTemplate然后 组合 用
10 //可以通过 构造方法 或者 注册依赖
11 public class PersonDao3  {
12     //属性名 在配置文件中不能写错
13     private JdbcTemplate jdbcTemplate;
14
15     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
16         this.jdbcTemplate = jdbcTemplate;
17     }
18
19 //    public JdbcTemplate getJdbcTemplate() {
20 //        return jdbcTemplate;
21 //    }
22
23     public void update()
24     {
25         System.out.println("update operation 让自己写的一个dao类里有一个属性为JdbcTemplate" );
26         this.jdbcTemplate.update("update person set pname=‘aa‘ where pid=3");
27     }
28 }

applicationContext-spring_jdbc.xml

重点配置

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://www.springframework.org/schema/beans
 5            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 6     <bean
 7         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
 8         <property name="locations">
 9             <value>classpath:jdbc.properties</value>
10         </property>
11     </bean>
12
13
14     <bean id="dataSource" destroy-method="close"
15         class="org.apache.commons.dbcp.BasicDataSource">
16         <property name="driverClassName" value="${jdbc.driverClassName}" />
17         <property name="url" value="${jdbc.url}" />
18         <property name="username" value="${jdbc.username}" />
19         <property name="password" value="${jdbc.password}" />
20     </bean>
21 <!--     第一种方式 -->
22     <bean id="personDao" class="cn.itcast.spring.jdbc.PersonDao">
23         <property name="dataSource">
24             <ref bean="dataSource"/>
25         </property>
26     </bean>
27
28     <!--     第二种方式 -->
29     <bean id="personDao2" class="cn.itcast.spring.jdbc.PersonDao2">
30         <constructor-arg index="0" ref="dataSource"></constructor-arg>
31     </bean>
32     <!--     第三种方式 -->
33     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
34         <property name="dataSource">
35             <ref bean="dataSource"/>
36         </property>
37     </bean>
38
39     <bean id="personDao3" class="cn.itcast.spring.jdbc.PersonDao3">
40         <property name="jdbcTemplate">
41             <ref bean="jdbcTemplate"/>
42         </property>
43     </bean>
44 </beans>

jdbc.properties  描述数据库配置信息

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/hibernate_basic
jdbc.username=root
jdbc.password=friends

测试

 1 package cn.itcast.spring.jdbc;
 2
 3 import org.junit.Test;
 4 import org.springframework.context.ApplicationContext;
 5 import org.springframework.context.support.ClassPathXmlApplicationContext;
 6
 7 public class test {
 8     //1、让自己写的一个dao类继承JdbcDaoSupport
 9     @Test
10     public void testPersonDao1()
11     {
12         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext-spring_jdbc.xml");
13         PersonDao dao=(PersonDao) context.getBean("personDao");
14         dao.update();
15     }
16     //2、让自己写的一个dao类继承JdbcTemplate
17
18     //要向子类中注入构造函数 否则 报错 找不到指定的构造函数
19     @Test
20     public void testPersonDao2()
21     {
22         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext-spring_jdbc.xml");
23
24         PersonDao2 dao=(PersonDao2) context.getBean("personDao2");
25         dao.update();
26     }
27     //3、让自己写的一个dao类里有一个属性为JdbcTemplate
28     @Test
29     public void testPersonDao3()
30     {
31         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext-spring_jdbc.xml");
32
33         PersonDao3 dao=(PersonDao3) context.getBean("personDao3");
34         dao.update();
35     }
36 }

spring jdbc框架

时间: 2024-07-30 23:30:17

spring jdbc框架的相关文章

Spring JDBC 框架中, 绑定 SQL 参数的另一种选择:具名参数(named parameter)

使用spring的jdbcTemplate-----使用具名参数 在JDBC用法中,SQL参数是用占位符?表示,并且受到位置的限制,定位参数的问题在于,一旦参数的位置发生变化,必须改变参数的绑定,在Spring JDBC中,绑定SQL参数的另一种选择是使用具名参数,SQL具名参数是按照名称绑定,而不是位置绑定. 什么是具名参数? 具名参数: SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参数由框架类在运行时用占位符取代 具名参数只在 NamedP

Spring JDBC 例子

http://www.yiibai.com/spring/spring_jdbc_example.html 要了解有关Spring JDBC框架与JdbcTemplate类的概念,让我们写这将实现所有在下面Student表的CRUD操作的简单例子. CREATE TABLE Student( ID INT NOT NULL AUTO_INCREMENT, NAME VARCHAR(20) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (ID) ); 在开始之前,

开涛spring3(7.5) - 对JDBC的支持 之 7.5 集成Spring JDBC及最佳实践

7.5 集成Spring JDBC及最佳实践 大多数情况下Spring JDBC都是与IOC容器一起使用.通过配置方式使用Spring JDBC. 而且大部分时间都是使用JdbcTemplate类(或SimpleJdbcTemplate和NamedParameterJdbcTemplate)进行开发,即可能80%时间使用JdbcTemplate类,而只有20%时间使用其他类开发,符合80/20法则.   Spring JDBC通过实现DaoSupport来支持一致的数据库访问. Spring J

Spring的JDBC框架

转自: http://www.cnblogs.com/windlaughing/p/3287750.html Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简化JDBC编程 Spring提供了3个模板类: JdbcTemplate:Spring里最基本的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问. NamedParameterJdbcTemplat

SSH(Struts2+Spring+Hibernate)框架搭建流程&lt;注解的方式创建Bean&gt;

此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblogs.com/wkrbky/p/5912810.html 一.Hibernate(数据层)的搭建: 实现流程 二.Spring(注入实例)的使用: 实现流程 三.Struts2(MVC)的搭建: 实现流程 这里注意一点问题: Struts2与Hibernate在一起搭建,antlr包,有冲突.MyE

编写自己的JDBC框架

元数据介绍 元数据指的是"数据库"."表"."列"的定义信息. DataBaseMetaData元数据 Connection.getDatabaseMetaData()获得代表DatabaseMetaData元数据的DatabaseMetaData对象. DataBaseMetaData对象的常用方法: getURL():返回一个String类对象,代表数据库的URL. getUserName():返回连接当前数据库管理系统的用户名. getDa

Unit06: Spring对JDBC的 整合支持 、 Spring+JDBC Template、Spring异常处理

Unit06: Spring对JDBC的 整合支持 . Spring+JDBC Template .Spring异常处理 1. springmvc提供的异常处理机制 我们可以将异常抛给spring框架,让spring来帮我们处理异常. (1)使用简单异常处理器 step1. 配置简单异常处理器. step2. 添加对应的异常处理页面. 注:该方式只适合处理简单异常的处理,如果要对异常做复杂处理,比如 记录日志等,则不合适了. (2)使用@ExceptionHandler注解 step1. 在处理

Spring JDBC详解

<Spring JDBC详解> 本文旨在讲述Spring JDBC模块的用法.Spring JDBC模块是Spring框架的基础模块之一. 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.概述 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1)core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJdbcInsert类,SimpleJdbcCall类,以及NamedP

Struts2,Spring,Hibernate框架的优缺点

Struts2,Spring,Hibernate框架的优缺点 Struts2框架(MVC框架)的优点如下: 1)  实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现:        2)  丰富的标签库,大大提高了开发的效率:        3) Struts2提供丰富的拦截器实现        3) 通过配置文件,就可以掌握整个系统各个部分之间的关系:        4) 异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理: Spring框架的优点如下: 1)