2017-11-11 21:13:13

Spring 框架中提供了对持久层技术支持的类 :

  • JDBC : org.springframework.jdbc.core.support.JdbcDaoSupport
  • Hibernate 3.0 : org.springframework.orm.hibernate3.support.HibernateDaoSupport
  • iBatis : org.springframework.orm.ibatis.support.SqlMapClientDaoSupport

增加,删除和修改的操作还是比较容易的,因为,并不需要有返回值。

增加,删除和修改的代码:

// User
public class User {
private Integer id;
private String name; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
} // UserDao
public class UserDao extends JdbcDaoSupport { public void add(User user){
String sql = "insert into user values(?,?)";
getJdbcTemplate().update(sql,user.getId(),user.getName());
} public void delete(User user){
String sql = "delete from user where id=?";
getJdbcTemplate().update(sql, user.getId());
} public void update(User user){
String sql = "update user set name=? where id=?";
getJdbcTemplate().update(sql, user.getName(), user.getId());
} } // 测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:config4.xml")
public class Jdbc3 { @Resource(name = "userdao")
private UserDao userdao; @Test
public void demo(){
User user= new User();
user.setName("刘亦菲");
user.setId(001); // userdao.add(user); //user.setName("胡歌");
//userdao.update(user); userdao.delete(user);
}
}

查找操作是相对比较麻烦的,因为这里一般是有返回值的。

针对返回值为基本类型的,可以比较方便的进行转换;

针对返回值是对象的,需要自定义转换方法;

查询代码:

// UserDao
public class UserDao extends JdbcDaoSupport { public void add(User user){
String sql = "insert into user values(?,?)";
getJdbcTemplate().update(sql,user.getId(),user.getName());
} public void delete(User user){
String sql = "delete from user where id=?";
getJdbcTemplate().update(sql, user.getId());
} public void update(User user){
String sql = "update user set name=? where id=?";
getJdbcTemplate().update(sql, user.getName(), user.getId());
} public int findCount(){
String sql = "select count(*) from user";
return this.getJdbcTemplate().queryForObject(sql,Integer.class);
} public String findNameByID(int id){
String sql = "select name from user where id = ?";
return getJdbcTemplate().queryForObject(sql,String.class,id);
} public User findUserByID(int id){
String sql = "select * from user where id = ?";
return getJdbcTemplate().queryForObject(sql, new MyRowMap(), id);
} public List<User> findAll(){
String sql = "select * from user";
return getJdbcTemplate().query(sql,new MyRowMap());
} // 匿名内部类进行自定义的类型转换
class MyRowMap implements RowMapper<User>{ /**
*
* @param resultSet:结果集,里面包含所有的结果
* @param i:行号
* @return 将每一行的数据自行转成需要的对象的数据类型
* @throws SQLException
*/
@Override
public User mapRow(ResultSet resultSet, int i) throws SQLException {
User user = new User();
user.setName(resultSet.getString("name"));
user.setId(resultSet.getInt("id"));
return user;
}
}
} // 查询
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:config4.xml")
public class Jdbc3 { @Resource(name = "userdao")
private UserDao userdao; @Test
public void demo(){
User user= new User();
user.setName("章子怡");
user.setId(002); userdao.add(user);
} @Test
public void demo2(){
System.out.println(userdao.findCount()); List<User> ls = userdao.findAll();
for(User user:ls){
System.out.println(user);
}
}
}

Java Spring-JdbcTemplate增删改查的更多相关文章

  1. sssp-springmvc+spring+spring-data-jpa增删改查

    环境:IDE:eclipse.jdk1.7.mysql5.7.maven 项目结构图 上面目录结构你可以自己创建 搭建框架 首先加入maven依赖包以及相关插件 <dependencies> ...

  2. java DMO及增删改查代码的自动生成

    在web开发过程中,尤其是后台管理系统的开发中,少不了增删改成的基础操作,原来我自己的做法是一份一份的拷贝粘贴,然后修改其中的不同,然而这样既枯燥无味又浪费了大量的时间,所以根据自己项目结构的特点写了 ...

  3. 【简易版】Java ArrayList(增删改查)

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: (1)动态的增加和减少元素 (2)实现了ICollectio ...

  4. 百度鹰眼Java接口调用增删改查实例

    因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...

  5. Java学生信息增删改查(并没用数据库)

    一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. import java.io ...

  6. MongoDB(二)-- Java API 实现增删改查

    一.下载jar包 http://central.maven.org/maven2/org/mongodb/mongo-java-driver/ 二.代码实现 package com.xbq.mongo ...

  7. LR接口测试---Java Vuser之增删改查

    import lrapi.lr; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...

  8. MongoDB(六)java操作mongodb增删改查

    java操作mysql数据库的代码我们已经了如指掌了.增删改查,java对mongodb数据库也是类似的操作,先是数据库连接.再是进行操作. 首先我们进入进入admin数据库.然后建立自己的数据库te ...

  9. vue.js+element ui Table+spring boot增删改查

    小白初学,不懂的还是太多了,找了好多资料才做出来的先记录一下 1.先用Spring boot创建一个包含了增删改查的项目 2.创建vue.js项目 3.安装Element UI (1)进入项目文件夹下 ...

  10. JdbcTemplate增删改查

    1.使用JdbcTemplate的execute()方法执行SQL语句 jdbcTemplate.execute("CREATE TABLE USER (user_id integer, n ...

随机推荐

  1. 170725、Kafka原理与技术

    本文转载自:http://www.linkedkeeper.com/detail/blog.action?bid=1016 Kafka的基本介绍 Kafka最初由Linkedin公司开发,是一个分布式 ...

  2. SaltStack配置管理-jinja模板

    上一篇:SaltStack配置管理-状态间关系 需求:需要apache配置文件里面监听的端口是每个minion本地的地址 saltstack默认的模板是jinjia模板 参考文档:http://doc ...

  3. Windows Bat 批处理脚本

    Windows Bat 批处理脚本 – Getting Started – Variables – Return Codes – stdin, stdout, stderr – If/Then Con ...

  4. django如何防止csrf(跨站请求伪造)

    什么是CSRF 下面这张图片说明了CSRF的攻击原理: Django中如何防范CSRF Django使用专门的中间件(CsrfMiddleware)来进行CSRF防护.具体的原理如下: 1.它修改当前 ...

  5. MVC4中使用Html.DropDownList实现级联

    本文记录了一个在MVC4中使用PartialView实现级联效果的小例子. 准备工作 首先准备一下要级联的数据,新建两个类:Province和City public class Province { ...

  6. mydumper原理介绍

      mydumper的安装:http://www.cnblogs.com/lizhi221/p/7010174.html   mydumper介绍   MySQL自身的mysqldump工具支持单线程 ...

  7. 2.5 The Object Model -- Observers

    Ember支持监视任何属性,包括计算的属性.你可以使用Ember.observer为一个对象设置一个监视者: Person = Ember.Object.extend({ //these will b ...

  8. NodeJS学习笔记四

    Generator简介 基本概念 Generator函数有多种理解角度.从语法上,首先可以把它理解成,Generator函数是一个状态机,封装了多个内部状态. 执行Generator函数会返回一个遍历 ...

  9. Python:笔记(7)——yield关键字

    Python:笔记(7)——yield关键字 yield与生成器 所谓生成器是一个函数,它可以生成一个值的序列,以便在迭代中使用.函数使用yield关键字可以定义生成器对象. 一个例子 我们调用该函数 ...

  10. 一次org.springframework.jdbc.BadSqlGrammarException ### Error querying database Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException问题排查过程

    先说结论: 因为在表设计中有一个商品描述字段被设置为desc,但desc是mysql中的关键字,如select id,name,desc,price from product;这条sql语句在查询时的 ...