实体类:

public class User implements Serializable{
private Integer id;
private String username;
private String password;
public Integer getId() {
return id;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public void setId(Integer id) {
this.id = id;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
}

UserDao接口

public interface UserDao {
/**
* 增加用户
*/
Integer addUser(User user); /**
* 修改用户信息
*/
Integer updateUser(User user); /**
* 查询用户
*/
List<User> findAll();
}

UserDaoImpl实现类

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

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

@Repository(value="userDaoImpl")
public class UserDaoImpl implements UserDao{
/**
* 添加用户
*/
@Resource(name="jt")
private JdbcTemplate jt;
@Override
public Integer addUser(User user) {
//获取连接数据
Object obj[] = {user.getUsername()};
return jt.update("insert into user values(null,?)",obj);
} @Override
public Integer updateUser(User user) {
Object obj[] = {user.getUsername()};
return jt.update("update user set username=?",obj);
} @Override
public List<User> findAll() {
return jt.query("select * from user",new RowMapper<User>() {
@Override
public User mapRow(ResultSet rs, int arg1) throws SQLException {
User user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
return user;
}
});
} }

测试类:

@Test
public void Test2() {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//ComboPooledDataSource spd = (ComboPooledDataSource) ac.getBean("cpd"); UserDao ud = (UserDaoImpl) ac.getBean("userDaoImpl");
List<User> list = ud.findAll();
for (User user : list) {
System.out.println(user);
}
}

applicationContext.xml配置文件:

<!-- 使用注解实现 -->
  <!--创建c3p0对象-->
<bean id="cpd" class=" com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/myuser"></property>
<property name="user" value="root"></property>
<property name="password" value="123456"></property>
</bean>
  <!--创建jdbcTemplate对象-->
<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="DataSource" ref="cpd"></property>
</bean>
  <!--开启注解扫描-->
<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. Lucene的步骤

    // 1. 采集数据 BookDao bookDao = new BookDaoImpl(); List<Book> bookList = bookDao.queryBookList(); ...

  2. Parameter setting for Jemeter Post method

    1. create CSV file note: the first line is parameter name 2. Add Controller Edit >Add >Logic C ...

  3. herizai_CD2所做答案

    //herizai_CD1第一题 #include<iostream> #include<iomanip> using namespace std; void print1(i ...

  4. windows10驱动精灵装完驱动后重启一直诊断修复中。。。完美解决

    给公司电脑重装完系统后安装惯例开始打驱动,用的是驱动精灵,一切顺利,安装完成后重启,结果出问题,正在诊断我的电脑,无法诊断 然后我进入疑难解答 高级选项--启动设置 然后按7禁用驱动签名,成功进入系统 ...

  5. java_第一年_JavaWeb(11)

    自定义标签:主要是用来移除JSP页面中的java代码. 先从一个简单的案例了解其怎么移除代码: 一个正常的jsp页面: <%@ page language="java" pa ...

  6. Greg and Array CodeForces 296C 差分数组

    Greg and Array CodeForces 296C 差分数组 题意 是说有n个数,m种操作,这m种操作就是让一段区间内的数增加或则减少,然后有k种控制,这k种控制是说让m种操作中的一段区域内 ...

  7. Excel VBA 判断工作表是否为空或被使用过(比如设置过框线)

    IsEmpty 函数 返回 Boolean 值,指出变量是否已经初始化. [语法] IsEmpty(expression) 必要的 expression 参数是一个 Variant,包含一个数值或字符 ...

  8. 电路维修 (广搜变形-双端队列bfs)

    # 2632. 「BalticOI 2011 Day1」打开灯泡 Switch the Lamp On [题目描述] 有一种正方形的电路元件,在它的两组相对顶点中,有一组会用导线连接起来,另一组则不会 ...

  9. Neo4j : 通过节点的 id属性 对节点进行查,改,删操作

    1. "查"操作 , 查找 id 属性 为 501的节点: MATCH (r) WHERE id(r) = 501 RETURN r 2. "改"操作, 更改 ...

  10. 成为k8s大佬,从这个操作开始(伪) - 程序员学点xx 42 k8s

    目录 Kubernetes -2- 这是yann的第97篇分享 本日状态: ​ 饿着肚子写公众号的 yann 同学. 第 1 部分 反省 昨天的内容被熊哥批评了. 熊哥说,「你光想着自己爽,一句我认为 ...