spring jdbc框架
本文内容纲要: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.Driverjdbc.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框架
原文链接:https://www.cnblogs.com/friends-wf/p/3785370.html
以上是 spring jdbc框架 的全部内容, 来源链接: utcz.com/z/362685.html