Spring连接数据库的三种方式

1.通过DriverManagerDataSource获取连接对象

  这个东西来历可以说一下,JDK中有个接口:

Spring -- JDBC

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


XML:

Spring -- JDBC


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

Spring -- JDBC

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


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

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

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

 

    XML:

Spring -- JDBC

 

   测试类:

Spring -- JDBC

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


3.使用外部属性文件

这个方法呢不仅仅是适用于JDBC,在配置其他Bean的时候一样管用。

Spring 提供了一个叫 PropertyPlaceholderConfigurer 的类,这个类可以读取properties文件,

然后配置文件里使用形式为 ${键} 的形式,获取属性文件中的数据。

a) Spring 2.0时的玩法:

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

Spring -- JDBC


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

资源文件:

Spring -- JDBC

userName这个键要注意一下,在Spring配置文件中username是个关键字,无论大小写。但如果资源文件中定义有这个键,那么它会使用资源文件中的这个,如果没有,它会填充操作系统的用户名,(win7默认是Administrator),下面介绍的另一种方法也会有这个问题,继续往下。


b) Spring2.5 之后的玩法:

    

Spring 2.5 之后: 可通过 <context:property-placeholder> 元素简化

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

Spring -- JDBC


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

Spring -- JDBC


整个配置文件内容如下:

Spring -- JDBC


注意:使用这种方式后就不能再用username作为键了,这种方式优先填充的是系统操作系统的用户名,

如果数据库的用户名和操作系统用户名一致,可以用,如果不一致,就改成别的吧。





相关文章:

  • 2022-12-23
  • 2021-08-01
  • 2021-12-04
  • 2021-05-26
  • 2021-11-02
  • 2021-08-30
  • 2021-10-28
猜你喜欢
  • 2022-01-05
  • 2021-06-19
  • 2021-12-07
  • 2021-07-13
相关资源
相似解决方案