版权声明:本文为博主原创文章,未经博主允许不得转载。 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);
}
}