Spring中JdbcTemplate结合连接池(c3p0、dbcp、JdbcDateSupport)及配置properties
来源:互联网 发布:易语言调用淘宝api 编辑:程序博客网 时间:2024/06/05 13:17
首先创建一个数据库:
CREATE TABLE spring_jdbc(id INT PRIMARY KEY, username VARCHAR(8), uno VARCHAR(11));INSERT INTO spring_jdbc(id,username,uno) VALUES(1,'fly','123');INSERT INTO spring_jdbc(id,username,uno) VALUES(2,'teemo','123');
导入相应的JAR:
接下来先在代码中链接一下数据库及使用(简单了解,估计开发中不会用这种方式)
package com.fly.jdbc;import org.apache.commons.dbcp.BasicDataSource;import org.springframework.jdbc.core.JdbcTemplate;public class TestDemoJDBC { public static void main(String[] args) { // 创建数据源(连接池)dbcp BasicDataSource basicDataSource = new BasicDataSource(); // 基本4项 basicDataSource.setDriverClassName("com.mysql.jdbc.Driver"); // 加载驱动 basicDataSource.setUrl("jdbc:mysql://localhost:3306/student"); // 数据库的 basicDataSource.setUsername("root"); basicDataSource.setPassword("123"); // 创建模板 JdbcTemplate jdbcTemplate = new JdbcTemplate(); jdbcTemplate.setDataSource(basicDataSource); // 使用 插入一条数据 jdbcTemplate.update("insert into spring_jdbc(id,username,uno) values(?,?,?);", "3","qian","123"); }}
第一步:建立一个整个项目公用的JavaBean,因为后面几个都要用到,就建一个公用的就好了。
package com.fly.jdbc;public class Personbean { private int id; private String username; private String uno; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUno() { return uno; } public void setUno(String uno) { this.uno = uno; } @Override public String toString() { return "Personbean [id=" + id + ", username=" + username + ", uno=" + uno + "]"; }}
接下来介绍c3p0的使用:
配置文件beans:
<?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" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 创建数据源 c3p0 设置驱动,数据库连接,账号,密码--> <bean id="dataSourceId" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"></property> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/student"></property> <property name="user" value="root"></property> <property name="password" value="123"></property> </bean> <!-- 创建模板 ,需要注入数据源--> <bean id="jdbcTemplateId" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSourceId"></property> </bean> <!-- 配置dao --> <bean id="userDaoId" class="com.fly.jdbc.c3p0.UserDao"> <property name="jdbcTemplate" ref="jdbcTemplateId"></property> </bean></beans>
Dao的代码:
package com.fly.jdbc.c3p0;import java.util.List;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;import com.fly.jdbc.Personbean;public class UserDao { //获取模板 private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate){ this.jdbcTemplate = jdbcTemplate; } public void update(Personbean person){ String sql = "update spring_jdbc set username=?,uno=? where id=?"; Object[] args = {person.getUsername(),person.getUno(),person.getId()}; jdbcTemplate.update(sql, args); } /** * 查询所有 * @return */ public List<Personbean> queryAll() { return jdbcTemplate.query("select * from spring_jdbc", ParameterizedBeanPropertyRowMapper.newInstance(Personbean.class)); }}
测试代码:
package com.fly.jdbc.c3p0;import java.util.List;import org.junit.Test;import org.springframework.beans.factory.BeanFactory;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.fly.jdbc.Personbean;public class TestDemo { @Test public void demo(){ String xmlPath = "com/fly/jdbc/c3p0/beans.xml"; BeanFactory context = new ClassPathXmlApplicationContext(xmlPath); UserDao userDao = (UserDao) context.getBean("userDaoId"); List<Personbean> queryAll = userDao.queryAll(); for (Personbean personbean : queryAll) { System.out.println(personbean); } }}
dbcp的使用案例
配置文件bean:
<?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" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 创建数据源 --> <bean id="dataSourceId" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/student"></property> <property name="username" value="root"></property> <property name="password" value="123"></property> </bean> <!-- 创建模板 ,需要注入数据源--> <bean id="jdbcTemplateId" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSourceId"></property> </bean> <!-- 配置dao --> <bean id="personDaoId" class="com.fly.jdbc.dbcp.PersonDao"> <property name="jdbcTemplate" ref="jdbcTemplateId"></property> </bean></beans>
Dao的代码:
package com.fly.jdbc.dbcp;import org.springframework.jdbc.core.JdbcTemplate;import com.fly.jdbc.Personbean;public class PersonDao { // 获取模板 private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate){ this.jdbcTemplate = jdbcTemplate; } public void update(Personbean person){ String sql = "update spring_jdbc set username=?,uno=? where id=?"; Object[] arg = {person.getUsername(),person.getUno(),person.getId()}; jdbcTemplate.update(sql,arg); }}
测试代码:
package com.fly.jdbc.dbcp;import org.junit.Test;import org.springframework.beans.factory.BeanFactory;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.fly.jdbc.Personbean;public class TestDemo1 { @Test public void demo(){ Personbean mPersonbean = new Personbean(); mPersonbean.setId(1); mPersonbean.setUsername("hash"); mPersonbean.setUno("123456"); String xmlPath = "com/fly/jdbc/dbcp/beans.xml"; BeanFactory context = new ClassPathXmlApplicationContext(xmlPath); PersonDao bean = (PersonDao) context.getBean("personDaoId"); bean.update(mPersonbean); }}
JdbcDateSupport案例介绍:
配置文件bean:
<?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" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 创建数据源 c3p0--> <bean id="dataSourceId" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"></property> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/student"></property> <property name="user" value="root"></property> <property name="password" value="123"></property> </bean> <!-- 配置dao * dao 继承 JdbcDaoSupport,之后只需要注入数据源,底层将自动创建模板 --> <bean id="userDaoId" class="com.fly.jdbc.jdbcdaosupport.UserDao"> <property name="dataSource" ref="dataSourceId"></property> </bean></beans>
dao代码:
package com.fly.jdbc.jdbcdaosupport;import java.util.List;import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;import org.springframework.jdbc.core.support.JdbcDaoSupport;import com.fly.jdbc.Personbean;/** * 和上一个c3p0相比,就是在Dao类中继承JdbcDaoSupport,在XML文件中不配置JdbcTemplate * 就这一个区别 * @author Administrator * */public class UserDao extends JdbcDaoSupport{ public void update(Personbean person){ String sql = "update spring_jdbc set username=?,uno=? where id=?"; Object[] args = {person.getUsername(),person.getUno(),person.getId()}; this.getJdbcTemplate().update(sql, args); } /** * 查询所有 * @return */ public List<Personbean> queryAll() { return this.getJdbcTemplate().query("select * from spring_jdbc", ParameterizedBeanPropertyRowMapper.newInstance(Personbean.class)); }}
测试:
package com.fly.jdbc.jdbcdaosupport;import java.util.List;import org.junit.Test;import org.springframework.beans.factory.BeanFactory;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.fly.jdbc.Personbean;public class TestDemo { @Test public void demo(){ String xmlPath = "com/fly/jdbc/jdbcdaosupport/beans.xml"; BeanFactory context = new ClassPathXmlApplicationContext(xmlPath); UserDao userDao = (UserDao) context.getBean("userDaoId"); List<Personbean> queryAll = userDao.queryAll(); for (Personbean personbean : queryAll) { System.out.println(personbean); } }}
配置properties后的连接使用(很方便,扩展性强)
配置properties文件:jabcInfo.properties
jdbc.driverClass=com.mysql.jdbc.Driverjdbc.jdbcUrl=jdbc:mysql://localhost:3306/studentjdbc.user=rootjdbc.password=123
配置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" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 加载配置文件 "classpath:"前缀表示 src下 在配置文件之后通过 ${key} 获得内容 --> <context:property-placeholder location="com/fly/jdbc/properties/jdbcInfo.properties"/> <!-- 创建数据源 c3p0--> <bean id="dataSourceId" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.password}"></property> </bean> <!-- 配置dao * dao 继承 JdbcDaoSupport,之后只需要注入数据源,底层将自动创建模板 --> <bean id="userDaoFinalId" class="com.fly.jdbc.properties.UserDaoFinal"> <property name="dataSource" ref="dataSourceId"></property> </bean></beans>
Dao类
package com.fly.jdbc.properties;import java.util.List;import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;import org.springframework.jdbc.core.support.JdbcDaoSupport;import com.fly.jdbc.Personbean;/** * 和上一个c3p0相比,就是在Dao类中继承JdbcDaoSupport,在XML文件中不配置JdbcTemplate * 就这一个区别 * @author Administrator * */public class UserDaoFinal extends JdbcDaoSupport{ public void update(Personbean person){ String sql = "update spring_jdbc set username=?,uno=? where id=?"; Object[] args = {person.getUsername(),person.getUno(),person.getId()}; this.getJdbcTemplate().update(sql, args); } /** * 查询所有 * @return */ public List<Personbean> queryAll() { return this.getJdbcTemplate().query("select * from spring_jdbc", ParameterizedBeanPropertyRowMapper.newInstance(Personbean.class)); } /** * * @param id * @return */ public Personbean queryId(int id){ return this.getJdbcTemplate().queryForObject("select * from spring_jdbc where id =?", ParameterizedBeanPropertyRowMapper.newInstance(Personbean.class),id); }}
测试类:
package com.fly.jdbc.properties;import org.junit.Test;import org.springframework.beans.factory.BeanFactory;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.fly.jdbc.Personbean;public class TestDemo { @Test public void demo(){ String xmlPath = "com/fly/jdbc/properties/beans.xml"; BeanFactory context = new ClassPathXmlApplicationContext(xmlPath); UserDaoFinal bean = (UserDaoFinal) context.getBean("userDaoFinalId"); Personbean personbean = bean.queryId(1); System.out.println(personbean); }}
0 0
- Spring中JdbcTemplate结合连接池(c3p0、dbcp、JdbcDateSupport)及配置properties
- Spring 结合Hibernate 配置 C3P0 连接池
- spring整合c3p0和DBCP连接池的简单配置
- spring 使用数据库连接池c3p0连接(包含DBCP基本配置)
- DBCP和C3P0连接池常用配置
- DBCP和C3P0连接池配置介绍
- spring c3p0/dbcp等数据库连接池配置
- Spring配置c3p0、dbcp数据库连接池
- Spring 结合Hibernate 配置 C3P0 连接池(转)
- 连接池-DBCP-C3P0
- 连接池-C3P0、DBCP
- spring中配置c3p0连接池
- spring中配置c3p0连接池
- Spring通过c3p0或者dbcp连接数据库获得DataSource配置
- 使用spring jdbcTemplate和dbcp操作数据库及事务配置
- 连接池(DBCP和C3P0)
- spring下,druid,c3p0,proxool,dbcp四个数据连接池的使用和配置
- Spring通过XML配置c3p0连接池和dao层注解注入使用 jdbcTemplate
- HDU1256 画8
- UCOSII移植
- ~/.bash_profile
- Linux发送函数dev_queue_xmit分析
- 网络电视精灵
- Spring中JdbcTemplate结合连接池(c3p0、dbcp、JdbcDateSupport)及配置properties
- TCP/IP 相关知识点与面试题集
- Java--集合(Map)
- 技术晋升的评定与博弈
- Github Pages使用
- 使用非const指针修改const int的值
- linux TCP/IP协议栈 ---ip_rcv_finish()
- Java计算器实现加减乘除功能
- java集合系列——Map介绍(七)