package  john
import java.io.IOException;
import java.util.*;
public class QueryDataRow
{
public HashMap hashColumn; private String[] data;
public QueryDataRow()
{
super();
}
public String get(String str) throws IOException
{
int colindex = ((Integer) (hashColumn.get(str))).intValue();
return DBUtil.deTransSql(data[colindex]);
}
public void setData(String[] s)
{
this.data = new String[s.length];
for (int i = 0; i < s.length; i++)
{
this.data[i] = s[i];
}
}
public void resetColumn(String columnName, String columnValue)
{
int colindex = ((Integer) (hashColumn.get(columnName))).intValue();
data[colindex] = columnValue;
}
}
package john
import java.util.*;
import java.sql.*;
public class QueryData
{
private ArrayList rows;
public QueryData()
{
rows = new ArrayList();
rows.clear();
}
public boolean setData(ResultSet rs) throws Exception
{
boolean ret = false;
try
{
ResultSetMetaData rsdata = rs.getMetaData();
int ColumnCount = rsdata.getColumnCount();
String Columns[] = new String[ColumnCount]; HashMap hashColumn = new HashMap(); for (int i = 0; i < ColumnCount; i++)
{
Columns[i] = rsdata.getColumnName(i + 1);
hashColumn.put(Columns[i], new Integer(i));
}
while (rs.next())
{
String rowdata[] = new String[ColumnCount]; for (int i = 0; i < ColumnCount; i++)
{
String column = Columns[i]; String value = rs.getString(column); value = (value != null ? value : "");
rowdata[i] = value;
} QueryDataRow row = new QueryDataRow();
row.hashColumn = hashColumn;
row.setData(rowdata);
rows.add(row);
} ret = true;
}
catch (Exception e)
{
ret = false;
throw e;
}
return ret;
}
public boolean removeRow(int index) throws Exception
{
try
{
if (rows != null)
{
rows.remove(index);
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
throw ex;
}
}
public QueryDataRow getRow(int index) throws Exception
{
try
{
if (rows != null)
{
QueryDataRow row = new QueryDataRow();
return (QueryDataRow) rows.get(index);
}
else
{
return null;
} } catch (Exception ex)
{
throw ex;
}
}
public int size()
{
if (rows != null)
{
return rows.size();
}
else
{
return 0;
}
}
}
package john
import java.io.IOException;
import java.sql.*;
import javax.sql.*; public class DBUtil
{ public static final String STRING = "0";
public static final String DATE = "1";
public static final String INT = "2"; private Connection conn = null; //DB接続 private ResultSet sqlResult = null;
private DataSource ds = null;
Statement sqlStatement = null; /* エラー情報*/
public String errStr = null; private static Logger logger = Logger.getLogger(DBUtil.class.getName()); static
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
public DBUtil(Connection pConn)
{
conn = pConn; //DB接続 sqlResult = null;
ds = null;
sqlStatement = null;
errStr = new String("");
}
public Connection connOpen() throws Exception
{
try
{
if (Common.CONN_FLAG == true)
{
String strDbIp = Common.getData("other.dbhost");
String strDbPort = Common.getData("other.dbport");
String strDbName = Common.getData("other.dbname");
String strUsername = Common.getData("other.dbuser");
String strPassword = Common.getData("other.dbpswd");
String strDBUrl = "jdbc:oracle:thin:@"+strDbIp+":"+strDbPort+":"+strDbName;
conn = DriverManager.getConnection(strDBUrl, strUsername, strPassword);
}
conn.setAutoCommit(false);
sqlStatement = null;
sqlStatement = conn.createStatement();
return conn;
}
catch (SQLException e)
{
String strErr = "SQL connection error: /n"
+ e.getMessage();
logger.error("DBUTIL",strErr);
this.errStr += strErr;
throw new BaseException("syserr");
}
}
public void connClose() throws Exception
{
try
{
if(sqlStatement != null)
sqlStatement.close();
sqlStatement = null;
if(conn != null)
if(!conn.isClosed())
conn.close();
conn = null;
}
catch (SQLException ex)
{
logger.error("DBUTIL",ex.getMessage());
logger.error("DBUTIL","DB closing exception!");
throw new BaseException("syserr");
}
}
public QueryData selQuery(String strQuerySQL) throws Exception
{
try
{
QueryData qd = new QueryData();
Statement tmpSQLStatement = conn.createStatement();
tmpSQLStatement.execute(transSql(strQuerySQL));
sqlResult = null;
sqlResult = tmpSQLStatement.getResultSet();
qd.setData(sqlResult);
if(sqlResult != null) sqlResult.close();
sqlResult = null;
tmpSQLStatement.close();
tmpSQLStatement = null;
logger.error("DBUTIL",strQuerySQL);
return qd;
}
catch(Exception e)
{
logger.error("DBUTIL","SQL error: " + strQuerySQL);
logger.error("DBUTIL",e.getMessage());
throw new BaseException("syserr");
}
finally
{
}
}
public QueryData selQureyPrep(String pQuerySql,String[][] conditionlist) throws Exception
{
try
{
QueryData qd = new QueryData();
PreparedStatement prep = conn.prepareStatement(transSql(pQuerySql));
int cnt = 0;
for (int x = 0; x < conditionlist.length;x++)
{
boolean isFalse = true;
while (isFalse)
{
int mode = 0;
String strMode =conditionlist[x][0];
if (!Common.checkNull(strMode))
{
isFalse = false;
break;
}
else
{
cnt++;
mode = Integer.parseInt(strMode);
}
switch (mode)
{
case 0:
prep.setString(cnt,String.valueOf(conditionlist[x][1]));
isFalse = false;
break;
case 1:
prep.setDate(cnt,Date.valueOf(conditionlist[x][1]));
isFalse = false;
break;
case 2:
prep.setInt(cnt,Integer.parseInt(conditionlist[x][1]));
isFalse = false;
break;
default :
isFalse = false;
break;
}
}
}
sqlResult = null;
sqlResult = prep.executeQuery();
qd.setData(sqlResult);
if(sqlResult != null) sqlResult.close();
sqlResult = null;
prep.close();
prep = null;
logger.error("DBUTIL",pQuerySql);
return qd;
}
catch(Exception e)
{
logger.error("DBUTIL","SQL error: " + pQuerySql);
logger.error("DBUTIL",e.getMessage());
throw new BaseException("syserr");
}
finally
{
}
}
public ResultSet selQuery_large(String strQuerySQL) throws Exception
{
try
{
sqlStatement.execute(transSql(strQuerySQL));
sqlResult = sqlStatement.getResultSet();
logger.error("DBUTIL",strQuerySQL);
return sqlResult;
}
catch(SQLException e)
{
logger.error("DBUTIL","SQL error: " + strQuerySQL);
logger.error("DBUTIL",e.getMessage());
throw new BaseException("syserr");
}
finally
{
}
}
public void doQuery(String strQuerySQL) throws Exception
{
try
{
Statement SQLStatement = conn.createStatement(); SQLStatement.executeUpdate(transSql(strQuerySQL));
logger.error("DBUTIL",strQuerySQL);
SQLStatement.close();
SQLStatement = null; }
catch(SQLException e)
{
logger.error("DBUTIL","SQL error: " + strQuerySQL);
logger.error("DBUTIL",e.getMessage());
throw new BaseException("syserr");
}
finally
{
}
}
public void doQueryPrep(String pQuerySql,String[][] conditionlist) throws Exception
{
try
{
PreparedStatement prep = conn.prepareStatement(transSql(pQuerySql));
int cnt = 0;
for (int x = 0; x < conditionlist.length;x++){
boolean isFalse = true;
while (isFalse){
int mode = 0;
String strMode =conditionlist[x][0];
if (!Common.checkNull(strMode)){
isFalse = false;
break;
}else{
cnt++;
mode = Integer.parseInt(strMode);
}
switch (mode) {
case 0:
prep.setString(cnt,String.valueOf(conditionlist[x][1]));
isFalse = false;
break;
case 1:
prep.setDate(cnt,Date.valueOf(conditionlist[x][1]));
isFalse = false;
break;
case 2:
prep.setInt(cnt,Integer.parseInt(conditionlist[x][1]));
isFalse = false;
break;
default :
isFalse = false;
break;
}
}
}
prep.executeUpdate();
logger.error("DBUTIL","SQL error: " + pQuerySql);
prep.close();
prep = null; }
catch(SQLException e)
{
logger.error("DBUTIL","SQL error: " + pQuerySql);
logger.error("DBUTIL",e.getMessage());
throw new BaseException("syserr");
}
finally
{
}
}
public boolean doCommit() throws Exception
{
try
{
conn.commit();
return true;
}
catch (SQLException e)
{
logger.error("DBUTIL","SQL commit error! ");
logger.error("DBUTIL",e.getMessage());
conn.rollback();
throw new BaseException("syserr");
}
finally
{
}
}
public void doRollback() throws Exception
{
try
{
if(conn != null)
conn.rollback();
}
catch (Exception e)
{
logger.error("DBUTIL","SQL rollback error! " );
logger.error("DBUTIL",e.getMessage());
}
}
public static String transSql(String strInput) throws IOException
{
String strOutput = strInput;
//return EucJpFile.toJIS(strOutput);
return strOutput;
}
public static String deTransSql(String strInput) throws IOException
{
String strOutput = strInput;
return strOutput;
//return EucJpFile.toCp932(strOutput);
}
}

以下是JAVA对DB操作的一种实现方式,与大家一起共享,对初学者可能有一定的帮助,当然对高手而 言,用处就不见的大了,欢迎大家提出更好的意见和建议.为了商业规则,代码的注释去掉了,请大家见谅.

JAVA数据库处理(连接,数据查询,结果集返回)的更多相关文章

  1. Java对MySQL数据库进行连接、查询和修改(转)

    Java对MySQL数据库进行连接.查询和修改 0. 一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection( ...

  2. Java数据库学习之模糊查询(like )

    Java数据库学习之模糊查询(like ): 第一种方式:直接在SQL语句中进行拼接,此时需要注意的是parm在SQL语句中需要用单引号拼接起来,注意前后单引号之间不能空格 String sql = ...

  3. C# - VS2019 WinFrm应用程序连接Access数据库,并简单实现数据库表的数据查询、显示

    序言 众所周知,Oracle数据库和MySQL数据库一般在大型项目中使用,在某些小型项目中Access数据库使用较为方便,今天记录一下VS2019 WinFrm应用程序连接Access数据库,并实现数 ...

  4. Java对MySQL数据库进行连接、查询和修改【转载】

    一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection()方法,获得一个Connection对象. (3) 创 ...

  5. Java数据库——处理大数据对象

    处理大数据对象 CLOB中可以存储海量文字 BLOB中可以存储海量二进制数据 如果程序中要想处理这样的大对象操作,则必须使用PreparedStatement完成,所有的内容要通过IO流的方式从大文本 ...

  6. Java网页数据采集器[下篇-数据查询]【转载】

    本期概述 上一期我们学习了如何将html采集到的数据存储到MySql数据库中,这期我们来学习下如何在存储的数据中查询我们实际想看到的数据. 数据采集页面 2011-2012赛季英超球队战绩 如果是初学 ...

  7. python中的MySQL数据库操作 连接 插入 查询 更新 操作

    MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...

  8. java数据库编程之高级查询

    第三章:高级查询(-) 3.1:修改表 3.1.1:修改表 语法: Alter table <旧表名> rename [ TO] <新表名>; 例子:Alter table ` ...

  9. Java数据库学习之分页查询

    分页查询  limit [start],[rows] 思路: pram start 从哪一行开始 关键是从哪一行开始,需要根据查询的页数来进行换算出查询具体页数是从哪一行开始 start = (pag ...

随机推荐

  1. LightOj 1096 - nth Term (矩阵快速幂,简单)

    题目 这道题是很简单的矩阵快速幂,可惜,在队内比赛时我不知什么时候抽风把模版中二分时判断的 ==1改成了==0 ,明明觉得自己想得没错,却一直过不了案例,唉,苦逼的比赛状态真让人抓狂!!! #incl ...

  2. LeeCode 1-Two Sum

    Two Sum Total Accepted: 125096 Total Submissions: 705262 Question Solution Given an array of integer ...

  3. git的学习网站

    git官网:http://git-scm.com/ http://gitref.org/index.html http://edu.51cto.com/lesson/id-33751.html     ...

  4. UML建模之活动图介绍(Activity Diagram)

    一.活动图的组成元素 Activity Diagram Element 1.活动状态图(Activity) 2.动作状态(Actions) 3.动作状态约束(Action Constraints) 4 ...

  5. 删除元素 不存在 NO 存在 输出余下元素

    #include<stdio.h> #include<stdlib.h> #define N 5 #define NULL 0 #define OK 1 #define ERR ...

  6. 坑爹的Mysql

    本想尝试下如何使用Spring来管理Hibernate的事务,当配置好Spring的配置文件后,进行插入数据,结果报错了,错误是: Mysql Field * doesn't have a defau ...

  7. 成为一个PHP专家:缺失的环节

    这一篇文章是“Becoming a PHP Professional”系列 4 篇博文中的第 1 篇. 当浏览各类与PHP相关的博客时,比如Quora上的问题,谷歌群组,简讯和杂志,我经常注意到技能的 ...

  8. apk反编译(8)如何完全防止反编译?

    在android 的应用很难做到完全防止反编译,即使用ProGuard混淆的后,也能得到smali代码,这个语法也很简单,很容易理解. 只能通过增加破解难度和成本,使破解者失去耐心. 其中一个常见解决 ...

  9. SharePoint2010安装文档

    最低配置要求 操作系统 X64 Window Server 2008 R2 Standard 数据库 X64 SQL Server 2008 R2 CPU X64,4核 内存 8G 硬盘 100G 安 ...

  10. combination-sum-ii(熟悉下Java排序)

    代码还是这一块代码,但是还是写的很慢.. 其中用到了Java对 List的排序.查了很久,发现使用 Collections.sort 很方便. 另外对结果的去重,使用了 Java的HashSet. h ...