java通用查询方法_自己写了一个通用查询方法

本文介绍了一个使用 Java 连接 Oracle 数据库并执行参数化 SQL 查询的例子。通过建立数据库连接、准备 SQL 语句并传递参数,实现了从指定表中检索数据的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.softfz.Test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class Test1 {

public static Connection getCon(){

Connection con = null;

try {

String url = "jdbc:oracle:thin:@localhost:1521:oracle";

String user = "ddd";

String psd = "ddd";

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection(url,user,psd);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println("con:"+con);

return con;

}

public List select(List slist){

List list = new ArrayList();

Connection conn = this.getCon();

PreparedStatement psmt = null;

ResultSetMetaData rsmd = null;

int columnCount = -1;

ResultSet rs = null;

try {

for(Object oj :slist){

Map smap = (Map)oj;

String sql = (String)smap.get("sql");

psmt= conn.prepareStatement(sql);

List mlist = (List)smap.get("list");

for(int i =0;i

psmt.setObject(i+1, mlist.get(i));

}

rs = psmt.executeQuery();

while(rs.next()){

Map map = new HashMap();

rsmd = rs.getMetaData();

columnCount = rsmd.getColumnCount();

for(int j=1;j

map.put(rsmd.getColumnName(j), rs.getObject(rsmd.getColumnName(j)));

}

list.add(map);

}

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return list;

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Test1 test = new Test1();

Map mmap = new HashMap();

List mlist = new ArrayList();

List seList = new ArrayList();

mlist.add("888888");

mmap.put("sql", "select * from sys_user where v_password=?");

mmap.put("list", mlist);

seList.add(mmap);

for(Object oc:test.select(seList)){

System.out.println(oc);

}

}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值