`
whp0731
  • 浏览: 174880 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring+JDBC集成学习笔记(可参考ppt附件38-46页)

阅读更多

 

 
使用Spring+JDBC集成步骤如下
l
1、配置简单数据源
 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="org.gjt.mm.mysql.Driver"/> 
    <property name="url" value="jdbc:mysql://localhost:3306/itcast?useUnicode=true&amp;characterEncoding=UTF-8"/> 
    <property name="username" value="root"/> 
    <property name="password" value="123456"/> 
     .....略 
  </bean> 
 
l
2配置事务。配置事务时,需要在xml配置文件中引入用于声明事务的tx命名空间(见下页),事务的配置方式有两种:注解方式和基于XML配置方式。
 
在spring配置文件中引入用于声明事务的tx命名空间(红色部分) 
 
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       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/tx http://www.springframework.org/schema/tx/spring-tx-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/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 
</beans>
3配置数据源
 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="org.gjt.mm.mysql.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/itcast?useUnicode=true&amp;characterEncoding=UTF-8"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
     <!-- 连接池启动时的初始值 -->
	 <property name="initialSize" value="1"/>
	 <!-- 连接池的最大值 -->
	 <property name="maxActive" value="500"/>
	 <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
	 <property name="maxIdle" value="2"/>
	 <!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
	 <property name="minIdle" value="1"/>
  </bean>

使用<context:property-placeholder location=“jdbc.properties”/>属性占位符
 4、若使用占位符配置数据源,对3作如下修改
<context:property-placeholder location=“jdbc.properties”/> 
 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
   <property name="driverClassName" value="${driverClassName}"/>
    <property name="url" value="${url}"/>
    <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>
 5、若采用注解方式配置事务如下:
采用注解方式
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  	<property name="dataSource" ref="dataSource"/>
  </bean>
 <!– 采用@Transactional注解方式使用事务  -->
  <tx:annotation-driven transaction-manager="txManager"/>
 
 
@Service @Transactional//事务主要针对方法,若能方法中含多个sql语句,会要没一次性执行完,要么都回滚。不会执行方法上面部分sql,仅回滚下面部分
public class PersonServiceBean implements PersonService {
}
 6、若采用xml方式配置事务如下:
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  	<property name="dataSource" ref="dataSource"/>
</bean>
<aop:config>
  	<aop:pointcut id="transactionPointcut" expression="execution(* cn.itcast.service..*.*(..))"/>
  	<aop:advisor advice-ref="txAdvice" pointcut-ref="transactionPointcut"/>
</aop:config> 
<tx:advice id="txAdvice" transaction-manager="txManager">
	  <tx:attributes>
	    <tx:method name="get*" read-only="true" propagation="NOT_SUPPORTED"/>
	    <tx:method name=“*”/>//默认是开启事务的如:propagation="SUPPORTED”
	  </tx:attributes>
</tx:advice>
7、使用JdbcTemplate进行insert/update/delete操作
@Service @Transactional
public class PersonServiceBean implements PersonService {
	private JdbcTemplate jdbcTemplate;
	@Resource
	public void setDataSource(DataSource dataSource) {
	    this.jdbcTemplate = new JdbcTemplate(dataSource);
	}
    //添加
	public void save(Person person) throws Exception{
		jdbcTemplate.update("insert into person (name) values(?)", 
		new Object[]{person.getName()}, new int[]{java.sql.Types.VARCHAR});//三个参数的含义:1、sql语句2?代表的参数值3参数类型(指sql中的类型,一般每个类型代表一个常量,所以会是一个整型数组)
	}
}
 
8、使用JdbcTemplate获取一条记录
@Service @Transactional
public class PersonServiceBean implements PersonService {
	private JdbcTemplate jdbcTemplate;
	@Resource
	public void setDataSource(DataSource dataSource) {
	    this.jdbcTemplate = new JdbcTemplate(dataSource);
	}
 	public Person getPerson(Integer id){
		RowMapper rowMapper = new RowMapper(){
			public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
				Person person = new Person();
				person.setId(rs.getInt("id"));
				person.setName(rs.getString("name"));
				return person;
			}
		};
		return (Person)jdbcTemplate.queryForObject("select * from person where id=?", 
				new Object[]{id}, new int[]{java.sql.Types.INTEGER}, rowMapper);
	}}
 9、使用JdbcTemplate获取多条记录
@Service @Transactional
public class PersonServiceBean implements PersonService {
	private JdbcTemplate jdbcTemplate;
	@Resource
	public void setDataSource(DataSource dataSource) {
	    this.jdbcTemplate = new JdbcTemplate(dataSource);
	}
	public List<Person> getPersons(){
		RowMapper rowMapper = new RowMapper(){
			public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
				Person person = new Person();
				person.setId(rs.getInt("id"));
				person.setName(rs.getString("name"));
				return person;
			}
		};
		return jdbcTemplate.query("select * from person", rowMapper);
	}
}
 
分享到:
评论

相关推荐

    韩顺平spring笔记及PPT资料

    《韩顺平Spring笔记及PPT资料》是一份详尽且深入的学习资源,由知名IT教育专家韩顺平老师精心编制。这份资料旨在帮助学习者掌握Spring框架的核心概念和技术,以便在实际开发中灵活运用。Spring是Java企业级应用开发...

    传智播客2016版hibernate+struts2+Spring框架资料课件+笔记

    学习Struts2,你需要理解Action、Result、Interceptor等核心组件,以及Struts2与Spring的集成。通过实际操作,你可以学会如何创建动态网页,处理用户请求,并实现业务逻辑与视图的解耦。 三、Spring框架 Spring是...

    java,jsp,jdbc自学所用笔记和ppt

    本资源包包含了用于自学这些技术的笔记和PPT,对于初学者和进阶者都是宝贵的参考资料。 1. **Java**: Java是一种面向对象的编程语言,以其“一次编写,到处运行”的特性闻名。它具有丰富的类库,适用于各种应用领域...

    达内,tarena,spring笔记,springPPT课件,达内spring笔记

    达内教育(Tarena)作为知名的IT培训机构,提供了这套Spring的学习资料,包括笔记和PPT课件,旨在帮助学员全面掌握Spring的核心概念和技术。 Spring笔记可能涵盖了以下内容: 1. **IoC(Inversion of Control)容器...

    传智播客2016spring资料4

    6. **Spring的数据访问**:可能涵盖了JDBC模板、Hibernate或MyBatis集成,以及事务管理策略。 7. **Spring的单元测试**:讲解如何利用Spring Test框架进行单元测试,提高代码质量。 8. **Spring Boot**:如果是较...

    Java JDK 6学习笔记——ppt简体版

    Java JDK 6学习笔记是Java初学者入门的重要参考资料,它以PPT的形式提供了一种直观易懂的学习途径。这份笔记涵盖了Java编程语言的基础知识,帮助读者掌握Java的核心概念和技术。 首先,Java JDK(Java Development ...

    北京圣思园Java.Web培训视频-PPT+笔记 整理版

    此文档的整理版,结合了PPT内容和笔记,为学习者提供了一个全面的知识体系。通过系统地学习这些知识点,学习者能够建立起扎实的Java Web开发基础,为后续的深入学习和项目开发打下坚实的基础。在学习过程中,理解每...

    Java Web ppt 开发 J2SE 学习笔记

    Java Web ppt 开发和J2SE学习笔记涵盖了Java编程的基础以及如何将其应用于Web应用程序的开发。J2SE,即Java 2 Platform, Standard Edition,是Java平台的核心部分,提供了用于开发和运行桌面应用、服务器端应用和...

    传智播客 spring框架2016版资料

    Spring框架是Java开发中广泛应用的一个开源框架,以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程...在实际学习过程中,应结合PPT和笔记,逐步掌握每个知识点,并通过实际项目练习巩固技能。

    Spring2.5

    通过阅读《spring2.5+学习笔记.doc》和《黎活明__spring教程.ppt》以及《黎活明_struts2教程.ppt》,你可以更深入地了解Spring 2.5与Struts2的整合,以及在实际项目中如何有效地利用这些知识。尽管Spring框架已经...

    传智播客ppt集锦

    传智播客JDBC_所有源码与ppt Java培训教程教学课件 传智播客SCM手把手开发文档 传智播客内部数据库教学资料及上课笔记 张孝祥javaweb高级PPT 张孝祥JavaWEB课堂PPT AJAX技术入门.ppt itcast_hibernate.ppt itcast_...

    ibatis大全

    4. **Struts2.0+Spring+Ibatis讲义-20110304.ppt**:可能是一个教学或研讨会的幻灯片,提供了直观的视觉辅助,帮助理解三者整合的架构和设计模式。 5. **struts2+spring2+ibatis2整合.txt**:可能是整合过程中的...

    想做工程师的伙伴给我冲冲冲!!!不仅含干货满满的学习资源,还有大佬整理的学习笔记,用最棒的资料,做最有发展前景的工作!!!

    压缩包子文件的文件名称列表中提到了“spring学习资料(11张)”,这可能意味着包含了11个与Spring相关的学习材料,可能是PDF文档、PPT演示、图片教程或者是代码示例等。这样的资源通常会涵盖Spring的基本概念、核心...

    北大青鸟ACCP6.0 第三学期 Y2 JAVA方向 spring框架

    这个压缩包可能包含了一系列关于Spring基础的教程资料,如PPT、笔记、代码示例等,这些资料将逐步引导学员了解Spring的以下几个关键部分: 1. **Spring核心**:包括Bean的生命周期管理、配置文件解析、注解驱动的...

    SpingMVC&JDBC

    - `springMVC-note-任亮.doc`可能是一个关于SpringMVC的文档,包含了详细的学习笔记或教程。 - `jquery-1.6.2.js`是jQuery库的一个旧版本,常用于处理DOM操作和AJAX请求,与SpringMVC配合可以增强用户体验。 - `...

    传智播客ppt

    传智播客JDBC_所有源码与ppt Java培训教程教学课件 传智播客SCM手把手开发文档 传智播客内部数据库教学资料及上课笔记 张孝祥javaweb高级PPT 张孝祥JavaWEB课堂PPT AJAX技术入门.ppt itcast_hibernate.ppt itcast_...

    Workshop-spring-20210215

    3. **PPT或笔记**:可能包含讲义、幻灯片,用于解释概念和技术。 4. **配置文件**:如`application.properties`或`application.yml`,展示Spring的配置方式。 5. **测试文件**:如JUnit测试,演示如何进行单元测试和...

    j2ee资料

    【标题】"j2EE资料"所涵盖的知识点主要集中在Java企业...通过学习这些文档,开发者可以全面了解j2EE体系,包括基础的Java编程、Web框架的使用、数据库操作以及前端技术,从而具备开发高效、可维护的企业级应用的能力。

Global site tag (gtag.js) - Google Analytics