Spring学习总结(二)——管理数据源示例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40348465/article/details/84994667

  1.项目目录

  

  beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
	<!-- Spring容器自动装配bean,搜索的的路径配置 -->
	<context:component-scan base-package="com.springstudy" />
	
	<!-- 属性占位符加载器 加载配置文件jdbc.properties -->
	<context:property-placeholder location="jdbc.properties" />

	<!-- 使用Spring-jdbc包自带的 进行实例化数据源DriverManagerDataSource -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
		<property name="driverClass" value="${jdbc.driver}" />
		<property name="jdbcUrl" value="${jdbc.url}" />
		<property name="user" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		
		
		<!--定义在从数据库获取新连接失败后重复尝试的次数。默认值: 30 ;小于等于0表示无限次 -->
		<property name="acquireRetryAttempts" value="3" />

		<!--连接池中保留的最大连接数。默认值: 15 -->
		<!-- <property name="maxPoolSize" value="20" /> -->
		<!-- 连接池中保留的最小连接数,默认为:3 -->
		<!-- <property name="minPoolSize" value="2" /> -->
		<!-- 初始化连接池中的连接数,取值应在minPoolSize与maxPoolSize之间,默认为3 -->
		<!-- <property name="initialPoolSize" value="2" /> -->
		<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 3 -->
		<!-- <property name="acquireIncrement" value="2" /> -->
		<!--重新尝试的时间间隔,默认为:1000毫秒 -->
		<!-- <property name="acquireRetryDelay" value="1000" /> -->

	</bean>

	<!-- spring jdbc模板数据源设定 -->
	<bean id="jdbcTemplate"
		class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource"></property>
	</bean>


</beans>

 jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/springstudy?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=

EmployeeDao.java

  

package com.springstudy.dao;

import java.sql.ResultSet;
import java.sql.SQLException;

import javax.annotation.Resource;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import com.springstudy.pojo.Employee;

@Repository
public class EmployeeDao {
	private JdbcTemplate jdbcTemplate;
	
	@Resource
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

	public Employee findEmployeeByNo(String empno) {
		String sql = "select empNo,empName from emp where empNo=?";
		Object[] argus = {empno};
		Employee result = jdbcTemplate.queryForObject(sql, argus, new RowMapper<Employee>() {
			@Override
			public Employee mapRow(ResultSet rs, int arg1) throws SQLException {
				Employee emp=new Employee();
				emp.setEmpNo(rs.getString("empNo"));
				emp.setEmpName(rs.getString("empName"));
				return emp;
			}
		});
		return result;
	}
}

 Test.java

package com.springstudy.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.springstudy.dao.EmployeeDao;
import com.springstudy.pojo.Employee;

public class Test {

	public static void main(String[] args) {
		ApplicationContext cxt = new ClassPathXmlApplicationContext("beans.xml");		
		EmployeeDao empDao = cxt.getBean(EmployeeDao.class);
		String empno="1001";
		Employee emp=empDao.findEmployeeByNo(empno);
		System.out.println(emp);
	}

}

猜你喜欢

转载自blog.csdn.net/qq_40348465/article/details/84994667