【736c677c4】使用JDBCTEMPLATE来进行增删改

转载 2012年03月29日 14:52:57
先道要加上两个包:Spring2.5下面的: spring.jar和commons-logging.jar
具体的实例说明:
public class StuDaoImple implements StuDaointer {
 
    private JdbcTemplate jdbctemp = null;
 
    public StuDaoImple() {
       jdbctemp = new JdbcTemplate(SQLConnUtil.getDataSource());
    }
 
    // 所有添,删,改的方法都可以用jdbctemp.update();方法
    public void addStu(Stu stu) {
       String sql = "insert into stu values(?,?,?)";
       Object[] obj = new Object[] { stu.getSname(), stu.getSsex(),new java.sql.Date(stu.getSbrith().getTime()) };
       jdbctemp.update(sql, obj);// 可以传两个参数,第一个参数是SQL语句,第二个参数是SQL语句的参数值
    }
    public void delStu(int sid) {
       String sql = "delete stu where s_id=" + sid;
       jdbctemp.update(sql);// 可以传一个参数,就是没有参数的SQL语句
    }
 
    public void updStu(Stu stu) {
       String sql = "update stu set s_name=?,s_sex=?,s_brith=? where s_id=?";
       Object[] obj = new Object[] { stu.getSname(), stu.getSsex(),new java.sql.Date(stu.getSbrith().getTime()), stu.getSid() };
       jdbctemp.update(sql, obj, new int[] { Types.VARCHAR, Types.VARCHAR,Types.DATE, Types.INTEGER });
       // 可以传两个参数,第一个参数是SQL语句,第二个参数是SQL语句的参数值,第三个参数是SQL语句参数值的SQL类型
    }
    //查询1
    public List getAllStu() {
       String sql="select s_id,s_name,s_sex,s_brith from stu";
       List list=jdbctemp.query(sql, new RowMapper(){
 
           public Object mapRow(ResultSet arg0, int arg1) throws SQLException {
              Stu stu=new Stu();
              if(arg0!=null){
                  stu.setSid(arg0.getInt("s_id"));
                  stu.setSname(arg0.getString("s_name"));
                  stu.setSsex(arg0.getString("s_sex"));
                  stu.setSbrith(arg0.getDate("s_brith"));
              }
              return stu;
           }
           
       });
       return list;
    }
    
    //查询2
    public List getAllStu(int id) {
       String sql="select s_id,s_name,s_sex,s_brith from stu where s_id<?";
       Object[] obj=new Object[]{id};
       //使用内部类
       List list=jdbctemp.query(sql,obj,new RowMapper(){
 
           public Object mapRow(ResultSet arg0, int arg1) throws SQLException {
              Stu stu=new Stu();
              if(arg0!=null){
                  stu.setSid(arg0.getInt("s_id"));
                  stu.setSname(arg0.getString("s_name"));
                  stu.setSsex(arg0.getString("s_sex"));
                  stu.setSbrith(arg0.getDate("s_brith"));
              }
              return stu;
           }
           
       });
       return null;
    }
    //查询方式3(查询一个对象)
    public Stu getOneStu(int id) {
       String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=?";
       Object[] obj=new Object[]{id};
       Object stu=jdbctemp.queryForObject(sql, obj,new BeanPropertyRowMapper(Stu.class));
       //可以不用内部类,但是类的属性字段名称要数据库中的字段名称一样或者数据库字段名为s_id类的名称为SId,
       //如果你没有遵守这个规范则可以在select语句后面给数据库字段名取别名
       //上面的查询也可以这种方式
       return (Stu)stu;
    }
    //查询方式4(查询一个字段)
    public String getStuName(int sid) {
       String sql="select s_name as sname from stu where s_id=?";
       Object[] obj=new Object[]{sid};
       Object stuname=jdbctemp.queryForObject(sql, obj, String.class);
       //String.class即是指明一下结果的类型
       return (String) stuname;
    }
    //查询方法5
    public int count(){
       String sql="select count(*) from stu";
       int m=jdbctemp.queryForInt(sql);
       return m;
    }
    //查询方法6 查询结果返回的是map,map中的key为select中的列名(若有别名是是别名)value是该列所对应的值
    public Map getStuinMap(int sid){
       String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=?";
       Object[] obj=new Object[]{sid};
       return jdbctemp.queryForMap(sql, obj);
    }
    //查询方法7 若你不想用spring封装好了的操作,你可以自己写.Connection的打开和关闭它已经写好了,其它的操作自己可以去完成
    public int getMyQuery(final Stu stu){
       
       Object obj=jdbctemp.execute(new ConnectionCallback(){
 
           public Object doInConnection(Connection conn) throws SQLException, DataAccessException {
              String sql="insert into stu values(?,?,?)";
              PreparedStatement pre=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//返回主键自动
              pre.setString(1, stu.getSname());
              pre.setString(2, stu.getSsex());
              pre.setDate(3, new java.sql.Date(stu.getSbrith().getTime()));
              pre.executeUpdate();
              ResultSet rs=pre.getGeneratedKeys();
              int m=0;
              if(rs.next()){
                  m=rs.getInt(1);
              }
              return m;  
           }      
       });
       return (Integer)obj;
    }
}



使用Spring JDBCTemplate进行增删改查curd操作

项目介绍 Spring中关于JDBC的一个辅助类(JDBC Template),它封装了JDBC的操作,使用它来构建项目 项目结构 创建maven项目,结构如上图 maven依赖jar...
  • sunxiaoyu94
  • sunxiaoyu94
  • 2016年01月13日 15:59
  • 5465

JdbcTemplate学习笔记(更新插入删除等)

1、使用JdbcTemplate的execute()方法执行SQL语句  Java代码   jdbcTemplate.execute("CREATE TABLE USER (u...
  • haluoluo211
  • haluoluo211
  • 2016年08月23日 10:04
  • 11055

JDBC Spring 之JdbcTemplate 增删改查操作

之前简单介绍了JDBC CRUD的操作,接下来我为大家来讲解一下JDBC 使用Spring框架来进行CURD(增删改查操作)使用Spring中的JdbcTemplate之前应该给一个数据源来获得连接。...
  • Qmen_Crow
  • Qmen_Crow
  • 2016年06月04日 11:14
  • 18103

JdbcTemplate数据批量删除

由于数据的批量处理(比如往RDBMS插入几万条数据)非常耗资源,因此建议在所有场合能够借助于JDBC完成,而不要去采用Hibernate API。本文主要围绕Spring内置的各类JDBC API抽象...
  • z69183787
  • z69183787
  • 2012年12月28日 10:37
  • 9852

Spring+JDBC组合开发 - 使用JdbcTemplate进行insert/update/delete/query操作

insert/update/delete操作 1. dao类 2.dataSource的配置
  • camper001
  • camper001
  • 2011年01月11日 10:05
  • 33533

Spring使用JdbcTemplate实现对数据库操作

Spring对数据库的操作使用JdbcTemplate来封装JDBC,结合Spring的注入特性可以很方便的实现对数据库的访问操作。 使用JdbcTemplate可以像JDBC一样来编写数据库的操作代...
  • wyc_cs
  • wyc_cs
  • 2014年07月14日 17:53
  • 39710

使用JdbcTemplate的execute()方法执行SQL语句

1、使用JdbcTemplate的execute()方法执行SQL语句 Java代码 jdbcTemplate.execute("CREATE TABLE USER (...
  • gpogpogpo
  • gpogpogpo
  • 2012年04月02日 15:05
  • 22095

Spring使用JdbcTemplate插入和修改数据的三种方法

Spring JDBC的主要目标是为了简化JDBC的编程,方便我们构建健壮的应用程序。这里,它的一个基本设计理念,就是将JDBC编程中变化的和不变化的分开。先看一段普通建立数据库连接的方式: Java...
  • xulongping_123
  • xulongping_123
  • 2013年08月13日 11:08
  • 5703

Spring入门之JdbcTemplate【一】增加、删除、修改数据库表数据

前言: 本文主要讲解Spring中JdbcTemplate进行增加、删除、修改数据库表数据 如需了解查询操作,请移步我的下一篇文章Spring入门之JdbcTemplate【二】查询数据库表数据 ...
  • chensanwa
  • chensanwa
  • 2018年01月26日 04:02
  • 69

JDBC Spring 之JdbcTemplate 增删改查操作

之前简单介绍了JDBC CRUD的操作,接下来我为大家来讲解一下JDBC 使用spring框架来进行CURD(增删改查操作)使用Spring中的JdbcTemplate之前应该给一个数据源来获得连接。...
  • lei1160427600
  • lei1160427600
  • 2017年02月24日 14:31
  • 242
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【736c677c4】使用JDBCTEMPLATE来进行增删改
举报原因:
原因补充:

(最多只允许输入30个字)