spring与Jdbc的操作

来源:互联网 发布:win10怎么连接网络 编辑:程序博客网 时间:2024/06/03 20:50

************************

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           ">                      <!-- 利用spring提供的占位符的方式引用properties文件的数据 -->           <context:property-placeholder location="classpath:jdbc.properties"/>           <!-- dbcp数据源配置 -->           <bean id="dataSource" class=" org.apache.commons.dbcp.BasicDataSource" destroy-method="close">           <property name="driverClassName" value="${driverClassName}"></property>           <property name="url"            value="${url}">           </property>           <property name="username" value="${username}"></property>           <property name="password" value="${password}"></property>           <!-- 连接池启动时初始值 -->           <property name="initialSize" value="${initialSize}"></property>           <!-- 连接池的最大值 -->           <property name="maxActive" value="${maxActive}"></property>           <!-- 最大空闲值。当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到           maxIdle为止 -->           <property name="maxIdle" value="${maxIdle}"></property>           <!-- 最小空闲值。当空闲的连接数少于阀值时,连接池就会预申请一些去连接,以免洪峰来时来不及申请 -->           <property name="minIdle" value="${minIdle}"></property>                      </bean>                      <!-- 采用spring来管理数据源的事务 -->           <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">           <property name="dataSource" ref="dataSource"></property>           </bean>                      <!-- 使用@Transactional注解方式使用事务 -->           <tx:annotation-driven transaction-manager="txManager"/>                      <bean id="personService" class="blog.service.impl.PersonServiceBean">           <property name="dataSource" ref="dataSource"></property>           </bean></beans>
**********************

jdbc.properties

**********************

url=jdbc\:mysql\://localhost\:3306/springandjdbc?useUnicode\=true&characterEncoding\=utf-8username=rootpassword=1234initialSize=1maxActive=500maxIdle=2minIdle=1driverClassName=org.gjt.mm.mysql.Driver

需要的jar包

**********************

Person.java

**********************

package blog.service.bean;public class Person {private Integer personId;private String name;public Integer getPersonId() {return personId;}public void setPersonId(Integer personId) {this.personId = personId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Person() {}public Person(String name) {this.name = name;}}


******************

PersonService.java

******************

package blog.service;import java.util.List;import blog.service.bean.Person;public interface PersonService {public void save(Person person);public void delete(Integer personId);public void update(Person person);public List<Person> getPersons();public Person getPerson(Integer personId);}

*********************

PersonServiceBean.java

********************

package blog.service.impl;import java.util.List;import javax.sql.DataSource;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.transaction.annotation.Transactional;import blog.service.PersonService;import blog.service.bean.Person;@Transactionalpublic class PersonServiceBean implements PersonService {private JdbcTemplate jdbcTemplate;public void setDataSource(DataSource dataSource) {this.jdbcTemplate = new JdbcTemplate(dataSource);}@Overridepublic void delete(Integer personId) {jdbcTemplate.update("delete from person where id = ?", new Object[]{personId},new int[]{java.sql.Types.INTEGER});}@Overridepublic Person getPerson(Integer personId) {Person person =(Person) jdbcTemplate.queryForObject("select * from person where id = ?", new Object[]{personId},new int[]{java.sql.Types.INTEGER}, new PersonRowMapper());return person;}@SuppressWarnings("unchecked")@Overridepublic List<Person> getPersons() {List<Person> persons = jdbcTemplate.query("select * from person", new PersonRowMapper());return persons;}@Overridepublic void save(Person person) {jdbcTemplate.update("insert into person(name) values(?)", new Object[]{person.getName()}, new int[]{java.sql.Types.VARCHAR});}@Overridepublic void update(Person person) {jdbcTemplate.update("update  person set name = ? where id = ?", new Object[]{person.getName(),person.getPersonId()}, new int[]{java.sql.Types.VARCHAR,java.sql.Types.INTEGER});}}

*******************

PersonRowMap.java

*******************

package blog.service.impl;import java.sql.ResultSet;import java.sql.SQLException;import org.springframework.jdbc.core.RowMapper;import blog.service.bean.Person;public class PersonRowMapper implements RowMapper {@Override//if(rs.next())public Object mapRow(ResultSet rs, int rowNum) throws SQLException {Person person = new Person(rs.getString("name"));person.setPersonId(rs.getInt("id"));return person;}}


******************

junittest

******************

package junitTest;import java.util.List;import org.junit.BeforeClass;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import blog.service.PersonService;import blog.service.bean.Person;public class SpringAndJdbc {private static PersonService personService;@BeforeClasspublic static void setUpBeforeClass() throws Exception {try {ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");personService = (PersonService) ctx.getBean("personService");} catch (Exception e) {e.printStackTrace();}}@Testpublic void getBeans() {List<Person> persons = personService.getPersons();for (Person person : persons) {System.out.println(person.getName());}}@Testpublic void save(){Person person = new Person("Alice");person.setPersonId(3);personService.save(person);}@Testpublic void delete(){personService.delete(1);}@Testpublic void getBean(){Person person = personService.getPerson(1);System.out.println(person.getName());}@Testpublic void update(){Person person = new Person("Judy");person.setPersonId(2);personService.update(person);}}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 想玩线上德州没有渠道怎么办 手机玩久了头晕怎么办 玩3d游戏头晕恶心怎么办 win10打cf没声音怎么办 英雄联盟玩家尚未准备就绪怎么办 玩手机想吐应该怎么办 玩手机多了头晕怎么办 玩cf老是无响应怎么办 玩穿越火线好卡怎么办 绝地求生画质卡顿怎么办 手机热点玩lol卡怎么办 一加6直播触手黑屏怎么办 ipad应用商店密码忘记了怎么办 爱派忘记了密码怎么办 爱派id密码忘了怎么办 爱派密码忘了怎么办 爱派的密码忘了怎么办 苹果爱派密码忘了怎么办 鼠标无法识别的usb设备怎么办 电脑鼠标无法识别usb设备怎么办 win7电脑用户密码忘了怎么办 联想win7旗舰版开不了机怎么办 驱动都被卸载了怎么办 电脑密码忘了怎么办w7旗舰版 笔记本电脑密码忘了怎么办w7 windows一键还原了怎么办 戴尔笔记本电脑键盘没反应怎么办 win10电脑系统盘满了怎么办 win7玩dnf卡死怎么办 cf老是卡住闪退怎么办 w7系统帐户被停用怎么办 海康硬盘录像机密码忘了怎么办 电信合约套餐到期后怎么办 电脑更新系统卡住了怎么办 格力空调显示e1怎么办 ae崩溃了没保存怎么办 电脑下面的状态栏没了怎么办 游戏32位不兼容怎么办 电脑开机dos红屏怎么办 win7进入dos红屏怎么办 手机玩游戏屏幕卡住不动怎么办