1. 示例代码

CustomerDao.java  ,dao接口

public interface CustomerDao {
public void insertCustomer(Customer c);
public void updateCustomer(Customer c);
public List<Customer> findCustomerByName(String name);
}

CustomerDaoImpl.java 接口实现

/**
* CustomerDaoImpl
*/
public class CustomerDaoImpl implements CustomerDao {
private JdbcTemplate jt ;
public void setJt(JdbcTemplate jt) {
this.jt = jt;
} public List<Customer> findCustomerByName(String name) {
String sql="select id,name,age from customers where name = ?";
return jt.query(sql, new Object[]{name}, new RowMapper(){
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
Customer c = new Customer();
c.setId(rs.getInt("id"));
c.setName(rs.getString("name"));
c.setAge(rs.getInt("age"));
return c;
}});
} /**
* 插入
*/
public void insertCustomer(Customer c) {
String sql = "insert into customers(name,age) values(?,?)";
jt.update(sql, new Object[]{c.getName(),c.getAge()});
} public void updateCustomer(Customer c) {
String sql = "update customers set name = ?,age = ? where id = ?";
jt.update(sql,new Object[]{c.getName(),c.getAge(),c.getId()});
}
}

jdbc.properties 分散配置

jdbc.driverclass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring
jdbc.username=root
jdbc.password=root c3p0.pool.size.max=10
c3p0.pool.size.min=2
c3p0.pool.size.ini=3
c3p0.pool.size.increment=2

dao.xml 配置文件

<?xml version="1.0"?>
<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-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd ">
<!-- 指定分散配置的文件的位置 -->
<context:property-placeholder location="classpath:cn/itcast/spring/dao/jdbc.properties"/>
<!-- 配置c3p0数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverclass}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" /> <property name="maxPoolSize" value="${c3p0.pool.size.max}" />
<property name="minPoolSize" value="${c3p0.pool.size.min}" />
<property name="initialPoolSize" value="${c3p0.pool.size.ini}" />
<property name="acquireIncrement" value="${c3p0.pool.size.increment}" />
</bean> <bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean> <!-- customerDao -->
<bean id="customerDao" class="cn.itcast.spring.dao.CustomerDaoImpl">
<property name="jt" ref="jt" />
</bean> <!-- *************************** daoSupport **************************** -->
<bean id="customerDaoSuport" class="cn.itcast.spring.dao.CustomerDaoSuportImpl">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>

App.java 测试代码

public class App {

	public static void main(String[] args) throws SQLException {
ApplicationContext ac = new ClassPathXmlApplicationContext(
"cn/itcast/spring/dao/dao.xml");
CustomerDao dao = (CustomerDao) ac.getBean("customerDao");
Customer c = new Customer();
c.setName("tom");
c.setAge(23);
dao.insertCustomer(c);
//
c = new Customer();
c.setId(1);
c.setName("jerry");
c.setAge(23);
dao.updateCustomer(c); dao.findCustomerByName("tom");
} }

CustomerDaoSuportImpl.java 另外一种配置方法: 省略模板的配置

/**
* CustomerDaoImpl,省略模板的配置
*/
public class CustomerDaoSuportImpl extends JdbcDaoSupport implements CustomerDao { public List<Customer> findCustomerByName(String name) {
String sql="select id,name,age from customers where name = ?";
return getJdbcTemplate().query(sql, new Object[]{name}, new RowMapper(){
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
Customer c = new Customer();
c.setId(rs.getInt("id"));
c.setName(rs.getString("name"));
c.setAge(rs.getInt("age"));
return c;
}});
} /**
* 插入
*/
public void insertCustomer(Customer c) {
String sql = "insert into customers(name,age) values(?,?)";
getJdbcTemplate().update(sql, new Object[]{c.getName(),c.getAge()});
} public void updateCustomer(Customer c) {
String sql = "update customers set name = ?,age = ? where id = ?";
getJdbcTemplate().update(sql,new Object[]{c.getName(),c.getAge(),c.getId()});
}
}

AppDaoSupport.java 省略模板配置  测试代码

public class AppDaoSupport {

	public static void main(String[] args) throws SQLException {
ApplicationContext ac = new ClassPathXmlApplicationContext(
"cn/itcast/spring/dao/dao.xml");
CustomerDao dao = (CustomerDao) ac.getBean("customerDaoSuport");
Customer c = new Customer();
c.setName("tom");
c.setAge(23);
dao.insertCustomer(c);
} }

Spring -- spring 中使用jdbc, c3p0连接池, dao概念的更多相关文章

  1. Maven 工程下 Spring MVC 站点配置 (三) C3P0连接池与@Autowired的应用

    Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 前两篇文章主要是对站点和数据库操作配置进行了演示,如果单 ...

  2. spark streaming将处理结果存入mysql中(使用c3p0连接池)

    1.c3p0相应的架包导入工程中 将以下四个架包导入工程, 主要有三个架包:c3p0-0.9.5.2.jar c3p0-oracle-thin-extras-0.9.5.2.jar mchange-c ...

  3. spring项目中使用weblogic的连接池

    1.首先在weblogic控制台中配置好一个数据源 我这里建立的数据源的名称叫 jdbc/app1,JNDI名称也叫 jdbc/app1 2.在spring中配置数据源的时候,做如下配置: <b ...

  4. C3P0连接池在hibernate和spring中的配置

    首先为什么要使用连接池及为什么要选择C3P0连接池,这里就不多说了,目前C3P0连接池还是比较方便.比较稳定的连接池,能与spring.hibernate等开源框架进行整合. 一.hibernate中 ...

  5. Spring框架中 配置c3p0连接池 完成对数据库的访问

    开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...

  6. Spring框架中 配置c3p0连接池

    开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...

  7. Spring中c3p0连接池的配置 及JdbcTemplate的使用 通过XML配置文件注入各种需要对象的操作 来完成数据库添加Add()方法

    通过配置文件XML方法的配置 可以使用非常简练的Service类 UserService类代码如下: package com.swift; public class UserService { pri ...

  8. Spring之c3p0连接池配置和使用

    1.导入包:c3p0和mchange包 2.代码实现方式: package helloworld.pools; import com.mchange.v2.c3p0.ComboPooledDataSo ...

  9. (七)Spring 配置 c3p0 连接池

    目录 在 Spring 核心配置文件中配置 c3p0 连接池 配置 JdbcTemplate 对象 在 service 层注入 userDao 在 UserDao 里面注入 JdbcTemplate ...

随机推荐

  1. FineReport----日期处理

    日期处理:http://help.finereport.com/doc-view-819.html DAYSOFMONTH(date):返回当日的该月天数 DATEDELTA(Today(),-1): ...

  2. 第三课补充01——set类型 sorted类型命令操作详解,redis管道及事务

    1. set类型的命令操作: (1)sadd命令:向key指定的set集合添加成员 ##sadd命令:是设置set集合类型的数据,sadd  <key> <mumber> [& ...

  3. XXE(xml外部实体注入漏洞)

    实验内容 介绍XXE漏洞的触发方式和利用方法,简单介绍XXE漏洞的修复. 影响版本: libxml2.8.0版本 漏洞介绍 XXE Injection即XML External Entity Inje ...

  4. Java 常用语法和数据结构

    Collection 首先Java中的collection都是支持泛型和类型安全 由于Java单根继承, 所以不指定, 可以在collection里面放任何对象, collection会都当作obje ...

  5. Java 面向对象之 static 关键字

    static 特点 static 是一个修饰符, 用于修饰成员 static 修饰的成员被所有的对象所共享 static 优先于对象存在, 因为 static 的成员随着类的加载就已经存在了 stat ...

  6. python基础之类的编码风格

    自定义工作流程: 一开始应让代码结构尽可能简单.先尽可能在一个文件中完成所有的工作,确定一切都能正确运行后,再将类移动独立的模块中.如果你喜欢模块和文件的交互方式,可在项目开始时就尝试将类存储到模块中 ...

  7. C#连接EXCEL和ACCESS字符串2003及2007版

    97-2003版本 EXCEL Provider=Microsoft.Jet.OLEDB.4.0;Data Source=文件位置;ExtendedProperties=Excel 8.0;HDR=Y ...

  8. Vijos p1303导弹拦截(LIS+贪心)

    传送门:https://vijos.org/p/1303 背景 实中编程者联盟为了培养技术精湛的后备人才,必须从基础题開始训练. 描写叙述 某国为了防御敌国的导弹突击,研发出一种导弹拦截系统. 可是这 ...

  9. asp.net Mvc Npoi 导出导入 excel

    因近期项目遇到所以记录一下: 首先导出Excel : 首先引用NPOI包 http://pan.baidu.com/s/1i3Fosux (Action一定要用FileResult) /// < ...

  10. mysql内置数据库

    1 mysql本地连接数据库 >mysql -h localhost -u root -proot    注意-p后面没有空格,是直接跟上密码 或者 >mysql -h localhost ...