使用JdbcTemplate操作数据

使用Spring整合

 @Resource
 JdbcTemplate tm;
 /**
  *
  * @Title: save
  * @Description: 批量保存,批量删除与此方法类似
  * @author
  * @param
  * @return void 返回类型
  * @throws
  */
 @Test
 public void save() {
  final List<Student> list = new ArrayList<Student>();
  Student s = new Student();
  s.setName("小明1212123");
  Student s2 = new Student();
  s2.setName("小明123fdfd");
  Student s3 = new Student();
  s3.setName("小明123adsaa");
  list.add(s);
  list.add(s2);
  list.add(s3);
  String sql = "insert into student(name) values (?)";
  tm.batchUpdate(sql, new BatchPreparedStatementSetter() {
   @Override
   public void setValues(PreparedStatement ps, int i) throws SQLException {
    
    ps.setString(1, list.get(i).getName());
   }
   @Override
   public int getBatchSize() {
    
    return list.size();
   }
  });
 }
 /**
  *
  * @Title: find
  * @Description: 查询结果返回实体list 第一种方式
  * @author
  * @param
  * @return void 返回类型
  * @throws
  */
 @SuppressWarnings("unchecked")
 @Test
 public void find() {
  String sql = "select * from student where name=?";
  List<Student> list = tm.query(sql, new String[] { "小明" }, new BeanPropertyRowMapper(Student.class));
  for (int i = 0; i < list.size(); i++) {
   System.out.println(list.get(i).getName());
  }
 }
 /**
  *
  * @Title: findEntityList
  * @Description: 查询结果返回实体list 第二种方式,此处的实体类Student需要实现RowMapper接口
  * @author
  * @param
  * @return void 返回类型
  * @throws
  */
 @Test
 public void findEntityList() {
  test_trans
  String sql = "select id,name from student";
  List<Student> list = tm.query(sql, new Student());
  for (int i = 0; i < list.size(); i++) {
   Student s = list.get(i);
   System.out.println(s.getId() + ">>>>>>>" + s.getName());
  }
 }
 /**
  *
  * @Title: findEntityListWhere
  * @Description: 通过条件查询数据
  * @author
  * @param
  * @return void 返回类型
  * @throws
  */
 @Test
 public void findEntityListWhere() {
  String sql = "select id,name from student where id=?";
  List<Student> list = tm.query(sql, new Object[] { 1 }, new Student());
  for (int i = 0; i < list.size(); i++) {
   Student s = list.get(i);
   System.out.println(s.getId() + ">>>>>>>" + s.getName());
  }
 }
 /**
  *
  * @Title: findEntity
  * @Description: 查询结果返回单个实体
  * @author
  * @param
  * @return void 返回类型
  * @throws
  */
 @Test
 public void findEntity() {
  String sql = "select id,name from student where id=1";
  Student s = tm.queryForObject(sql, new Student());
  System.out.println(s.getId() + ">>>>>>>" + s.getName());
 }
 /**
  *
  * @Title: findMap
  * @Description: 查询结果返回map
  * @author
  * @param
  * @return void 返回类型
  * @throws
  */
 @Test
 public void findMap() {
  String sql = "select * from student";
  List<Map<String, Object>> list = tm.queryForList(sql);
  for (int i = 0; i < list.size(); i++) {
   Map<String, Object> map = list.get(i);
   System.out.println(map.get("id") + ">>>>>>" + map.get("name"));
  }
 }
 /**
  *
  * @Title: count
  * @Description: 统计数量
  * @author
  * @param
  * @return void 返回类型
  * @throws
  */
 @Test
 public void count() {
  String sql = "select count(*) as ‘count‘ from student";
  Map<String, Object> map = tm.queryForMap(sql);
  System.out.println("共找到>>>>>>>>>>:" + map.get("count") + "条数据");
 }

实体Student类

import java.sql.ResultSet;
import java.sql.SQLException;
import javax.persistence.Transient;
import org.springframework.jdbc.core.RowMapper;
public class Student implements RowMapper<Student> {
 private Integer id;
 private String name;
 private String nothing;
 public Integer getId() {
  return this.id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 public String getName() {
  return this.name;
 }
 public void setName(String name) {
  this.name = name;
 }
 @Transient
 public String getNothing() {
  return this.nothing;
 }
 public void setNothing(String nothing) {
  this.nothing = nothing;
 }
 @Override
 public Student mapRow(ResultSet rs, int num) throws SQLException {
  // TODO Auto-generated method stub
  Student s = new Student();
  try {
   s.setId(rs.getInt("id"));
   s.setName(rs.getString("name"));
   s.setNothing(rs.getString("nothing"));
  } catch (Exception e) {
   // TODO: handle exception
  }
  return s;
 }
}
时间: 2024-10-05 05:48:04

使用JdbcTemplate操作数据的相关文章

spring框架面试相关问题

Spring 框架中核心组件有三个:Core.Context 和 Beans.其中最核心的组件就是Beans, Spring提供的最核心的功能就是Bean Factory. Spring 解决了的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,也就是Spring的依赖注入机制.这个注入机制是在Ioc 容器中进行管理的. Bean 组件是在 Spring 的 org.springframework.beans 包下.这个包主要解决了如下功能:Bean 的定义.Bean 的创建以及对 Be

Spring框架分为哪七大模块

Spring框架的七大模块 1. Spring Core: Core封装包是框架的最基础部分,提供IOC和依赖注入特性.这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置. 2.Spring Context: 构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器.Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支

Spring面试题汇总

一.Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么? Spring 框架中核心组件有三个:Core.Context 和 Beans.其中最核心的组件就是Beans, Spring提供的最核心的功能就是Bean Factory. Spring 解决了的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,也就是Spring的依赖注入机制.这个注入机制是在Ioc 容器中进行管理的. Bean 组件是在 Spring 的 org.springframework.beans

继续钟爱JdbcTemplate

现在的程序员接触的最多的可能是配置文件吧.有时候觉得配置文件蛮好的.但是一旦出现了框架级的配置文集问题,没有功底是很不容易解决的.这时反而觉得配置文件很坑爹. 主要的问题还是框架毕竟封装了太多东西. mybatis相对于hibernate封装的比较少所以我喜欢他. JdbcTemplate基于spring,无需配置文件,操作起来很是顺手,也很简单.配置上出神入化的sql后真可谓是神器. 决定除了leslie外,再钟爱一个她,JdbcTemplate. JdbcTemplate 采用基于RowMa

JDBCTemplate在AutoCommit为True时手动控制事务

这是工作中遇到的一个真实问题的处理过程,如果对分析过程不感兴趣,可以直接跳到最后看最终方案. 我们在持久化这一层,并没有用任何的ORM框架(无论是Hibernate还是MyBatis,亦或是DBUtils),而是采用了在JDBCTemplate基础上进行了简单的包装,同时我们也决定将AutoCommit设置为True,在sql语句执行完成后立即提交.这样做相比于@Transactional注解或者通过AOP来控制事务性能更好,也更方便. 在评估了优劣之后,便开始使用这种方式,随之我们也遇到了一个

spring JdbcTemplate批量插入以及单个插入时获取id

1. 批量更新插入 jdbcTemplate.batchUpdate(String sql, List<Object[]> batchArgs) Object[]数组的长度为每条记录的参数个数(也就是sql语句中"?"的个数) List: 总共插入多少条记录. /** * 批量插入订单详情 * */ public void addBatch(List<OrderDetail> orderDetails) { List<Object[]> params

JdbcTemplate模板使用

1.添加模板的配置文件 在spring的配置文件中加入如下代码 <bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate"> <property name="dataSource" ref="dataSource"/></bean> 注意:ref 中的 dataSource 是可变的,与连接数据库的资源

【4.0】jdbcTemplate

1.什么是jdbcTemplate? 2.使用jdbcTemplate 3.crud操作  参考博文:http://blog.csdn.net/u014800380/article/details/64125653 4.采用配置文件的方式使用jdbcTemplate  参考博文:http://suyanzhu.blog.51cto.com/8050189/1563219/ 参考博文原文: 一.创建spring项目    项目名称:spring101302二.在项目上添加jar包    1.在项目

Spring数据访问之JdbcTemplate

Spring数据访问之JdbcTemplate 使用JdbcTemplate的基本操作步骤 1.引jar包 项目的基本架构 这里重点看实现类的内容 1 package cn.hmy.dao.impl; 2 3 4 import java.util.List; 5 6 import org.springframework.jdbc.core.support.JdbcDaoSupport; 7 8 import cn.hmy.beans.Emp; 9 import cn.hmy.dao.IEmpDa