任何DAO访问数据库,最开始都需要配置数据源,数据源中定义了访问数据库的常用配置。有了数据源才能创建数据模板,然后把数据模板注入到DAO中,通过调用数据访问模板中的相应方法来对数据库进行相关操作。

  常用的定义数据源技术有:

  1.JDBC,最基本的配置方式,由于没有进行池化管理,每次连接请求时都会返回一个新连接,不建议在生产环境使用。

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destory-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>

  2.连接池(C3P0,DBCP),在生产环境中通常都会采用连接池技术,这样可以提高性能,避免每次访问都开启或关闭连接。

这里采用dbcp的方式定义数据源,在tomcat的lib包下就有commons-dbcp-1.2.1.jar
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destory-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<!-- 初始化连接数量 -->
<property name="initialSize" value="5"/>
<!-- 同一时间池中最多的连接数量,0为无限制 -->
<property name="maxActive" value="10"/>
</bean> 这里采用c3p0的方式定义数据源,需要导入c3p0的jar包,包括c3p0-0.9.5.1.jar,mchange-commons-java-0.2.10.jar,如果数据库是oracle,还需导入c3p0-oracle-thin-extras-0.9.5.1.jar
方法一:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destory-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/>
<property name="user" value="root"/>
<property name="password" value="root"/>
<!-- 初始化连接数量 -->
<property name="initialPoolSize" value="5"/>
<!-- 同一时间池中最多的连接数量,0为无限制 -->
<property name="maxPoolSize" value="10"/>
</bean>
方法二:在类路径下创建一个c3p0.properties文件,ComboPooledDataSource会自动去类路径下查找该文件
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destory-method="close"/>
c3p0.properties文件格式(更多参考官方文档):
  c3p0.driverClass=com.mysql.jdbc.Driver
  c3p0.jdbcUrl=jdbc:mysql://localhost:3306/test
  c3p0.user=root
  c3p0.password=root
  c3p0.maxPoolSize=10
  c3p0.minPoolSize=2
  c3p0.initiaPoolSize=2

  还可以通过spring的 <context:property-placeholder location="jdbc.properties"/> 导入属性文件,然后利用方法一的方式在value中填写对应的键值(如:${jdbc.driverClassName}),这种方式的好处是属性文件中的键可以随意定义,只要值对应就可以了。

最新文章

  1. Solr图形化界面banana:除Hue之外的选择
  2. c#中两种不同的存储过程调用与比较
  3. Android自定义View (二) 进阶
  4. 【转】IOS开发资源汇总
  5. 随机森林分类(Random Forest Classification)
  6. newClass a = Func(3)中隐藏的操作
  7. Microsoft Visual Studio Ultimate 2012 旗舰版 有效注册密钥
  8. /etc/bashrc,用户目录下.bashrc有什么区别?
  9. cocos2d-x 实现clash of clans多点聚焦缩放场景
  10. hdu_1011(Starship Troopers) 树形dp
  11. APP内置react 应用与APP的交互问题
  12. Canvas引入跨域的图片导致toDataURL()报错的问题的解决
  13. shell删除三天前或者三天内的文件
  14. 网页分帧操作&lt;frameset&gt;,&lt;iframe&gt;标签
  15. MSSQL 数据库 buildindex 出错
  16. Invalid demension,shape[-1,40,40,1]
  17. 在JavaScript中什么时候使用==是正确的?
  18. Codeforces Round #257 (Div. 2) E题:Jzzhu and Apples 模拟
  19. Web安全之BurpSuite抓取HTTPS请求
  20. 洛谷1552 [APIO2012]派遣

热门文章

  1. libvirt报错总结
  2. dokcer部署code-server web版vscode
  3. SQL常见面试题(借书卡表_图书表_借书记录表)
  4. 【linux杂谈】遇到REMOTE HOST IDENTIFICATION HAS CHANGED怎么办?
  5. NIO入门
  6. java追加文件
  7. (5.3)mysql高可用系列——mysql复制之复制的参数
  8. Oracle-DDL 2- 视图&amp;索引
  9. Spring_four
  10. mysql以及mysql bench安装教程