`
flybird1985
  • 浏览: 8029 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JdbcTemplate 总结

SQL 
阅读更多

1.您可以使用JdbcTemplate的execute()方法执行SQL DDL语句,例如:

jdbcTemplate.execute("CREATE TABLE USER (user_id integer, name varchar(100))");

 

使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法,例如使用queryForInt()方法传回user表格中的数据数目: jdbcTemplate.quertForInt("select count(*) from user"); 也可以使用queryForObject()传回一个查询后的对象,例如传回一个String对象:

String name=(String)jdbcTemplate.queryForObject(
             "selcet name from user where id=?",
                         new Object[]{id},
                         java.lang.String.class);
)

 


单独查询某个数据并赋值给特定对象时:

public BaseObj getBaseObj(final int ID) {

        String sql = "select * from " + DB_TABLE_NAME + " where NewsId=" + ID;
        BaseObj obj =(BaseObj) getJdbcTemplate().query(sql,new ResultSetExtractor(){
            public Object extractData(ResultSet rs) throws SQLException,DataAccessException {
                if (rs.next()) {
                    NewsObj news = new NewsObj();
                    news.setID(rs.getInt("NewsID"));
                    news.setTitle(rs.getString("NewsTitle"));
                    news.setBigClass(rs.getInt("BigClassId"));
                    news.setNewsContent(rs.getString("NewsContent"));
                    news.setNewsKey(rs.getString("NewsKey"));
                    news.setNewsAuthor(rs.getString("NewsAuthor"));
                    news.setImg(rs.getBoolean("isImg"));
                    news.setNewsFrom(rs.getString("NewsFrom"));
                    return news;
                }
                return null;
            }
        });
       return obj;

    }

 

上面两个例子都是传回单独一笔数据,如果要传回多笔数据,则可以使用queryForList()方法,例如:

List rows=jdbcTemplate().queryForList("select * from user where id="+id.intValue()); 

 
传回的list中包括的是map对象,每个map对象代表查询结果中的一笔数据,每笔数据包括多个字段,要取得字段中的值,就要使用字段名作为key,例如:

Iterator it=rows.iterator();
   while(it.hasNext()){
       Map result=(Map)it.next();
       System.out.println(userMap.get("id"));
       System.out.println(userMap.get("name"));
       System.out.println(userMap.get("age"));
    }

 

在查询的同时,你可以在返回结果之前先进行一些处理,这就要实现RowCallbackHandler接口

public User find(Integer id){
   final User user=new User();
   jdbcTemplate.query("select * from user where id=?",new Object[]{id},
                                         new RowCallBackHandler(){
                                                public void proccessRow(ResultSet rs){ 
                                                        user.setId(new Integer(rs.getInt("id")));
                                                        uset.setName(rs.getString("name"));    
                                                 }
                                            });
   return user;
 }
 

 

如果一次要返回多个查询结果对象,则可以实现RowMapper接口

public class UserRowMapper implements RowMapper{
       public Object MapRow(ResultSet rsmint rowNum) throws SQLException{
               User user=new User();
               user.setId(new Integer(rs.getInt("id")));
               user.setName(rs.getString("name"));
               return user;
      } 
}
 

 

使用RowMapper查询单笔数据

public User find(Integer id){
        User user=(User)jdbcTemplate.queryForObject("select * from user where id=?",new Object[]{id},
                                                                                    new UserRowMapper());
         return user;

}

 

使用RowMapper查询多笔数据

class UserRowMapper implements RowMapper {

        public Object mapRow(ResultSet rs,int index) throws SQLException 

        {
            User u = new User();
            u.setId(rs.getString(”ID”));
            u.setName(rs.getString(”Name”));
            u.setPassword(rs.getString(”Password”));
            return u;

        }

    }

public List select(String where)

    {

        List list;        
        String sql = “select * from admin “+where;        
        list = jdbcTemplate.query(sql,new RowMapperResultReader(new UserRowMapper()));
        return list;

    }

 

 传回的users对象中,包括了从数据库查询出来的结果,并已经封装成uer对象
 还可以参阅下面链接:jdbctemplate 语句

分享到:
评论

相关推荐

    JdbcTemplate操作总结

    JdbcTemplate操作总结 作者根据开发过程中的经验整理的一个word文档,希望对开发者有所帮助。

    QQQ_(S+S+H)(Spring_JdbcTemplate_dao)_方式总结

    SSH整合JdbcTemplate_dao)_方式_总结

    Spring 通过连接mysql,通过JdbcTemplate和SimpleJdbcTemplate来操作数据库

    本代码总结了,spring通过JdbcTemplate和SimpleJdbcTemplate来操作数据库的各种方法。 本代码使用的maven project。

    day06_JDBC连接池&JDBCTemplate2

    1.2.2视频详情1.2.3总结与补充 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事 1.2.4课堂提问与练习 1、什么是JDBC 1.2.5习

    Spring持久化模板总结

    总结对比了Spring对JDBCTemplate和SpringTemplate的整合使用方法,尤其JdbcDaoSupport和HibernateDaoSupport的使用方法

    Spring中文帮助文档

    11.4.1. 使用JdbcTemplate进行批量操作 11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动...

    jdbc连接数据库的乱码问题(已解决)

    jdbc连接mysql出现了乱码,总结起来就是里面的四个编码方式是一样的时候,就不会乱码了,简之,客户连接数据库返回结果(编码必须一致)。

    springtemplate总结

    springtemplate,简单操作,存储过程使用总结及例子

    springboot项目整合.zip

    springboot学习总结,代码示例 个人博客 https://blog.csdn.net/hykwhjc 第一篇:构建第一个SpringBoot工程] 第二篇:SpringBoot配置详解] 第三篇:SpringBoot日志配置] 第四篇:整合Thymeleaf模板] 第五...

    SpringBoot整合持久层技术之搭建并整合Spring Data JPA项目

    SpringBoot整合持久层技术进行一个项目的搭建,做一个练手,以前搞过但是都淡忘了,特意来总结一下。今天是JPA,后面陆续搭建MyBatis、JdbcTemplate等持久层技术,供大家相互学习。

    Java操作数据库之jdbc【原生方式】

    +C3p0,hibernate,jdbcTemplate等等【这五个都会总结】,到后面的话使用一些高级的框架去操作数据库,比如hibernate。但是底层操作数据库是重要的,高级框架也是也底层为基础搭建的,所以这里还是总结一下对一些常用...

    Spring3.X编程技术与应用,完整扫描版

    全书分3篇共21章,具体内容包括:Spring环境的安装与使用、JSP与JSTL简介、 Spring基础概念与工具、用SpringJdbcTemplate访问数据库、使用Mayen工程、Spring MVC编程、基于 MVC的资源共享网站设计、Spring的AOP编程...

    spring.doc

    Spring的IOC总结: 20 3.5 依赖注入(DI) 20 3.5.1 使用构造器注入 20 3.5.2 使用属性setting方法进行注入 21 3.5.3 装配list集合 22 3.5.4 装配set集合 22 3.5.5 装配map 22 3.5.6 装配Properties 23 3.6 注解注入 ...

    spring整合jdbc学习资料

    本人总结的传智博客上老师的JDBC视频资料的PPT.

    Spring.3.x企业应用开发实战(完整版).part2

    10.7.5 JdbcTemplate如何做到对连接泄漏的免疫 10.7.6 使用TransactionAwareDataSourceProxy 10.7.7 其他数据访问技术的等价类 10.8 小结 第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 ...

    Spring3.x企业应用开发实战(完整版) part1

    10.7.5 JdbcTemplate如何做到对连接泄漏的免疫 10.7.6 使用TransactionAwareDataSourceProxy 10.7.7 其他数据访问技术的等价类 10.8 小结 第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 ...

    spring学习笔记

    Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合 目录 1.1 Spring 框架学习路线:..........................................................................................................

    Spring API

    11.4.1. 使用JdbcTemplate进行批量操作 11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动...

Global site tag (gtag.js) - Google Analytics