Spring 的JDBC模板

(一)Spring 其实提供了很多的持久化技术的模板类简化编程。
包括:
– JDBC
– Hibernate3.0
– IBatis(MyBatis)
– JPA

今天主要讲一下JDBC模板

(二)实战

  1. 在mysql中创建student表

             包括id  name   age属性
    

    2.Maven依赖的引入

       所需maven依赖如下
    
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>groupId</groupId><artifactId>hello</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.18.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.18.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-tx --><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.3.18.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp --><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency><!-- https://mvnrepository.com/artifact/commons-pool/commons-pool --><dependency><groupId>commons-pool</groupId><artifactId>commons-pool</artifactId><version>1.6</version></dependency><!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency></dependencies>
</project>

3.

Student.java文件

public class Student {private Integer age;private String name;private Integer id;......}

StudentMapper.java

public class StudentMapper  implements RowMapper<Student> {public Student mapRow(ResultSet resultSet, int i) throws SQLException {Student st=new Student();st.setId(resultSet.getInt("Id"));st.setName(resultSet.getString("name"));st.setAge(resultSet.getInt("age"));return st;}
}

StudentService.java

public interface StudentService {public void setDataSource(DataSource ds);public void create(String name, Integer age);public Student getStudent(Integer id);public List<Student> listStudents();public void delete(Integer id);public void update(Integer id, Integer age);
}

StudentJDBCTemplate.java

public class StudentJDBCTemplate implements StudentService {private DataSource dataSource;private JdbcTemplate jdbcTemplateObject;public void setDataSource(DataSource dataSource) {this.dataSource = dataSource;this.jdbcTemplateObject = new JdbcTemplate(dataSource);}public void create(String name, Integer age) {String SQL = "insert into Student (name, age) values (?, ?)";jdbcTemplateObject.update( SQL, name, age);System.out.println("Created Record Name = " + name + " Age = " + age);return;}public Student getStudent(Integer id) {String SQL = "select * from Student where id = ?";Student student = jdbcTemplateObject.queryForObject(SQL,new Object[]{id}, new StudentMapper());return student;}public List<Student> listStudents() {String SQL = "select * from Student";List <Student> students = jdbcTemplateObject.query(SQL,new StudentMapper());return students;}public void delete(Integer id) {String SQL = "delete from Student where id = ?";jdbcTemplateObject.update(SQL, id);System.out.println("Deleted Record with ID = " + id );return;}public void update(Integer id, Integer age) {String SQL = "update Student set age = ? where id = ?";jdbcTemplateObject.update(SQL, age, id);System.out.println("Updated Record with ID = " + id );return;}
}

MainApp.java测试文件

public class MainApp {public static void main(String[] args) {ApplicationContext context =new ClassPathXmlApplicationContext("beans.xml");StudentJDBCTemplate studentJDBCTemplate =(StudentJDBCTemplate)context.getBean("studentJDBCTemplate");System.out.println("------Records Creation--------" );studentJDBCTemplate.create("Zara", 11);studentJDBCTemplate.create("Nuha", 2);studentJDBCTemplate.create("Ayan", 15);System.out.println("------Listing Multiple Records--------" );List<Student> students = studentJDBCTemplate.listStudents();for (Student record : students) {System.out.print("ID : " + record.getId() );System.out.print(", Name : " + record.getName() );System.out.println(", Age : " + record.getAge());}System.out.println("----Updating Record with ID = 2 -----" );studentJDBCTemplate.update(2, 20);System.out.println("----Listing Record with ID = 2 -----" );Student student = studentJDBCTemplate.getStudent(2);System.out.print("ID : " + student.getId() );System.out.print(", Name : " + student.getName() );System.out.println(", Age : " + student.getAge());}
}

4.配置文件的编写

    提供几种方式,具体如下:
<?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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.3.xsd
"><context:component-scan base-package="com.txp.dao"/><!--配置Spring的内接连接池--><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql:///mybatis"/><property name="username" value="root"/><property name="password" value="root"/></bean><!--配置DBCP连接池--><bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql:///mybatis"/><property name="username" value="root"/><property name="password" value="root"/></bean><!--配置DBCP连接池--><bean id="dataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql:///mybatis"/><property name="user" value="root"/><property name="password" value="root"/></bean><!--引入外部文件的方式:一--><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="classpath:jdbc.properties"/></bean><!--引入外部文件的方式:二--><context:property-placeholder location="classpath:jdbc.properties"/><!--配置JDBC模板--><bean id="studentJDBCTemplate" class="com.txp.dao.StudentJDBCTemplate"><property name="dataSource" ref="dataSource"/></bean>
</beans> 

jdbc.properties文件内容

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis
jdbc.username=root
jdbc.password=root

最后的结果

转载于:https://www.cnblogs.com/tongxupeng/p/10259538.html

Spring入门(三)相关推荐

  1. Spring入门(四):使用Maven管理Spring项目

    让我们先回顾下本系列的前3篇博客: Spring入门(一):创建Spring项目 Spring入门(二):自动化装配bean Spring入门(三):通过JavaConfig装配bean 1.为什么要 ...

  2. Spring入门详细教程(三)

    前言 本篇紧接着spring入门详细教程(二),建议阅读本篇前,先阅读第一篇和第二篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/101 ...

  3. spring入门详细教程(五)

    前言 本篇紧接着spring入门详细教程(三),建议阅读本篇前,先阅读第一篇,第二篇以及第三篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/ ...

  4. Spring入门详细教程(四)

    前言 本篇紧接着spring入门详细教程(三),建议阅读本篇前,先阅读第一篇,第二篇以及第三篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/ ...

  5. Spring入门详细教程(二)

    前言 本篇紧接着spring入门详细教程(一),建议阅读本篇前,先阅读第一篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/1016553 ...

  6. Spring入门介绍:

    Spring入门介绍 Spring诞生: 创建Spring的目的就是用来替代更加重量级的的企业级Java技术 简化Java的开发 基于POJO轻量级和最小侵入式开发 通过依赖注入和面向接口实现松耦合 ...

  7. Spring入门5.事务管理机制

    Spring入门5.事务管理机制 20131126 代码下载 : 链接: http://pan.baidu.com/s/1kYc6c 密码: 233t 回顾之前的知识,Spring 最为核心的两个部分 ...

  8. Spring入门示例及相关概念介绍

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Spri ...

  9. spring入门总结

    spring入门总结 一.spring介绍 1.spring是什么 2.理念: 3.Spring优点: 4.缺点 5.主要内容: 二.IOC&DI 1.使用IOC创建对象的三种方法 a.无参构 ...

  10. Spring入门学习手册 1:最简单的反转控制

    Spring入门学习手册 1:最简单的反转控制 一.什么是Javabean 看到的一个比较专业的解释是: JavaBean定义了一组规则 JavaBean就是遵循此规则的平常的Java对象 JavaB ...

最新文章

  1. linux 中如何将文件粘贴到usr下的lib内,学会在Linux下GCC生成和使用静态库和动态库...
  2. 关于oracle spfile配置文件问题
  3. Win32 窗口篇(1)
  4. 配置ADB到Windows环境变量
  5. 学习java的中文网站_学习java的网站有哪些
  6. PAT_B_1017_Java(20分)
  7. Element UI table组件源码分析
  8. 前端路由跳转丢失端口号_如何在应用架构中设计微前端方案 icestark
  9. python爬虫的时候要用的url修改方法总结
  10. 时延与传输速率、带宽延时
  11. python配置文件读取环境变量_转载:Python项目读取配置的几种方式
  12. 微信小程序跳转微信小程序的实现
  13. 用windbg调试程序与windbg命令的使用
  14. 深入浅出Python的抽象基类
  15. 万网域名怎么做解析教程图解
  16. ORACLE归档日志增大的原因
  17. 1024,身为程序员的我们更应该思考如何放慢脚步
  18. 码码在线考勤系统笔记(三)
  19. SpringBoot 使用 Thymeleaf 如何发送带模板的Email邮件
  20. JQuery实现动态漂浮广告

热门文章

  1. java语言的演化——读JavaOne ppt笔记
  2. Ubuntu source insight3稳定性
  3. 类型事务修改 mysql 表类型 实际测试可执行
  4. mysql 新增字段 添加字段 删除字段 修改字段 级联删除 级联更新 等
  5. 《Beginning Linux Programming》读书笔记(一)
  6. 在小榕的论坛看的一篇关于DOS批处理命令的文章
  7. http://blog.csdn.net/evankaka/article/details/45155047
  8. Spark源码系列(一)spark-submit提交作业过程
  9. 基于Spark UI性能优化与调试——初级篇
  10. inux下切换到root权限有以下几种方式