Spring的jdbcTemplate使用

本文详细介绍了JdbcTemplate的各种查询方法,包括queryForInt、queryForObject、queryForList等,并提供了具体的使用示例。此外还提到了如何配置JdbcTemplate及注意事项。
  1. 使用jdbcTemplate查询数据的时候可以使用queryForXXX等方法。下面我们就一一解析一下:  
  2. 1、jdbcTemplate.queryForInt()和jdbcTemplate.queryForLong()  
  3. --使用queryForInt返回user表中的记录数量,queryForInt搭配这样的sql可以在分页的时候计算总记录数  
  4. jdbcTemplate.queryForInt("select count(*) from user");  
  5.   
  6. 2、jdbcTemplate.queryForObject()  
  7. --本质上和queryForInt相同,只是可以返回不同的对象,例如返回一个String对象  
  8. String name = (String) jdbcTemplate.queryForObject(  --3个参数,1、sql 2、要传递的参数数组 3、返回来的对象class  
  9. "SELECT name FROM USER WHERE id = ?",    
  10. new Object[] {id},    
  11. java.lang.String.class);  
  12.   
  13. 3、jdbcTemplate.queryForList(???)  
  14. --返回一个装有map的list,每一个map是一条记录,map里面的key是字段名  
  15. List rows = jdbcTemplate.queryForList("SELECT * FROM user");  --得到装有map的list  
  16. for(int i=0;i<rows.size();i++){                   --遍历  
  17. Map userMap=rows.get(i);  
  18. System.out.println(userMap.get("id"));    
  19. System.out.println(userMap.get("name"));    
  20. System.out.println(userMap.get("age"));  
  21. }  
  22.   
  23.   
  24. 4、jdbcTemplate.queryForMap(SQL)  
  25. --这个查询只能是查询一条记录的查询,返回一个map,key的值是column的值  
  26. Map map = jdbcTemplate.queryForMap("select count(*) as keyval from user");  
  27. map.get("keyval")  
  28.   
  29.   
  30. 5、jdbcTemplate.queryForRowSet(???)  
  31. --返回一个RowSet   然后调用.getString或者getInt等去取值  
  32.   
  33.   
  34.   
  35.   
  36. 6、jdbc1.query(sql, new RowCallbackHandler()  
  37. --返回一个ResultSet对象, processRow有自动循环的机制,它会自动执行processRow中的语句直到  
  38. --rs的size执行完了为止。我们可以在这其中用list完成对象的转移,只不过list要用final来修饰  
  39. jdbc1.query(sql, new RowCallbackHandler() { //editing  
  40.             public void processRow(ResultSet rs) throws SQLException {  
  41.         VideoSearch vs = new VideoSearch();  
  42.         vs.setRECORDINGFILENAME(rs.getString("RECORDINGFILENAME"));  
  43.         vs.setCALLID(rs.getString("CALLID"));  
  44.         list.add(vs);  
  45.   
  46.     }  
  47.     }  
  48.   
  49. 说明:  
  50. JDBCTemplate的使用方法:  
  51. 在ApplicationContext.xml中定义一个jdbcTemplate的节点,使用POJO注入,获得注入后可以执行操作  
  52. 不需要继承什么基类  
  53.   
  54. <bean id="jdbcTemplate"  
  55. class="org.springframework.jdbc.core.JdbcTemplate">              
  56.       <property name="dataSource" ref="dataSource"/>           
  57. </bean>  
  58.   
  59. SqlRowSet rs = jdbcTemplate.queryForRowSet(sql, params);  
  60. jdbcTemplate有很多的ORM化回调操作将返回结果转为对象列表,  
  61. 但很多时候还是需要返回ResultSet,Spring有提供一个类似ResultSet的,实现JDBC3.0 RowSet接口的Spring SqlRowSet  
  62. 注意  
  63. jdbcTemplate尽量只执行查询操作,莫要进行更新,否则会破坏Hibernate的二级缓存体系  
  64.    

转自:http://blog.csdn.net/zhang6622056/article/details/7383217
内容概要:本文系统研究了基于CNN-SVM的卷积神经网络与支持向量机融合的数据分类预测方法,聚焦其在工业故障识别中的应用,提供了完整的Matlab代码实现。通过CNN提取输入数据的深层空间特征,再由SVM进行高精度分类,充分发挥两者优势,有效提升了故障识别的准确性、鲁棒性与泛化能力。该方法特别适用于处理电力系统、机械设备等领域的高维、非线性、强噪声监测数据,在变压器故障诊断、轴承缺陷识别等场景中具有重要应用价值。文档还整合了机器学习、深度学习、图像处理、路径规划、电力系统优化等多个前沿科研方向的技术资源,配套大量Matlab/Simulink仿真案例与Python代码,全面支持科研复现与工程实践。; 适合人群:具备一定编程基础,熟练掌握Matlab或Python语言,从事电气工程、自动化、人工智能、机械故障诊断等相关领域研究的研发人员及高校研究生; 使用场景及目标:① 实现工业设备的状态监测与多类别故障分类;② 深入理解CNN与SVM融合模型的设计原理与工程实现细节;③ 借助所提供的丰富算法案例开展科研复现、模型优化与系统仿真验证; 阅读建议:建议按照文档目录结构系统化学习,结合百度网盘提供的完整代码资源进行动手实践,重点关注CNN特征提取层与SVM分类器之间的数据接口设计与参数调优策略,同时可延伸学习文中涉及的其他智能算法及其在电力系统、信号处理等领域的交叉应用,全面提升科研创新能力。
内容概要:本文围绕“考虑电动汽车灵活性的微网多时间尺度协调调度”展开研究,提出了一种基于Matlab代码实现的优化调度模型。该模型深入挖掘电动汽车作为灵活可控负荷与分布式储能单元的双重潜力,通过构建日前、日内及实时等多时间尺度的协调调度机制,有效应对光伏发电的间歇性与波动性,实现微电网内部功率的动态平衡。研究综合集成了电动汽车集群的有序充放电管理、储能系统协同优化与多种需求响应策略,建立了以系统运行成本最小化、可再生能源消纳最大化及供电可靠性最优化为目标的综合数学模型,并采用Matlab进行仿真求解。结果表明,所提方法能显著平抑功率波动,优化源-荷-储资源的时空配置,提升微电网运行的经济性与稳定性。; 适合人群:电气工程、能源与动力工程、控制科学与工程、电力系统及其自动化等专业的研究生、高校科研人员,以及从事智能电网、微电网规划、电动汽车与电网互动(V2G)技术研发的工程技术人员。; 使用场景及目标:①研究高比例可再生能源接入背景下,含大规模电动汽车的微电网协同优化运行策略;②掌握多时间尺度滚动优化的建模思想与Matlab/Simulink仿真技术;③探索电动汽车聚合商参与电力市场辅助服务的可行路径与效益评估方法; 阅读建议:建议读者结合提供的Matlab代码进行复现与调试,深入理解目标函数构建、约束条件处理及求解器调用等关键技术环节,可尝试引入电池老化模型、用户出行行为不确定性等更贴近实际的因素,以深化研究的实用性与前瞻性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值