首先,数据库是这样的,很简单。

当然,要引入spring的包,这里我全部导入了,省事。

applicationContext.xml是这样的:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="
  5. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  6. <bean id="test" class="jdbc.Test">
  7. <property name="dataSource" ref="dataSource"></property>
  8. </bean>
  9. <bean id="dataSource"
  10. class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  11. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  12. <property name="url" value="jdbc:mysql://localhost:3306/testspring" />
  13. <property name="username" value="root" />
  14. <property name="password" value="" />
  15. </bean>
  16. </beans>

User.Java是这样的:

  1. package jdbc;
  2. public class User {
  3. private int id;
  4. private String name;
  5. private String password;
  6. public int getId() {
  7. return id;
  8. }
  9. public void setId(int id) {
  10. this.id = id;
  11. }
  12. public String getName() {
  13. return name;
  14. }
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18. public String getPassword() {
  19. return password;
  20. }
  21. public void setPassword(String password) {
  22. this.password = password;
  23. }
  24. }

下面来对比一下三种写法:

1、spring

  1. package jdbc;
  2. import java.sql.Connection;
  3. import java.sql.PreparedStatement;
  4. import java.sql.SQLException;
  5. import javax.sql.DataSource;
  6. import org.springframework.context.ApplicationContext;
  7. import org.springframework.context.support.ClassPathXmlApplicationContext;
  8. public class Test {
  9. private DataSource dataSource;
  10. public void setDataSource(DataSource dataSource) {
  11. this.dataSource = dataSource;
  12. }
  13. public void insert(User u) {
  14. String sql = "insert into _user " + "values(null, ?, ?)";//普通的sql语句
  15. Connection conn = null;
  16. try {
  17. conn = dataSource.getConnection();
  18. PreparedStatement ps = conn.prepareStatement(sql);
  19. ps.setString(1, u.getName());
  20. ps.setString(2, u.getPassword());
  21. ps.executeUpdate();
  22. ps.close();
  23. } catch (SQLException e) {
  24. throw new RuntimeException(e);
  25. } finally {
  26. if (conn != null) {
  27. try {
  28. conn.close();
  29. } catch (SQLException e) {
  30. }
  31. }
  32. }
  33. }
  34. public static void main(String[] args) {
  35. ApplicationContext ctx = new ClassPathXmlApplicationContext(
  36. "applicationContext.xml");
  37. Test t = (Test) ctx.getBean("test");
  38. User u = new User();
  39. u.setName("dd");
  40. u.setPassword("dd");
  41. t.insert(u);
  42. }
  43. }

运行结果是这样的:

2、JdbcTemplate

  1. package jdbc;
  2. import java.sql.Connection;
  3. import java.sql.PreparedStatement;
  4. import java.sql.SQLException;
  5. import javax.sql.DataSource;
  6. import org.springframework.context.ApplicationContext;
  7. import org.springframework.context.support.ClassPathXmlApplicationContext;
  8. import org.springframework.jdbc.core.JdbcTemplate;
  9. public class Test {
  10. private DataSource dataSource;
  11. public void setDataSource(DataSource dataSource) {
  12. this.dataSource = dataSource;
  13. }
  14. public void insert(User u) {
  15. String sql = "insert into _user " + "values(null, ?, ?)";//普通的sql语句
  16. JdbcTemplate template = new JdbcTemplate(dataSource);
  17. template.update(sql, new Object[]{u.getName(), u.getPassword()});
  18. }
  19. public static void main(String[] args) {
  20. ApplicationContext ctx = new ClassPathXmlApplicationContext(
  21. "applicationContext.xml");
  22. Test t = (Test) ctx.getBean("test");
  23. User u = new User();
  24. u.setName("dd");
  25. u.setPassword("dd");
  26. t.insert(u);
  27. }
  28. }

可以看得出简单了很多,不用Connection了。

3、JdbcDaoSupport

这个更简单,不用new JdbcTemplate了。

  1. package jdbc;
  2. import org.springframework.context.ApplicationContext;
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;
  4. import org.springframework.jdbc.core.support.JdbcDaoSupport;
  5. public class Test extends JdbcDaoSupport {
  6. //JdbcDaoSupport类已经有了public final void setDataSource(DataSource dataSource)了
  7. //不用重写也不能重写
  8. public void insert(User u) {
  9. String sql = "insert into _user " + "values(null, ?, ?)";//普通的sql语句
  10. this.getJdbcTemplate().update(sql, new Object[]{u.getName(), u.getPassword()});
  11. }
  12. public static void main(String[] args) {
  13. ApplicationContext ctx = new ClassPathXmlApplicationContext(
  14. "applicationContext.xml");
  15. Test t = (Test) ctx.getBean("test");
  16. User u = new User();
  17. u.setName("dd");
  18. u.setPassword("dd");
  19. t.insert(u);
  20. }
  21. }

Spring JdbcTemplate+JdbcDaoSupport实例(和比较)的更多相关文章

  1. ref:Spring JdbcTemplate+JdbcDaoSupport实例

    ref:https://www.yiibai.com/spring/spring-jdbctemplate-jdbcdaosupport-examples.html 在Spring JDBC开发中,可 ...

  2. Spring JdbcTemplate+JdbcDaoSupport实例

    在Spring JDBC开发中,可以使用 JdbcTemplate 和 JdbcDaoSupport 类来简化整个数据库的操作过程. 在本教程中,我们将重复上一篇文章Spring+JDBC例子,看之前 ...

  3. Spring + JdbcTemplate + JdbcDaoSupport examples

    In Spring JDBC development, you can use JdbcTemplate and JdbcDaoSupport classes to simplify the over ...

  4. Spring JdbcTemplate batchUpdate() 实例

    在某些情况下,可能需要将一批记录插入到数据库中.如果你对每条记录调用一个插件的方法,SQL语句将被重复编译,造成系统缓慢进行. 在上述情况下,你可以使用 JdbcTemplate BATCHUPDAT ...

  5. Spring JdbcTemplate查询实例

    这里有几个例子向您展示如何使用JdbcTemplate的query()方法来查询或从数据库提取数据.整个项目的目录结构如下: 1.查询单行数据 这里有两种方法来查询或从数据库中提取单行记录,并将其转换 ...

  6. 【Spring】Spring的数据库开发 - 1、Spring JDBC的配置和Spring JdbcTemplate的解析

    Spring JDBC 文章目录 Spring JDBC Spring JdbcTemplate的解析 Spring JDBC的配置 简单记录-Java EE企业级应用开发教程(Spring+Spri ...

  7. Spring JdbcTemplate 的使用与学习(转)

    紧接上一篇 (JdbcTemplate是线程安全的,因此可以配置一个简单的JdbcTemplate实例,将这个共享的实例注入到多个DAO类中.辅助的文档) Spring DAO支持 http://ww ...

  8. 使用Spring JDBCTemplate简化JDBC的操作

    使用Spring JDBCTemplate简化JDBC的操作 接触过JAVA WEB开发的朋友肯定都知道Hibernate框架,虽然不否定它的强大之处,但个人对它一直无感,总感觉不够灵活,太过臃肿了. ...

  9. JAVA入门[18]-JdbcTemplate简单实例

    一.关于JdbcTemplate JdbcTemplate是最基本的Spring JDBC模板,这个模板支持简单的JDBC数据库访问功能以及基于索引参数的查询. Spring数据访问模板:在数据库操作 ...

随机推荐

  1. android 电池(三):android电池系统【转】

    本文转载自:http://blog.csdn.net/xubin341719/article/details/8709838 一.电池系统结构 Android中的电池使用方式主要有三种:AC.USB. ...

  2. 《机器学习实战》学习笔记第十四章 —— 利用SVD简化数据

    相关博客: 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA) <机器学习实战>学习笔记第十三章 —— 利用PCA来简化数据 奇异值分解(SVD)原理与在降维中的应用 机器学习( ...

  3. 使用mongify将sqlserver数据导入到mongodb

    最近需要将sqlserver数据导入到mongodb中,在github上搜了一圈,发现两个项目有点适合 mongify sql2mongodb 先试了下sql2mongodb(有个好名字果然有好处啊) ...

  4. 如何在unigui中用代码展开一棵树?

    procedure expandtree(tree:tunitreeview);begin   UniSession.AddJS('setTimeout("' + Tree1.JSName ...

  5. 机器学习——支持向量机(SVM)

    机器学习--支持向量机(SVM) 支持向量机(Support Vector Machine)广泛地应用于分类问题,回归问题和异常检测问题.支持向量机一个很好的性质是其与凸优化问题相对应,局部最优解就是 ...

  6. Guid 使用记录

    Guid 使用记录; Guid 数据不能设为null 用 00000000-0000-0000-0000-000000000000 代替默认值. 实体新建时,可以赋值为 Guid.Empty 也就是 ...

  7. 分享知识-快乐自己:PageHelper 分页关键基础代码

    关键代码:点我下载样式   详细介绍 //使用分页插件 jQuery("#pagination").pagination(data.total, { items_per_page: ...

  8. C++(二)— STL容器的基本用法

    1.vector基本操作 关于vector简单的讲就是一个动态增长的数组,里面有一个指针指向一片连续的内存空间,当空间装不下的时候会自动申请一片更大的空间(空间配置器)将原来的数据拷贝到新的空间,然后 ...

  9. jQuery 事件 - one() 方法

    jQuery 事件参考手册 实例 当点击 p 元素时,增加该元素的文本大小: $("p").one("click",function(){ $(this).an ...

  10. 唐诗掠影:基于词移距离(Word Mover's Distance)的唐诗诗句匹配实践

    词移距离(Word Mover's Distance)是在词向量的基础上发展而来的用来衡量文档相似性的度量.   词移距离的具体介绍参考http://blog.csdn.net/qrlhl/artic ...