j2ee访问oracle数据库封装类以及调用方法
来源:互联网 发布:ai软件怎么下载 编辑:程序博客网 时间:2024/06/04 20:13
1.建立Oracle包,在该包内建立DB函数
package Oracle;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
/**
*
* @author ZMR
*/
public class DB {
private String URL="jdbc:oracle:thin:@IP+端口:FD";
private String name="system";
private String password="Dreamtech508";
private Connection conn = null;
private ResultSet rs=null;
private PreparedStatement ps=null;
private CallableStatement proc = null;
/*
* 数据库连接
*/
private void ConOracle() throws ClassNotFoundException, SQLException
{
if(conn==null)
{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn= DriverManager.getConnection(URL,name,password);
}
}
/*
* 关闭数据库
*/
public void CloseOracle() throws SQLException
{
if(rs!=null)
{
rs.close();
}
if(proc!=null)
{
proc.close();
}
if(conn!=null)
{
conn.close();
}
}
/*
* 执行存储过程
* @param storeName存储过程名称
* @param params哈希表,key 1:int 2:String 3:out型参数
* @param out说明返回值是否是OutParameter参数 true是 false否
*/
public ResultSet ExectStoreSet(String storeName, Map<String,String> params, Boolean out) throws ClassNotFoundException, SQLException
{
ConOracle();
int count=0;
if(params!=null)
{
int i=1;
count=params.size();
String args="(";
for(int j=1; j<=count; j++)
{
args+="?";
if(j<count)
{
args+=",";
}
}
args+=")";
proc=conn.prepareCall("{ call "+storeName+args+"}");
Iterator it = params.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
String key = entry.getKey().toString();
if(key.charAt(0)=='1') //说明参数是int类型
{
proc.setInt(i,Integer.parseInt(entry.getValue().toString()));
}
else if(key.charAt(0)=='2') //说明参数是string类型
{
proc.setString(i, entry.getValue().toString());
}
else //说明参数是返回游标
{
proc.registerOutParameter(i,oracle.jdbc.OracleTypes.CURSOR);
}
i++;
}
}
else{
proc=conn.prepareCall("{ call "+storeName+"}");
}
// proc.execute();
if(out)
{
proc.execute();
rs=(ResultSet)proc.getObject(count);
}
else{
rs=(ResultSet)proc.executeQuery();
}
return rs;
}
}
2.调用方法:
String id=request.getParameter("id").toString();
String startTime=request.getParameter("startTime").toString();
String endTime=request.getParameter("endTime").toString();
DB db=new DB();
Map<String,String> ar = new LinkedHashMap<String,String>();
ar.put("21",id);
ar.put("22",startTime); //注意键值必须是不同的,以2开头就可以了,具体注释请看数据库类DB
ar.put("23",endTime);
ar.put("3","");
String sb="[";
ResultSet rs=db.ExectStoreSet("PRO_GETAreaDeviation",ar,true);
while(rs.next())
{
sb+="{rmse:"+rs.getString(1)+",mae:"+rs.getString(2)+"}]";
}
db.CloseOracle();
OK
- j2ee访问oracle数据库封装类以及调用方法
- C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
- C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
- C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
- C# .NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
- C#数据库访问封装类
- ACCESS数据库访问类封装
- 封装的数据库访问类
- shell 调用oracle数据库方法
- oracle数据库访问类
- Oracle连接数据库封装类
- Oracle连接数据库封装类
- J2EE-PL/SQL工具连接Oracle数据库的方法
- 封装的访问sql数据库的类
- 对数据库访问基类进行封装
- 封装ADO访问数据库的两个类
- C# SQLite数据库 访问封装类
- HBase数据库访问封装
- android AVD工具使用说明
- 第一章预习,操作系统概论
- PHP 打印空心菱形
- myeclipse 提示xml 标签属性
- HTC G6 无线上网 升级2.2系统
- j2ee访问oracle数据库封装类以及调用方法
- 面对海量信息如何进行时间管理
- 文件夹路径问题
- ASP.NET 磁盘操作 文件体系 IO体系 DriveInfo类
- Ubuntu下安装Tomcat 6
- 数据库中的Date,DateTime和TimeStamp类型
- 黑马总结:el表达式${user.address.contact.mobileTelephone}为什么可以实现输出属性值
- 项目描述修改
- 删除行末的空格及制表符,并删除全是空格的行