spring与jdbc配置搭配
来源:互联网 发布:mac看nba直播 编辑:程序博客网 时间:2024/04/30 05:56
1.创建一个测试类项目,并导入相应的包
2.在项目根目录下添加配置文件和相应的测试类
配置文件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" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 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 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- 将数据源文件配置引入 --> <context:property-placeholder location="classpath:db.properties"/> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driverClassName}"/> <property name="url" value="${url}"></property> <property name="username" value="${username}"/> <property name="password" value="${password}"/> <!-- 连接池启动时的初始值 --> <property name="initialSize" value="${initialSize}"/> <!-- 连接池的最大值 --> <property name="maxActive" value = "${maxActive}"/> <!-- 最大空闲值,当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接释放一部分,一直减少到maxIdle为止 --> <property name="maxIdle" value="${maxIdle}"/> <!-- 最小空闲值,当空闲连接少于阔值时,连接池就会预申请一些连接,以免洪峰来时来不及申请 --> <property name="minIdle" value="${minIdle}"/> </bean> <!-- spring为我们提供的专门针对数据源的事务管理器 --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 启动@Transactional注解,将来哪个组件方法带有该标记就会切入tx事务管理功能 --> <tx:annotation-driven transaction-manager="txManager"/> <!-- 采用自动扫描的方式交给spring管理 --> <context:component-scan base-package="cn.itcast"/></beans>
db.properties文件内容为
driverClassName=com.mysql.jdbc.Driverurl=jdbc\:mysql\://localhost\:3306/day12?useUnicode\=true&characterEncoding\=utf-8&zeroDateTimeBehavior\=convertToNullusername=rootpassword=1234567initialSize=1maxActive=500maxIdle=2minIdle=1
创建实体类和实体映射类
package cn.itcast.bean;public class Persion { private int id; private String username; private String password; private String email; public Persion(){} public Persion(String username, String password, String email) { super(); this.username = username; this.password = password; this.email = email; } 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 getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}
创建接口和接口的实现类
package cn.itcast.serviece;import java.util.List;import cn.itcast.bean.Persion;public interface PersionService { /** * 保存Persion */ public void save(Persion persion); /** * 获取Persion */ public Persion getPersion(int id); /** * 获取所有的Persion */ public List<Persion> getAllPersion(); /** * 修改Persion */ public void updatePersion(Persion persion); /** * 删除Persion */ public void deletePersion(int id);}
JDBCTemplate的使用
package cn.itcast.serviece.impl;import java.util.List;import javax.annotation.Resource;import javax.sql.DataSource;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import cn.itcast.bean.Persion;import cn.itcast.serviece.PersionService;/** * 1.@Transactional添加事物,默认保证方法在同一个事物中执行 * 2.通过dataSource的setter方法,在运行时注入一个dataSouce对象,然后根据这个对象创建一个JdbcTemplate对象 * @author thinkpad * */@Transactional@Servicepublic class PersionServiceBean implements PersionService { // private DataSource dataSource; private JdbcTemplate jdbcTemplate; @Resource public void setDataSource(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } /** * 增加、修改、删除都是使用的JdbcTemplate的update方法。 * update方法中第一个参数是sql语句,未知的值用占位符?代替 * 第二个参数是一个Object数组。数组里面的各项是上面的占位符的值 * 第三个参数是一个int数组。数组的各项是第二个参数中的值在数据库中的类型 */ public void save(Persion persion) { jdbcTemplate.update( "insert into user(username,password,email) values (?,?,?)", new Object[] { persion.getUsername(), persion.getPassword(), persion.getEmail() }, new int[] { java.sql.Types.VARCHAR, java.sql.Types.VARCHAR, java.sql.Types.VARCHAR }); } /** * 根据id获取单个数据是通过queryForObject方法 * 这个方法前面三个参数都与update方法一样 * 第四个参数是一个org.springframework.jdbc.core.RowMapper接口的对象 * 实现RowMapper接口,必须实现里面的mapRow(ResultSet rs, int rowNum)方法 * 这个方法是通过ResultSet把一条记录放到一个实体类对象中,并返回这个实体类对象 */ public Persion getPersion(int id) { Persion persion = (Persion) jdbcTemplate.queryForObject( "select * from user where id=?", new Object[] { id }, new int[] { java.sql.Types.INTEGER }, new PersionRowMapper()); return persion; } /** * 通过一条没有占位符的select语句来查询多条记录,并返回一个List集合 * query方法里面的两个参数 * 第一个是select语句 * 第二个是RowMapper接口的对象 */ @SuppressWarnings("unchecked") public List<Persion> getAllPersion() { return (List<Persion>) jdbcTemplate.query("select * from user", new PersionRowMapper()); } public void updatePersion(Persion persion) { jdbcTemplate.update("update user set username=? where id=?", new Object[] { persion.getUsername(), persion.getId() }, new int[] { java.sql.Types.VARCHAR, java.sql.Types.INTEGER }); } public void deletePersion(int id) { jdbcTemplate.update("delete from user where id=?", new Object[] { id }, new int[] { java.sql.Types.INTEGER }); }}
package cn.itcast.serviece.impl;import java.sql.ResultSet;import java.sql.SQLException;import org.springframework.jdbc.core.RowMapper;import cn.itcast.bean.Persion;public class PersionRowMapper implements RowMapper { public Object mapRow(ResultSet rs, int index) throws SQLException { Persion persion = new Persion(); persion.setId(rs.getInt("id")); persion.setUsername(rs.getString("username")); persion.setPassword(rs.getString("password")); persion.setEmail(rs.getString("email")); return persion; }}
测试类
package cn.itcast.test;import java.util.List;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.itcast.bean.Persion;import cn.itcast.serviece.PersionService;public class PersionTest { @Test public void demoTest() { ApplicationContext atc = new ClassPathXmlApplicationContext("beans.xml"); PersionService persionService = (PersionService) atc .getBean("persionServiceBean"); persionService.save(new Persion("tom", "123", "2321@qq.com")); } @Test public void demoTest1() { ApplicationContext atc = new ClassPathXmlApplicationContext("beans.xml"); PersionService persionService = (PersionService) atc .getBean("persionServiceBean"); Persion persion = persionService.getPersion(4); System.out.println(persion.getUsername()); } @Test public void demoTest2() { ApplicationContext atc = new ClassPathXmlApplicationContext("beans.xml"); PersionService persionService = (PersionService) atc .getBean("persionServiceBean"); List<Persion> list = persionService.getAllPersion(); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i).getUsername() + ":" + list.get(i).getPassword() + ":" + list.get(i).getEmail()); } } @Test public void demoTest3(){ ApplicationContext atc = new ClassPathXmlApplicationContext("beans.xml"); PersionService persionService = (PersionService) atc .getBean("persionServiceBean"); Persion persion = persionService.getPersion(1); persion.setUsername("zhaohailong"); persionService.updatePersion(persion); } @Test public void demoTest4(){ ApplicationContext atc = new ClassPathXmlApplicationContext("beans.xml"); PersionService persionService = (PersionService) atc .getBean("persionServiceBean"); persionService.deletePersion(3); }}
阅读全文
0 0
- spring与jdbc配置搭配
- spring与jdbc 整合配置
- spring 对jdbc支持与配置
- spring(数据库)jdbc配置、spring与jdbc编程的结合和jdbc模板方式的使用
- MyBatis搭配spring和事务配置
- 使用Spring Boot搭配mybatis配置项目
- Java Spring搭配Junit测试配置
- Java Spring搭配TestNG测试配置
- spring配置JDBC事务
- 为Spring配置JDBC
- spring 配置oracle jdbc
- java spring jdbc配置
- java spring jdbc配置
- spring(JDBC)事务配置
- spring+JDBC开发配置
- spring-JDBC 连接配置
- spring jdbc配置
- Spring-JDBC配置
- NLP+句法结构(三)︱中文句法结构(CIPS2016、依存句法、文法)
- 题目
- VMware虚拟机安装
- 大话设计模式----观察者模式
- nodeJS的主流模板----jade和ejs的使用
- spring与jdbc配置搭配
- CodeForces 891 简要题解
- TheDAO周年祭--攻击事件回顾及区块链固有安全性分析
- POJ 3126 Prime Path
- HashCode和equals的面试问题
- 我安装archlinux的过程总结
- Ubuntu16.04 和Windows远程桌面
- 最大子列和(算法复杂度优化)
- SQL中execute操作返回false的问题