spring 中使用jdbctemplate调用Oracle的存储过程
来源:互联网 发布:jhene aiko 知乎 编辑:程序博客网 时间:2024/04/29 16:51
RT,如果你的懂得编写Oracle的存储过程那就更好懂了,下面直接上代码
spring配置Oracle数据源
这个是properties文件的内容
jdbc.driverClassName2=oracle.jdbc.driver.OracleDriverjdbc.url2=jdbc\:oracle\:thin\:@192.168.202.129\:1521\:orcljdbc.username2=scottjdbc.password2=tiger<bean id="dataSource" destroy-method="close"class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="${jdbc.driverClassName2}" /><property name="url" value="${jdbc.url2}" /><property name="username" value="${jdbc.username2}" /><property name="password" value="${jdbc.password2}" /></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource" /></bean><bean id="baseDao" class="com.will.userDao.BaseDao" abstract="true"><property name="jdbcTemplate" ref="jdbcTemplate" /></bean><bean id="userDao" class="com.will.userDao.UserDao" parent="baseDao" /></beans>
先写个BaseDao的抽象类,然后直接继承这个抽象类就可以使用通用的方法了
public abstract class BaseDao {private JdbcTemplate jdbcTemplate;public JdbcTemplate getJdbcTemplate() {return jdbcTemplate;}public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}}
public class UserDaoImpl extends BaseDao{@SuppressWarnings("unchecked")public List<Emp> testProcedure2(String sql) {List<Emp> list = (List<Emp>) this.jdbcTemplate.execute(sql,new CallableStatementCallback() {public Object doInCallableStatement(CallableStatement cs)throws SQLException, DataAccessException {List<Emp> emps = new ArrayList<Emp>();// TODO Auto-generated method stubcs.setInt(1, 10);cs.registerOutParameter(2, OracleTypes.CURSOR);cs.execute();ResultSet rs = (ResultSet) cs.getObject(2);while (rs.next()) {Emp emp = new Emp();emp.setEmpno(rs.getInt("empno"));emp.setEname(rs.getString("ename"));emp.setJob(rs.getString("job"));emp.setMgr(rs.getInt("mgr"));emp.setHiredate(rs.getDate("hiredate"));emp.setSal(rs.getInt("sal"));emp.setComm(rs.getInt("comm"));emp.setDeptno(rs.getInt("deptno"));emps.add(emp);}return emps;}});return list;}
用junit测试是否调用成功,之间有通过server层再到dao层,
@Testpublic void testJTProcedure() {String sql = "{call sp_pro15(?,?)}";List<Emp> list = this.um.testProcedure2(sql);for (Emp emp : list) {System.out.println(emp.getEmpno() + " --- " + emp.getEname()+ " --- " + emp.getHiredate());}}
结果:
能成功的,我就不显示了,因为Oracle装置虚拟机里的Linux系统里面,请见谅……
- spring 中使用jdbctemplate调用Oracle的存储过程
- 使用Spring的JdbcTemplate调用Oracle的存储过程
- 使用Spring的JdbcTemplate调用Oracle的存储过程
- 使用Spring的JdbcTemplate调用Oracle的存储过程
- 在SSH中通过spring的jdbctemplate接口调用oracle数据库的函数与存储过程
- 使用spring中的JdbcTemplate调用oracle中的有出入参数的存储过程
- 使用Spring JdbcTemplate调用存储过程
- 使用Spring JdbcTemplate调用存储过程
- 使用Spring JdbcTemplate调用存储过程
- 使用Spring JdbcTemplate调用存储过程
- spring的jdbcTemplate调用存储过程
- Spring如何使用JdbcTemplate调用存储过程的三种情况
- Spring如何使用JdbcTemplate调用存储过程的三种情况
- Spring如何使用JdbcTemplate调用存储过程的三种情况
- Spring如何使用JdbcTemplate调用存储过程的三种情况
- Spring JdbcTemplate 调用MySQL存储过程
- 使用JdbcTemplate调用数据库存储过程
- jdbcTemplate 调用存储过程
- Java和C++的对照
- 数据库主键的设计
- xp开机启动tomcat服务
- 网站安全狗Apache v2.0正式版【免费xp系统下载】
- SSH框架的搭建与配置文件的书写格式
- spring 中使用jdbctemplate调用Oracle的存储过程
- Maya: 菜单 曲面 >放样
- Unix环境高级编程学习笔记整理
- result
- hdu 2242 (Tarjan + 树形dp)
- hdu(1031)Design T-Shirt
- Maya: 菜单 曲面 >平面
- vc输出调试信息的方法
- OSASK笔记