Spring-JDBC简介

Spring连接数据库的三种方式

 

1.通过DriverManagerDataSource获取连接对象

Spring-JDBC简介_第1张图片

 

看简介可以得知这是个获取专门生产Connection对象的工厂类,基本上所有框架用来创建数据库连接都会实现这个接口,Spring的jdbc包就实现了这个接口,实现类就是DriverManagerDataSource,在它之前还有几个抽象类,这里不多BB,知道来历就好。

 

在spring.xml中配置

   
     
     

     
     
   
   

 

 返回的是个DataSource对象,再通过DataSource的getConnection方法即可获取:

ApplicationContext context = new GenericXmlApplicationContext("classpath:/cn/et/day2/jdbc/spring.xml");
		DataSource dataSource =(DataSource)context.getBean("dataSource");
		try {
			System.out.println(dataSource.getConnection());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

这么做还不够简便,获取个连接对象,预编译SQL、执行、获取结果集的逻辑还是要自己动手写,Spring早就预料到这点了, 看下面第二种连接方式。

 

 

2.通过JdbcTemplate(JDBC模板)连接数据库

    SpringJDBC有个模板类,就叫做JdbcTemplate,这里面封装了一系列操作数据的方法,

query、 execute等等,这个类能够使我们开发时只关注SQL语句的编写以及结果的获取,其余的工作交给它就行。

 

    spring.xml配置


   
     
     
     
     
   
   
   
   
      
   

   

测试类:

public class TestCotainer {
	static JdbcTemplate jt; //创建一个工具类
	static{
		ApplicationContext context = new GenericXmlApplicationContext("classpath:/cn/et/day2/jdbc/spring.xml");
		jt=(JdbcTemplate)context.getBean("jdbcTemplate");  //实例化工具类
	}

	public static void main(String[] args) throws SQLException {
		//容器对象 传入一个sql语句
		query("select * from student");
		
	}
	
	/**
	 * 封装查看的方法
	 */
	public static void query(String sql){
		List> list=jt.queryForList(sql);
			System.out.println(list);
	}
	
	/**
	 * 封装增删改的方法
	 */
	public static void update(){
		String sql="delete from student where s=1";
		jt.execute(sql);
	}
}

是的,从创建数据库连接到获取查询结果,只需要这么几句Java代码,其他繁琐的步骤全部交给Spring处理,屌的不行。

 

 

3.使用外部属性文件

这个方法呢不仅仅是适用于JDBC,在配置其他Bean的时候一样管用。Spring 提供了一个叫 PropertyPlaceholderConfigurer 的类,这个类可以读取properties文件,然后配置文件里使用形式为 ${键} 的形式,获取属性文件中的数据。

 

    a) Spring 2.0时的玩法:

既然是个类,那么还是要用到bean标签去声明的,这个类的全路径有点长:

   
    
      
   
   
   
     
     
     
     
   
   
   
   
      
   

name=location意思是调用这个类中的setLocation方法,value值则是properties文件所在的路径,classpath前缀,用类路径(相对路径),file前缀,用绝对路径。 

 

注意:使用这种方式后就不能再用username作为键了,这种方式优先填充的是系统操作系统的用户名,如果数据库的用户名和操作系统用户名一致,可以用,如果不一致,就改成别的吧。

 

资源文件:

url=jdbc:mysql://localhost:3306/test
driverClass=com.mysql.jdbc.Driver
username1=root
password1=88888888

 

b) Spring2.5 之后的玩法:

Spring 2.5 之后: 可通过 元素简化、

中添加 context Schema 定义,添加context命名空间:

 

在配置文件中加入如下配置:

   
   

效果等价。。。。。。。。。

你可能感兴趣的:(spring)