Java连接操作oracle数据库示意

代码包括数据库连接、断开,为了适应大量不同名表的查询,编写了通用的查询表查询逻辑。
package Test;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class DBTest{
    public static String ConnectionString = null;
    public static String UserName = null;
    public static String PassWord = null;

    public static Connection Conn;
    public static Statement Stmt;

    //获取主表数据    
    private static List<String> getData(){   
        String tableName = "TestTable";
        ResultSet result = null;
        ResultSetMetaData md=null;
        String mSql=new String();
        mSql = "select * from "+tableName;
        if(OpenConnection()){
            try {
                //执行sql语句
                result = Stmt.executeQuery(mSql);
                //移动指针到数据库第一行
                result.next();
                //获取行数
                md = result.getMetaData();
                int colnum = md.getColumnCount();
                for(int i=1;i<=colnum;i++){
                    dataList.add(result.getString(i));
                }
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            CloseConnection();//关闭链接
        }
        return dataList;
    }

    /*
        通用查表方法
        queryStrs--查询条件字段名
        queryVals--查询条件id串
        tableNames--表名
        returnStrs--查询得到字段名
    */
    private static List<List<String>> getSub(List<String>queryStrs,List<String> queryVals,List<String> tableNames,List<String> returnStrs){
        List<List<String>> subResults = new ArrayList<List<String>>();

        for(int i=0;i<queryStrs.size();i++){
            List<String> subResult = new ArrayList<String>();
            ResultSet result = null;
            String mSql=new String();
            mSql = "select " +returnStrs.get(i)+ " from " +tableNames.get(i)+ " where " +queryStrs.get(i)+ " IN (" +queryVals.get(i)+ ")";
            if(OpenConnection()){
                try {
                    result = Stmt.executeQuery(mSql);
                    //迭代每一行
                    while(result.next()){
                        subResult.add(result.getString(returnStrs.get(i)));
                    }
                } catch (SQLException e) {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                }
                CloseConnection();//关闭链接
            }
            subResults.add(subResult);
        }
        return subResults;
    }

    //连接数据库
    private static boolean OpenConnection(){
        ClassString="oracle.jdbc.driver.OracleDriver";
        ConnectionString="jdbc:oracle:thin:@localhost:1521:orcl";
        UserName="test";
        PassWord="root";
        boolean mResult=true;
        try{
            Class.forName(ClassString);
            if((UserName==null) && (PassWord==null)){
                Conn= DriverManager.getConnection(ConnectionString);
            }else{
                Conn= DriverManager.getConnection(ConnectionString,UserName,PassWord);
            }
            Stmt=Conn.createStatement();
            mResult=true;
        }
        catch(Exception e){
            System.out.println(e.toString());
            mResult=false;
        }
        return (mResult);
    }

    //关闭数据库连接
    public static void CloseConnection(){
        try{
            Stmt.close();
            Conn.close();
        }
        catch(Exception e){
            System.out.println(e.toString());
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值