spring学习笔记(16)--Spring DataSource

来源:互联网 发布:软件行业就业分析 编辑:程序博客网 时间:2024/06/09 17:16

1.beans.xml

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>  <property name="url" value="jdbc:mysql://localhost:3306/myblog"/>  <property name="username" value="root"/>  <property name="password" value="root"/>    </bean>

这个不用多说了

2.在IUserDAOImpl.java 中需要注入一个DataSource,然后得到一个Connection 然后对数据库进行操作

package org.sh.spring.impl;import java.sql.Connection;import java.sql.SQLException;import java.util.List;import java.util.Map;import java.util.Set;import javax.annotation.Resource;import javax.sql.DataSource;import org.sh.spring.DAO.IUserDAO;import org.sh.spring.model.User;import org.springframework.stereotype.Component;@Component("u")public class IUserDAOImpl implements IUserDAO {private DataSource dataSource;private Set<String> sets;private List<String> lists;public DataSource getDataSource() {return dataSource;}@Resourcepublic void setDataSource(DataSource dataSource) {this.dataSource = dataSource;}public IUserDAOImpl() {}@Overridepublic void save(User user)  {try {Connection conn = dataSource.getConnection();conn.createStatement().executeUpdate("insert into users(username,password) values('suhao1','suhao')");} catch (SQLException e) {e.printStackTrace();}System.out.println("user saved");}@Overridepublic String toString() {return "daoID=" + this.daoId;}}

3.测试程序:
@Testpublic void testSave() {ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");IUserDAO ud = (IUserDAO)ctx.getBean("userservice");System.out.println(ud.getClass());User u = new User();ud.save(u);}

测试结果:
method start...
user saved

数据库查看


最后一条数据位插入的数据,注入导入DataSource需要使用到的包:


并且把 数据库连接的jar也导入项目 我使用的是mysql数据库 导入mysqljdbc即可

总结:

1.   Spring 指定datasource

a)     参考文档,找dbcp.BasicDataSource

               i.         c3p0

              ii.         dbcp

            iii.         proxool

b)     在DAO或者Service中注入dataSource

c)     在Spring中可以使用PropertyPlaceHolderConfigure来读取Properties文件的内容

使用PropertyPlaceHolderConfigure来读取Properties文件:

bean.xml

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">    <property name="locations">        <value>classpath:jdbc.properties</value>    </property></bean><bean id="dataSource" destroy-method="close"      class="org.apache.commons.dbcp.BasicDataSource">    <property name="driverClassName" value="${jdbc.driverClassName}"/>    <property name="url" value="${jdbc.url}"/>    <property name="username" value="${jdbc.username}"/>    <property name="password" value="${jdbc.password}"/></bean>

${jdbc.driverClassName} 将会到locations指定的位置 jdbc.properties 文件中查找;

jdbc.properties:

jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/myblogjdbc.username=rootjdbc.password=root

测试结果:
class $Proxy6
method start...
user saved


0 0
原创粉丝点击