test.java

来自「Spring2.0宝典」· Java 代码 · 共 83 行

JAVA
83
字号
package lee;

import java.util.List;
import java.util.Iterator;

import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.util.*;
import java.sql.*;
import org.springframework.jdbc.object.StoredProcedure;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.SqlOutParameter;

import oracle.jdbc.OracleTypes;
import org.springframework.jdbc.core.RowCallbackHandler;


/**
 * @author  yeeku.H.lee kongyeeku@163.com
 * @version  1.0
 * Copyright (C), 2005-2008, yeeku.H.Lee
 * This program is protected by copyright laws.
 * Program Name:
 * Date: 
 */

public class Test
{
	
	public static void main(String[] args)throws Exception
	{

		ComboPooledDataSource ds = new ComboPooledDataSource();
		ds.setDriverClass("oracle.jdbc.driver.OracleDriver");
		ds.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:ora9i");
		ds.setUser("scott");
		ds.setPassword("tiger");
        ds.setMaxPoolSize(40);
        ds.setMinPoolSize(2); 
        ds.setMaxStatements(180); 


		MyStoredProcedure pmq = new MyStoredProcedure(ds);

		Map in = new HashMap();
		in.put("deptNo",new Integer(4));
		Map m = pmq.execute(in);

		List l = (List)m.get("deptName");
		for (Iterator it = l.iterator();it.hasNext() ; )
		{
			System.out.println(it.next());
		}

	}

}
class MyStoredProcedure extends StoredProcedure
{
	public MyStoredProcedure(DataSource ds)
	{
        setDataSource(ds);
        setFunction(true);
        setSql("getdept_fun");
        declareParameter(new SqlOutParameter("deptName",  OracleTypes.CURSOR , new RowMapper()
		{
			public Object mapRow(ResultSet rs, int rowNum)throws SQLException
			{
				Person p = new Person();
				p.setName(rs.getString(2));
				p.setAge(rs.getInt(1));
				return p;
			}

		}));
        declareParameter(new SqlParameter("deptNo", Types.INTEGER));
        compile();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?