JdbcTemplate 、NamedParameterJdbcTemplate、SimpleJdbcTemplate的区别,有需要的朋友可以参考下。
2016-01-19 10:34
453 查看
JdbcTemplate 、NamedParameterJdbcTemplate、SimpleJdbcTemplate的区别,有需要的朋友可以参考下。几种常用的jdbctemplate.
jdbcTemplate:配置使用spring注入即可,配置一个dataSource
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver" value="${jdbc.driverClassName}" />
<property name="driverUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="alias" value="alarm-pool" />
<property name="prototypeCount" value="0" />
<property name="maximumConnectionCount" value="${jdbc.maximumConnectionCount}" />
<property name="minimumConnectionCount" value="${jdbc.minimumConnectionCount}" />
<property name="houseKeepingTestSql" value="select 1 from DUAL" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>.
常用的方法:
1.jdbcTemplate.queryForInt() 和 jdbcTemplate.queryForLong()
//查询数据记录的条数,返回一个int(数据范围较小)或者一个Long(数据范围较大)类型
String todayCountTopicsSql="SELECT count(*) FROM mcp_forum_post";
Integer todayCount=jdbcTemplate.queryForInt(todayCountTopicsSql);
2.jdbcTemplate.queryForObject()
本质上和queryForInt()相同,返回都是单行单列一个数据,例如传回一个String对象:
String userAccountSql="select account from scpn_user where user_id="+userAccountId;
String userAccount=(String)jdbcTemplate.queryForObject(userAccountSql, java.lang.String.class);
3.jdbcTemplate.queryForMap()
查询一行数据,即一条记录,一条记录包含多个字段, 使用返回的列做key。
4.jdbcTemplate.queryForList():返回Map的集合List(它包含多条记录), 用列名做key, 每一个map代表一条数据库记录,需要使用循环来输出每一条记录,如果想在结果集中加入一个字段,也可以采用如下的put方法。
5. JdbcTemplate的execute()方法执行SQL语句
6.update()方法
jdbcTemplate:配置使用spring注入即可,配置一个dataSource
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver" value="${jdbc.driverClassName}" />
<property name="driverUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="alias" value="alarm-pool" />
<property name="prototypeCount" value="0" />
<property name="maximumConnectionCount" value="${jdbc.maximumConnectionCount}" />
<property name="minimumConnectionCount" value="${jdbc.minimumConnectionCount}" />
<property name="houseKeepingTestSql" value="select 1 from DUAL" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>.
常用的方法:
1.jdbcTemplate.queryForInt() 和 jdbcTemplate.queryForLong()
//查询数据记录的条数,返回一个int(数据范围较小)或者一个Long(数据范围较大)类型
String todayCountTopicsSql="SELECT count(*) FROM mcp_forum_post";
Integer todayCount=jdbcTemplate.queryForInt(todayCountTopicsSql);
2.jdbcTemplate.queryForObject()
本质上和queryForInt()相同,返回都是单行单列一个数据,例如传回一个String对象:
String userAccountSql="select account from scpn_user where user_id="+userAccountId;
String userAccount=(String)jdbcTemplate.queryForObject(userAccountSql, java.lang.String.class);
3.jdbcTemplate.queryForMap()
查询一行数据,即一条记录,一条记录包含多个字段, 使用返回的列做key。
String userAccountSql="select account,create_time from scpn_user where user_id="+userAccountId; Map userAccountMap=(Map)jdbcTemplate.queryForMap(userAccountSql); String userAccount= (String)userAccountMap.get("account"); //取出数据库中char类型的数据转换为String String createTime= (String)userAccountMap.get("create_time").toString(); //取出数据库
4.jdbcTemplate.queryForList():返回Map的集合List(它包含多条记录), 用列名做key, 每一个map代表一条数据库记录,需要使用循环来输出每一条记录,如果想在结果集中加入一个字段,也可以采用如下的put方法。
String all="SELECT * FROM mcp_forum_post"; List scpnPostList = jdbcTemplate.queryForList(all); if (scpnPostList!=null) { for (int i = 0; i < scpnPostList.size(); i++) { Long userAccountId = (Long) scpnPostList.get(i).get("user_id"); Long lastmodUser = (Long) scpnPostList.get(i).get("lastmod_user"); if (lastmodUser!=null) { String lastmodUserSql="select account from scpn_user where user_id="+lastmodUser; String lastmodUserAccount=(String)jdbcTemplate.queryForObject(lastmodUserSql, java.lang.String.class); scpnPostList.get(i).put("lastmodUserAccount", lastmodUserAccount);//可以在结果集中插入一个字段 } } }
5. JdbcTemplate的execute()方法执行SQL语句
6.update()方法
相关文章推荐
- Android--AndroidManifest 中original-package标签
- android之android studio的NDK环境搭建
- Android Studio常用插件
- 开始做一个活动营销系统,单接的job,对自己的一个挑战
- Linq 数据排序,分页
- MySQL简单的确定瓶颈
- AJAX学习笔记(二)——同步和异步
- Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡
- Ehcache memcache redis 三大缓存
- 经亲自实验,一台Windows电脑,同时接入2个USB鼠标和2个USB键盘,均可正常使用。
- 开发者必备的6款源码搜索引擎
- C 连接mysql VC的步骤
- Mac可设置环境变量的位置、查看和添加PATH环境变量
- 【opencv】VS2010+CMake重编译opencv2.4.10
- 单链表的基本操作
- Caffe学习系列(23):如何将别人训练好的model用到自己的数据上
- The Elements of Statistical Learning的笔记
- 数据库表 copy
- IOS导航栏颜色渐变与常用属性(最近应用比较流行的风格)
- C++预处理器