实体类:

  1. public class User implements Serializable{
  2. private Integer id;
  3. private String username;
  4. private String password;
  5. public Integer getId() {
  6. return id;
  7. }
  8. public String getUsername() {
  9. return username;
  10. }
  11. public String getPassword() {
  12. return password;
  13. }
  14. public void setId(Integer id) {
  15. this.id = id;
  16. }
  17. public void setUsername(String username) {
  18. this.username = username;
  19. }
  20. public void setPassword(String password) {
  21. this.password = password;
  22. }
  23. @Override
  24. public String toString() {
  25. return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
  26. }
  27. }

UserDao接口

  1. public interface UserDao {
  2. /**
  3. * 增加用户
  4. */
  5. Integer addUser(User user);
  6.  
  7. /**
  8. * 修改用户信息
  9. */
  10. Integer updateUser(User user);
  11.  
  12. /**
  13. * 查询用户
  14. */
  15. List<User> findAll();
  16. }

UserDaoImpl实现类

JdbcTemplate提供一种更简单的方式“update(String sql, Object... args)”来实现设值!

RowMapper接口提供mapRow(ResultSet rs, int rowNum)方法来获取数据库得到的结果集

  1. @Repository(value="userDaoImpl")
  2. public class UserDaoImpl implements UserDao{
  3. /**
  4. * 添加用户
  5. */
  6. @Resource(name="jt")
  7. private JdbcTemplate jt;
  8. @Override
  9. public Integer addUser(User user) {
  10. //获取连接数据
  11. Object obj[] = {user.getUsername()};
  12. return jt.update("insert into user values(null,?)",obj);
  13. }
  14.  
  15. @Override
  16. public Integer updateUser(User user) {
  17. Object obj[] = {user.getUsername()};
  18. return jt.update("update user set username=?",obj);
  19. }
  20.  
  21. @Override
  22. public List<User> findAll() {
  23. return jt.query("select * from user",new RowMapper<User>() {
  24. @Override
  25. public User mapRow(ResultSet rs, int arg1) throws SQLException {
  26. User user = new User();
  27. user.setUsername(rs.getString("username"));
  28. user.setPassword(rs.getString("password"));
  29. return user;
  30. }
  31. });
  32. }
  33.  
  34. }

测试类:

  1. @Test
  2. public void Test2() {
  3. ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
  4. //ComboPooledDataSource spd = (ComboPooledDataSource) ac.getBean("cpd");
  5.  
  6. UserDao ud = (UserDaoImpl) ac.getBean("userDaoImpl");
  7. List<User> list = ud.findAll();
  8. for (User user : list) {
  9. System.out.println(user);
  10. }
  11. }

applicationContext.xml配置文件:

  1. <!-- 使用注解实现 -->
      <!--创建c3p0对象-->
  2. <bean id="cpd" class=" com.mchange.v2.c3p0.ComboPooledDataSource">
  3. <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
  4. <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/myuser"></property>
  5. <property name="user" value="root"></property>
  6. <property name="password" value="123456"></property>
  7. </bean>
      <!--创建jdbcTemplate对象-->
  8. <bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
  9. <property name="DataSource" ref="cpd"></property>
  10. </bean>
      <!--开启注解扫描-->
  11. <context:component-scan base-package="com.spring"></context:component-scan>

简单Spring整合JdbcTemplate的更多相关文章

  1. Spring整合JDBC实现简单的增删改

    Spring整合JDBC实现简单的增删改: 1.导入Spring的包和数据库的驱动包: 2.选择一个数据源(dbcp和C3P0) 3.导入数据源的包(这里我们使用dbcp) <span styl ...

  2. Spring Boot2 系列教程(二十)Spring Boot 整合JdbcTemplate 多数据源

    多数据源配置也算是一个常见的开发需求,Spring 和 SpringBoot 中,对此都有相应的解决方案,不过一般来说,如果有多数据源的需求,我还是建议首选分布式数据库中间件 MyCat 去解决相关问 ...

  3. 简单探讨spring整合mybatis时sqlSession不需要释放关闭的问题

    https://blog.csdn.net/RicardoDing/article/details/79899686 近期,在使用spring和mybatis框架编写代码时,sqlSession不需要 ...

  4. Spring的jdbcTemplate 与原始jdbc 整合c3p0的DBUtils 及Hibernate 对比 Spring配置文件生成约束的菜单方法

    以User为操作对象 package com.swift.jdbc; public class User { private Long user_id; private String user_cod ...

  5. Spring Boot:整合JdbcTemplate

    综合概述 Spring对数据库的操作在jdbc上面做了更深层次的封装,而JdbcTemplate便是Spring提供的一个操作数据库的便捷工具.我们可以借助JdbcTemplate来执行所有数据库操作 ...

  6. spring整合apache-shiro的简单使用

    这里不对shiro进行介绍,介绍什么的没有意义 初学初用,不求甚解,简单使用 一.导入jar包(引入坐标) <!--shiro和spring整合--> <dependency> ...

  7. 手写Mybatis和Spring整合简单版示例窥探Spring的强大扩展能力

    Spring 扩展点 **本人博客网站 **IT小神 www.itxiaoshen.com 官网地址****:https://spring.io/projects/spring-framework T ...

  8. hessian的简单使用以及与spring整合

    Hessian是一个由Caucho Technology开发的轻量级二进制RPC协议.和其他Web服务的实现框架不同的是,Hessian是一个使用二进制格式传输的Web服务协议的框架,相对传统soap ...

  9. Spring整合strus2简单应用总结

    本身strus2没接触过,所以这块学的一知半解,正常不整合的还没学(接着学) step: 1.创建web工程 2.在/WEB-INF/lib引入jar包 asm-3.3.jarasm-commons- ...

随机推荐

  1. Learn Python the hard way, ex41 来自Percal 25 号星星的哥顿人

    我承认,我偷懒了,少打了大量代码(剧情),英文太差,下次可以编个中文的试试 #!/urs/bin/python #coding:utf-8 from sys import exit from rand ...

  2. vue 组件传参

    路由配好了 再传个参呗 注:组件信息流转的时候只能单向1 > 父子传参传参:通过属性prop:传递数据 a.父组件传参给子组件 子组件: <ul> <li v-for=&quo ...

  3. oracle--少见操作、如何调整dos窗口大小、字符集设置

    如何调整dos窗口大小 1.set linesize 400; 2.右键 --默认值 断开.连接 disconn ; conn ww/ww; 关于字符集 操作系统环境变量针对语言项设置有几个,我经常设 ...

  4. python之cmd模块

    md模块可以用来做交互式shell cmd模块是python中包含的一个公共模块,用于交互式shell和其他命令解释器等的基类,我们可以基于cmd模块自定义我们的子类,实现我们自己的交互式shell ...

  5. Java中数据类型的分类

    我们知道Java是强类型语言,那么肯定对应的也就有弱类型语言,以下介绍强类型语言与弱类型语言的区别: 强类型语言: 强类型语言也就是强制数据类型定义的语言.也就是说,一旦一个变量被指定了某个数据类型, ...

  6. BZOJ 4552(二分+线段树+思维)

    题面 传送门 分析 此题是道好题! 首先要跳出思维定势,不是去想如何用数据结构去直接维护排序过程,而是尝试二分a[p]的值 设二分a[p]的值为x 我们将大于x的数标记为1,小于等于x的数标记为0 则 ...

  7. Vue slot-scope的理解(适合初学者)

    百度上已经有很多的关于slot-scope的文章,但我感觉都是那些以前没学好,又回头学的人,他们都使用了.Vue文件,我觉得有点不适合初学者,所以我就写一篇适合初学者的. 先抛例程: <!DOC ...

  8. HashMap对象转换为JavaBean对象

    问题: 在日常代码中,使用 spring包中的 BeanUtils.copyProperties(source,target),可以将A对象的属性复制到B对象中,但是有个问题 无法将HashMap中的 ...

  9. 实体模型集合对象转换为VO对象集合

    例如: 数据库中查出来的数据为 List<RptDayMonthTarget> List<RptDayMonthTarget> list = targetService.sel ...

  10. Linux延时执行命令at

    也许你的Ubuntu没有at命令,先安装 - sudo apt install at 在某时刻执行命令 - at 15:30:回车之后,需要在at后输入指令,表示在15:30要执行的指令 - 比如输入 ...