使用JDBCTemplate实现与Spring结合,方法公用 ——共用实现类(BaseImpl)

 /**  
* @Title: BaseImpl.java
* @Package org.dao.impl
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-6-6 下午4:12:02
* @version V1.0  
*/
package org.dao.impl;import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;/**   *    * 项目名称:spring_Cchop10   * 类名称:BaseImpl   * 类描述:   * 创建人:Mu Xiongxiong  * 创建时间:2017-6-6 下午4:12:02   * 修改人:Mu Xiongxiong   * 修改时间:2017-6-6 下午4:12:02   * 修改备注:   * @version    *    */
public class BaseImpl<T> {private JdbcTemplate jdbcTemplate;   //jdbcTemplate对象private Class<T> entityClass;        //将实体类转换成class/*** * 构造函数 * @discription * @author Mu Xiongxiong     * @created 2017-6-6 下午4:58:40*/@SuppressWarnings("unchecked")public BaseImpl() {//将T转换成classentityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];}/*** * @Title: save* @Description: 该方法的主要作用:添加,修改,删除* @param  @param sql* @param  @param objects 设定文件  * @return  返回类型:void   * @throws*/public void update(String sql,Object[]objects){jdbcTemplate.update(sql, objects);}/*** * @Title: getById* @Description: 该方法的主要作用:根据id查询信息* @param  @param sql* @param  @param id 设定文件  * @return  返回类型:void   * @throws*/public T getById(String sql,Serializable id){return  (T) jdbcTemplate.queryForObject(sql,new Object[]{id},new BeanPropertyRowMapper(entityClass));}/*** * @Title: getAll* @Description: 该方法的主要作用:查询全部* @param  @param sql 设定文件  * @return  返回类型:void   * @throws*/public List<T> getAll(String sql){return jdbcTemplate.query(sql, new BeanPropertyRowMapper(entityClass));}public JdbcTemplate getJdbcTemplate() {return jdbcTemplate;}public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}
/**
* 创建添加一条员工记录的存储过程
* CREATE OR REPLACE PROCEDURE add_emp
(myempno in NUMBER,myename VARCHAR2,myjob VARCHAR2,mymgr NUMBER,mydate DATE,
mysal NUMBER,mycomm NUMBER)  
AS  
BEGIN  
INSERT INTO emp VALUES(myempno,myename,myjob,mymgr,mydate,mysal,mycomm);  
END;  
* 
* 
*/
@SuppressWarnings("unchecked")
public Integer testProcedure(final Emp emp) {
Integer dno    =  jdbcTemplate.execute(new CallableStatementCreator(){
@Override
public CallableStatement createCallableStatement(Connection con)
throws SQLException {
String procStr            =            "{call add_emp(?,?,?,?,?,?,?)}";
CallableStatement   cs                =            con.prepareCall(procStr);
cs.setInt(1, emp.getEmpno());
cs.setString(2, emp.getEname());
cs.setString(3, emp.getJob());
cs.setInt(4, emp.getMgr());
cs.setDate(5, (Date) emp.getHiredate());
cs.setDouble(6, emp.getSal());
cs.setDouble(7, emp.getComm());
cs.registerOutParameter(1, OracleTypes.NUMBER);
return cs;
}
}, new CallableStatementCallback(){
@Override
public Object doInCallableStatement(CallableStatement cs)
throws SQLException, DataAccessException {
cs.execute();
return cs.getInt(1);
}
})    ;    
return dno;
}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后端讲师管理模块

后端讲师管理模块 后端项目的结构 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hTdcdNmT-1611036676306)(C:\Users\王东梁\AppData\Roaming\Typora\typora-user-images\image-20210118223028941.png)] [外链图片转存失败,源站可能有防盗链机制,…

mysql - Docker Wordpress连接到本地主机上的数据库服务器

视频上面的 docker service create --name mysql -p 3306:3306 --env MYSQL_ROOT_PASSWORDroot \ --env MYSQL_DATABASEwordpress \ --network demo \ --mount typevolume,sourcemysql-data,destination/var/lib/mysql \ mysql:5.7 docker service create -…

CoreCRM 开发实录——开始之新项目的技术选择

2016年11月&#xff0c;接受了一个工作&#xff0c;是对“悟空CRM”进行一些修补。这是一个不错的 CRM&#xff0c;开源&#xff0c;并提供一个 SaaS 的服务。正好微软的 .NET Core 和 ASP.NET Core 也发布了。于是就有了这个想法&#xff1a;使用 ASP.NET Core 来开发一个 CRM…

80%的程序员都不了解的调试技巧

转载自 80%的程序员都不了解的调试技巧 程序员的工作内容&#xff0c;除了大部分时间写代码之外&#xff0c;因为有不少的时间是用在调试代码上。甚至说不是在调试代码&#xff0c;就是即将调试代码。 :) 今天我们来谈谈调试代码的一些技巧&#xff0c;在使用IDE提供的debu…

使用JDBCTemplate实现与Spring结合,方法公用 ——Emp实现类(EmpDaoImpl)

/** * Title: EmpDaoImpl.java * Package org.dao.impl * Description: TODO该方法的主要作用&#xff1a; * author A18ccms A18ccms_gmail_com * date 2017-6-3 下午2:42:51 * version V1.0 */ package org.dao.impl;import java.io.Serializable; import java.util.Li…

复制vmware overLay网络无法ping通 ping www.baidu.com可以

因为忘记关闭防火墙了&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 要永久关闭&#xff01;&#xff01; 修改hostname https://blog.csdn.net/qq_27327261/article/details/109100219 关闭防火墙 https://blog.csdn.net/qq_27327261/article/details/1…

2016.NET Core相关内容回顾

每一年的脚步的确是快&#xff0c;转眼间马上就2017。.NET Core 2014年宣布开源以来&#xff0c;在2016年发布了第一个版本&#xff0c;2017年将发布第二个版本&#xff0c;在这新年之际&#xff0c;我们回顾2016年&#xff0c;新的一年&#xff0c;带着理想和抱负继续出发。 1…

使用JDBCTemplate实现与Spring结合,方法公用 ——Spring配置(applicationContext.xml)

<?xml version"1.0" encoding"UTF-8"?> <beansxmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:p"http://www.springframework.org/schema/p"xs…

微服务化的数据库设计与读写分离

转载自 微服务化的数据库设计与读写分离 数据库永远是应用最关键的一环&#xff0c;同时越到高并发阶段&#xff0c;数据库往往成为瓶颈&#xff0c;如果数据库表和索引不在一开始就进行良好的设计&#xff0c;则后期数据库横向扩展&#xff0c;分库分表都会遇到困难。 对于…

centos7 切换中文输入法 无需安装

*************** 当你发现自己的才华撑不起野心时&#xff0c;就请安静下来学习吧&#xff01;***************

Consul 服务注册与服务发现

1. 服务注册 对 Consul 进行服务注册之前&#xff0c;需要先部署一个服务站点&#xff0c;我们可以使用 ASP.NET Core 创建 Web 应用程序&#xff0c;并且部署到 Ubuntu 服务器上。 ASP.NET Core Hell World 应用程序示例代码&#xff0c;只需要三个文件&#xff0c;Startup.cs…

Java Base64 编码解码方案总结

转载自 Java Base64 编码解码方案总结 Base64是一种能将任意Binary资料用64种字元组合成字串的方法&#xff0c;而这个Binary资料和字串资料彼此之间是可以互相转换的&#xff0c;十分方便。在实际应用上&#xff0c;Base64除了能将Binary资料可视化之外&#xff0c;也常用来…

babel基本使用

babel 转码器es6->es5 第一步 安装babel工具&#xff0c;使用命令,查看版本号 npm install --global babel-clibabel --version第二步 配置文件 .babelrc&#xff08;后缀名固定&#xff09; {"presets": ["es2015"],"plugins": [] }第…

tar (child): .tgz\r:无法 open: 没有那个文件或目录

Linux下运行bash脚本显示“: /usr/bin/env: "bash\r": 没有那个文件或目录 程序员小熊 2017-12-18 14:45:45 18395 收藏 7 分类专栏&#xff1a; Linux 版权 用 ./ 运行bash脚本文件出现 报错信息 /usr/bin/env: "bash\r": 没有那个文件或目录 错误原…

Entity Framework Core 1.1 升级通告

Entity Framework Core&#xff08;EF Core&#xff09;是一个轻量级的&#xff0c;可扩展和实体框架的跨平台版本。今天&#xff0c;我们宣布 Entity Framewor Core 1.1 正式可用了。 EF Core 和 .NET Core 遵循相同的发行周期。每2个月不断的改进和每6个月的新功能发布。这是…

聊聊微服务架构及分布式事务解决方案

转载自 聊聊微服务架构及分布式事务解决方案 分布式事务场景如何设计系统架构及解决数据一致性问题&#xff0c;个人理解最终方案把握以下原则就可以了&#xff0c;那就是&#xff1a;大事务小事务&#xff08;原子事务&#xff09;异步&#xff08;消息通知&#xff09;&am…

2014年JAVA省赛B组---第四题---大衍数列

【答案】&#xff1a; i % 2 0 public class TEST { // 奇偶数判断&#xff1a;x % 2 0public static void main(String[] args) {for (int i 1; i < 100; i) {if (i % 2 0) // 填空System.out.println(i * i / 2);elseSystem.out.println((i * i - 1) / 2);}}}

使用熔断器设计模式保护软件

作为软件开发人员&#xff0c;我们的生活是快节奏的&#xff0c;我们采用的是敏捷软件开发方法&#xff0c;迭代式的开发我们软件功能&#xff0c;开发完成提交测试&#xff0c;通过了QA的测试后被部署到生产环境&#xff0c;然后可怕的事情在生产环境里发生了&#xff0c;生产…

好的句子

"大概每个人都会遇到一个不能在一起的人&#xff0c;放手舍不得&#xff0c;坚持又太累&#xff0c;这样的爱而不得最是煎熬。" 你要去做一个懂事的大人&#xff0c;不要回头&#xff0c;不要难过。

hql投影查询之—— [Ljava.lang.Object; cannot be cast to cn.bdqn.guanMingSys.entity.Notice

最近在做项目中遇到一个简单的问题&#xff0c;但是解决了好久&#xff0c;问题就是投影查询。 先来看看出现的异常&#xff1a; java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to cn.bdqn.guanMingSys.entity.Notice at cn.bdqn.guanMingSys.dao.i…