- 浏览: 108500 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
Inmethetiger:
yixiandave 写道能不能在Validation注解的m ...
Spring验证小结和问题 -
yixiandave:
Inmethetiger 写道yixiandave 写道如果用 ...
Spring验证小结和问题 -
Inmethetiger:
yixiandave 写道如果用JSR303的话,可以引入hi ...
Spring验证小结和问题 -
yixiandave:
如果用JSR303的话,可以引入hibernate-valid ...
Spring验证小结和问题 -
jackytang520:
貌似用了这么久,没有碰到过这个问题..
idea属性文件中文乱码
首发:http://inmethetiger.iteye.com/blog/1687442
spring的jdbc里面对查询的的实现比较多,除了queryForXXX之外,还有重载了很多query方法。我根据这个写了一些query方法的小实例。
准备:
@BeforeClass public static void setUpClass() { String url = "jdbc:hsqldb:mem:test"; String username = "sa"; String password = ""; DriverManagerDataSource dataSource = new DriverManagerDataSource(url, username, password); dataSource.setDriverClassName("org.hsqldb.jdbcDriver"); jdbcTemplate = new JdbcTemplate(dataSource); } // 创建表结构 @Before public void before() { String createTableSql = "create memory table test" + "(id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, " + "name varchar(100))"; jdbcTemplate.update(createTableSql); }
结果集处理回调
回调函数使用RowMapper的方法
1:<T> List<T> query(String sql, RowMapper<T> rowMapper)方法
根据给定的sql语句执行query方法。通过RowMapper将每行映射成为一个java对象。 使用一个JDBC
Statement,而不是使用预编译的的PrepareStatement。如果想用PrepareStatement执行 一个查询,使用重载的方法。
@Test public void SqlRowMapper() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); String listSql = "select * from test"; List<Map> objList = jdbcTemplate.query(listSql, new RowMapper<Map>() { @Override public Map mapRow(ResultSet rs, int rowNum) throws SQLException { Map row = new HashMap(); row.put(rowNum, rs.getString("name")); return row; } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
如果想使用预编译的可以写成这个样子:使用这个方法,然后参数为空
@Test public void SqlRowMapper() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); String listSql = "select * from test"; List<Map> objList = jdbcTemplate.query(listSql,new Object{}{}, new RowMapper<Map>() { @Override public Map mapRow(ResultSet rs, int rowNum) throws SQLException { Map row = new HashMap(); row.put(rowNum, rs.getString("name")); return row; } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
2:<T> List<T> query(String sql, Object[] args, RowMapper<T> rowMapper)
@Test public void SqlArgsRowMapper() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); String listSql = "select * from test where name=?"; List<Map> objList = jdbcTemplate.query(listSql, new Object[] { "name2" }, new RowMapper<Map>() { @Override public Map mapRow(ResultSet rs, int rowNum) throws SQLException { Map row = new HashMap(); row.put(rowNum, rs.getString("name")); return row; } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
3:<T> List<T> query(String sql, Object[] args, int[] argTypes, RowMapper<T> rowMapper)
@Test public void SqlArgsArgsTypeRowMapper() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); String listSql = "select * from test where name=?"; List<Map> objList = jdbcTemplate.query(listSql, new Object[] { "name2" },new int[]{java.sql.Types.ARRAY}, new RowMapper<Map>() { @Override public Map mapRow(ResultSet rs, int rowNum) throws SQLException { Map row = new HashMap(); row.put(rowNum, rs.getString("name")); return row; } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
4:<T> List<T> query(String sql, RowMapper<T> rowMapper, Object... args)
@Test public void SqlRowMapperArgs() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); String listSql = "select * from test where name=?"; List<Map> objList = jdbcTemplate.query(listSql, new RowMapper<Map>() { @Override public Map mapRow(ResultSet rs, int rowNum) throws SQLException { Map row = new HashMap(); row.put(rowNum, rs.getString("name")); return row; } }, "name2"); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
5:<T> List<T> query(PreparedStatementCreator psc, RowMapper<T> rowMapper)
@Test public void PreRowMapper() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); final String listSql = "select * from test where name=?"; List<Map> objList = jdbcTemplate.query(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { PreparedStatement pstmt = con.prepareStatement(listSql); pstmt.setString(1, "name2"); return pstmt; } }, new RowMapper<Map>() { @Override public Map mapRow(ResultSet rs, int rowNum) throws SQLException { Map row = new HashMap(); row.put(rowNum, rs.getString("name")); return row; } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
6:<T> List<T> query(String sql, PreparedStatementSetter pss, RowMapper<T> rowMapper)
@Test public void SqlPreRowMapper() { jdbcTemplate.update("insert into test(name) values('name1')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name2')"); jdbcTemplate.update("insert into test(name) values('name4')"); String listSql = "select * from test where name=?"; List<Map> objList = jdbcTemplate.query(listSql, new PreparedStatementSetter() { @Override public void setValues(PreparedStatement ps) throws SQLException { ps.setString(1, "name2"); } }, new RowMapper<Map>() { @Override public Map mapRow(ResultSet rs, int rowNum) throws SQLException { Map row = new HashMap(); row.put(rowNum, rs.getString("name")); return row; } }); for (int i = 0; i < objList.size(); i++) { Object obj = objList.get(i); System.out.println(obj.toString()); } }
在spring的api中query方法中,涉及RowMapper的都写了一个简单的实例。
下一篇,是关于query方法中,涉及RowCallbackHandler的实例。总体来说类似。但是不同的是,返回值为空,并没有包装。
发表评论
-
Spring验证小结和问题
2014-07-27 16:36 4885因为从云笔记中粘贴过来的,代码格式就没有了。格式稍好点的地 ... -
在spring中使用Ehcache
2014-06-18 16:07 1042前提: 使用环境:详细页面 依赖包: ... -
Spring MVC 3.0版本和3.1版本的一点小区别
2013-06-12 00:57 2727先上代码: 主要是控制器: @Controller ... -
在Maven下的springJpa多模块开发引起的问题
2013-02-21 22:33 3113最近的项目搭建中,出现了一个问题。 ... -
spring 事务二:注解springmvc+注解or声明式事务
2012-11-23 08:42 2235前面讲了两大类,四种spring事务的方式。这篇主要记录基于注 ... -
spring 事务一:非注解springmvc+注解or声明式事务
2012-11-22 15:47 2495前两天一人问我,在使用spring mvc (基于注解) 的时 ... -
在spring中使用mybatis
2012-11-14 21:59 3631今天在使用mybatis的时候,发现dao的实现竟然可以不需要 ... -
@Controller中的@RequestMapping参数
2012-11-07 09:56 3815转载自:http://blog.sina.com.cn/s/b ... -
三种连接池的配置
2012-09-28 10:00 1146用spring默认的连接池性能效率不高, 如果数据库重启 ... -
spring jdbc之query详细实例2
2012-09-27 16:45 1885首发地址: http://inmethetiger.iteye ... -
spring jdbc之最简单的增删改查
2012-09-27 10:10 2073首发地址: http://inmethetiger.iteye ... -
spring的实例化方式
2012-09-26 17:48 1819首发地址: http://inmethetiger.iteye ... -
Spring Aop(一)
2012-09-26 16:06 766这是一个简单的spring aop的例子。 一:定义目 ... -
spring mvc表单标签和@ModelAttribute
2012-09-20 21:05 9116首发地址:http://inmethetiger.iteye ... -
spring相关资料的URL(持续更新)
2012-09-20 13:34 1200首发地址http://inmethetiger.iteye.c ... -
Spring mvc注解之实现MultiActionController功能
2012-09-16 16:38 1633首发地址http://inmethetiger.iteye.c ... -
spring mvc 之注解版基础
2012-09-14 17:28 920首发地址:http://inmethetiger.iteye ... -
spring mvc 之MultiActionController和MethodNameResolver--附带实例
2012-09-14 17:23 1981首发地址:http://inmethetiger.iteye. ... -
Spring MVC的开发流程--附带实例
2012-09-12 18:05 2569首发地址: http://inmethetiger.i ...
相关推荐
Spring mvc、 Spring、 Spring jdbc 整合实例源码
Spring mvc + Spring + Spring jdbc 整合实例源码
Spring+JDBC实例 ,参考博客:http://blog.csdn.net/Peng_Hong_fu/article/details/53366989
1、掌握Spring JDBC的配置; 2、掌握JdbcTemplae类中增删改查方法的使用; 3、了解Spring事务管理的3个核心接口; 4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。 二.实验...
springMvc-spring+jdbc实例
关于spring JDbc 的一个实例希望有所帮助 谢谢大家
使用spring jdbc template简化jdbc数据库操作实例代码,简化操作,包括详细测试例子。
Spring mvc + Spring + Spring jdbc 整合 demo
Spring JDBC常用Jar包
spring jdbc示例代码,包括增删改查等一系列操作。了解spring jdbc与jdbc、orm框架的区别
spring jdbc相关包版本5.1.3
SpringMVC+SpringJDBC 能正常使用
包含Springjdbc的相关jar包,Spring 框架对JDBC的简单封装,提供了JdbcTemplate对象简化了JDBC的开发。
spring对jdbc的支持的测试jar包下载 spring采用的是4.0版本
spring-jdbc-5.1.3.RELEASE-javadoc.jar.sha1 2018-11-27 10:05 40 spring-jdbc-5.1.3.RELEASE-sources.jar 2018-11-27 10:05 420924 spring-jdbc-5.1.3.RELEASE-sources.jar.asc 2018-11-27 10:05 475 spring-...
开发工具 spring-jdbc-4.3.6.RELEASE开发工具 spring-jdbc-4.3.6.RELEASE开发工具 spring-jdbc-4.3.6.RELEASE开发工具 spring-jdbc-4.3.6.RELEASE开发工具 spring-jdbc-4.3.6.RELEASE开发工具 spring-jdbc-4.3.6....
springjdbc 详细步骤 教你配置
Spring JDBC应用实例讲解 ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45477185
Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册
java开发之SpringMVC + Spring + SpringJDBC整合.zip