首页 > 代码库 > 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方法可以注入 DataSource11 //自身有构造方法 注入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_basicjdbc.username=rootjdbc.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 @Test10 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类继承JdbcTemplate17 18 //要向子类中注入构造函数 否则 报错 找不到指定的构造函数19 @Test20 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类里有一个属性为JdbcTemplate28 @Test29 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 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。