一.JAVA对象
public class User implements Serializable { private static final long serialVersionUID = -6919964218508186044L; private int id; private String name; private Date birthday; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
二.JAVA对象对应XML配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap namespace="testProcedure"> <parameterMap class="java.util.Map" id="procedureMap"> <!-- 设置存储过程输出参数 --> <parameter property="curr" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" /> </parameterMap> <!-- resultClass设置游标返回数据类型 --> <procedure id="getAllUser" resultClass="com.bijian.User" parameterMap="procedureMap"> {call getAllUser(?)} </procedure> <!-- 表结构 create table IBATIS_USER ( ID NUMBER not null, NAME VARCHAR2(20) not null, birthday DATE not null ) --> <!-- 存储过程 create or replace procedure getAllUser(curr_users out sys_refcursor) as begin open curr_users for select * from ibatis_user; end; --> </sqlMap>
三.ibatis总配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <properties resource="jdbc.properties"/> <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false"/> <transactionManager type="JDBC" commitRequired="false"> <dataSource type="DBCP"> <property name="JDBC.Driver" value="${jdbc.driverClassName}"/> <property name="JDBC.ConnectionURL" value="${jdbc.url}"/> <property name="JDBC.Username" value="${jdbc.username}"/> <property name="JDBC.Password" value="${jdbc.password}"/> <property name="Pool.MaximumActiveConnections" value="10"/> <property name="Pool.MaximumIdleConnections" value="5"/> <property name="Pool.MaximumCheckoutTime" value="120000"/> <property name="Pool.TimeToWait" value="500"/> <property name="Pool.PingQuery" value="${jdbc.testsql}"/> <property name="Pool.PingEnabled" value="false"/> <property name="Pool.PingConnectionsOlderThan" value="1"/> <property name="Pool.PingConnectionsNotUsedFor" value="1"/> <property name="validationQuery" value="${jdbc.testsql}"/> </dataSource> </transactionManager> <sqlMap resource="com/bijian/User.xml"/> </sqlMapConfig>
总配置对应的属性文件jdbc.properties
#jdbc属性配置信息 #ORACLE jdbc.url=jdbc:oracle:thin:@192.168.1.100:1521:orcl jdbc.driverClassName=oracle.jdbc.driver.OracleDriver jdbc.username=haiya jdbc.password=kingdee jdbc.testsql=select 1 from dual
四.调用主类
public class Test { private static SqlMapClient sqlMapper; static { Reader reader = null; try { reader = Resources.getResourceAsReader("SqlMapConfig.xml"); sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); } catch (Exception e) { e.printStackTrace(); } finally { if(reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { reader = null; } } } } public static void main(String[] args) { try { User user = null; List<User> userList = sqlMapper.queryForList("getAllUser"); for(int i=0;i<userList.size();i++) { user = userList.get(i); System.out.println("id:" + user.getId()); System.out.println("name:" + user.getName()); System.out.println("birthday:" + user.getBirthday()); System.out.println(""); } } catch (SQLException e) { e.printStackTrace(); } } }
相关推荐
ibatis调用oracle存储过程分页
ibatis调用oracle存储过程
Ibatis调用Oracle存储过程,返回自定义的类型。
ibatis调用oracle的函数,存储过程的方法,从网上收集的,还没有整理。
NULL 博文链接:https://fengtiejun.iteye.com/blog/1603851
asp.net实现oracle存储过程增删改查示例 ...(2)oracle存储过程实现增删改查 (3)oracle sql语句实现增删改查 (4)asp.net代码调用 (5)ibatis框实现增删改查 我在公司学习了一个星期的作品,值得大家学习分享
29、super.getClass()方法调用 .......................................................................... 22 30、String 是最基本的数据类型吗? ..............................................................
使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall使用的参数 11.5.7. 如何定义SqlParameters 11.5.8. 使用SimpleJdbcCall调用内置函数 11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 11.6...
使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall使用的参数 11.5.7. 如何定义SqlParameters 11.5.8. 使用SimpleJdbcCall调用内置函数 11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 11.6...
Java面试题31.jdbc调用存储过程 Java面试题32.简单说一下你对jdbc的理解 Java面试题33.写一个jdbc的访问oracle的列子 Java面试题34.jdbc中preparedStatement比Statement的好处 Java面试题35.数据库连接池的作用 Java...
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan ...
│ Java面试题31.jdbc调用存储过程.mp4 │ Java面试题32.简单说一下你对jdbc的理解.mp4 │ Java面试题33.写一个jdbc的访问oracle的列子.mp4 │ Java面试题34.jdbc中preparedStatement比Statement的好处.mp4 │ Java...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...