- 浏览: 61736 次
- 性别:
- 来自: 杭州
最近访客 更多访客>>
最新评论
-
softor:
能否将一个.war的文件设成虚拟目录?
Jboss虚拟目录 -
jolestar:
不知道啥原因,我的一个朋友也这么说。不过我的ff一直稳定,无论 ...
火狐(fireFox)浏览器就知道吹牛(实际使用感受) -
Firede:
我家的IE7经常假死,
FF倒是跑的很顺。
用FF不因为别的 ...
火狐(fireFox)浏览器就知道吹牛(实际使用感受) -
ashion:
引用CS,CS-Source,帝国时代3,极品飞车10(英文) ...
玩QQ游戏每天超过2小时的人比较弱智 -
pig345:
哥们同情你。我目前正要离开这样一个小公司
这里的博客相册可以当网络硬盘使用
package ecogp.dml;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import org.apache.log4j.Logger;
import oracle.jdbc.driver.OracleDriver;
/**
* <P>データベースをアクセス</P>
*
* @author B.Gao
*
*/
public class DBAccess {
private Connection conn = null;
/** ステートメントオブジェクト */
private Statement stmt;
static Logger logger = Logger.getLogger(DBAccess.class.getName());
/** プリペアードステートメントオブジェクト */
private PreparedStatement pstmt;
public void createConnection(String dbServer, String dbName, String dbUser, String dbPassword) {
String url = "jdbc:oracle:thin:@" + dbServer + ":" + "1521" + ":" + dbName;
try {
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection(url, dbUser, dbPassword);
conn.setAutoCommit(false);
} catch (Exception e) {
System.out.println(e.toString());
logger.debug("DBの接続に失敗します。");
conn = null;
}
}
public Connection getConn() {
return this.conn;
}
public boolean isConnection() throws SQLException{
boolean ret*** = true;
if (conn == null || conn.isClosed()) {
ret*** = false;
}
return ret***;
}
/**
* 値を返す SQL を実行する。
* <p>
* 値を返す SQL とは、たとえば、select があげられる。
* <p>
* @param sql 実行したい SQL文字列
* @return ResutSet オブジェクト
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public ResultSet executeQuery(String sql) throws SQLException {
System.out.println(sql);
ResultSet rslt = null;
try {
if (stmt != null) {
stmt.close();
}
stmt = conn.createStatement();
rslt = stmt.executeQuery(sql);
}
catch (SQLException e) {
throw e;
}
return rslt;
}
/**
* 値を返さない SQL を実行する。
* <p>
* 値を返さない SQL とは、たとえば、insert、update があげられる。
* SQL は、外部ファイルに記載した PreparedStatement 用 SQL 構文を使用する。
* <p>
* @param sql 実行したい SQL文字列
* @return 処理件数
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public int executeUpdate(String sql) throws SQLException {
System.out.println(sql);
int status = 0;
try {
if (stmt != null) {
stmt.close();
}
stmt = conn.createStatement();
status = stmt.executeUpdate(sql);
}
catch (SQLException e) {
throw e;
}
return statu*;
}
/**
* **ecuteUpdate にて、前回実行したSQLと変更がない場合には、prepareStatement の生成を行わない。
* そのために、前回実行したSQLの番号を保存するための変数。
*/
private String lastPrepareSQL = "";
private HashMap preparedStatementCache = new HashMap();
/**
* 値を返す SQL を実行する。
* <p>
* 値を返す SQL とは、たとえば、select があげられる。
* SQL は、外部ファイルに記載した PreparedStatement 用 SQL 構文を使用する。
* <p>
* @param sqlid 実行したい SQLのID
* @param sqlparams SQL のパラメータ(パラメータがない場合には、null)
* @return ResutSet オブジェクト
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public ResultSet executeQuery(String sql, Object[] sqlparams) throws SQLException {
System.out.println(sql);
if (sqlparams == null || sqlparams.length == 0) {
if (stmt != null) {
stmt.close();
}
stmt = conn.createStatement();
return stmt.executeQuery(sql);
}
else {
try {
if (lastPrepareSQL.equals(sql) && pstmt != null) {
// 前回実行した SQL と同じであれば、ステートメントを再利用する
}
else {
if (pstmt != null) {
pstmt.close();
}
pstmt = conn.prepareStatement(sql);
lastPrepareSQL = sql;
}
for (int i = 0; i < sqlparams.length; i++) {
try {
pstmt.setObject(i + 1, sqlparams[i]);
}
catch (SQLException e) {
throw e;
}
}
return pstmt.executeQuery();
}
catch (SQLException e) {
throw e;
}
}
}
/**
* 値を返さない SQL を実行する。
* <p>
* 値を返さない SQL とは、たとえば、insert、update があげられる。
* <p>
* @param sqlid 実行したい SQLのID
* @param sqlparams SQL のパラメータ(パラメータがない場合には、null)
* @return 処理件数
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public int executeUpdate(String sql, Object[] sqlparams) throws SQLException {
System.out.println(sql);
if (sqlparams == null || sqlparams.length == 0) {
if (stmt != null) {
stmt.close();
}
stmt = conn.createStatement();
return stmt.executeUpdate(sql);
}
else {
try {
if (lastPrepareSQL.equals(sql) && pstmt != null) {
// 前回実行した SQL と同じであれば、ステートメントを再利用する
}
else {
if (pstmt != null) {
pstmt.close();
}
pstmt = conn.prepareStatement(sql);
lastPrepareSQL = sql;
}
// StringBuffer logString = new StringBuffer(512);
for (int i = 0; i < sqlparams.length; i++) {
try {
pstmt.setObject(i + 1, sqlparams[i]);
// logString.append(sqlparams[i] + ",");
}
catch (SQLException e) {
// cat.error(
// "executeUpdate(id,obj[]) setObject:SqlParams[" + i +
// "]=" + sqlparams[i]);
throw e;
}
pstmt.addBatch();
}
return pstmt.executeUpdate();
}
catch (SQLException e) {
throw e;
}
}
}
/**
* commit を実行する。
* <p>
* データベースへの接続は、AutoCommit を行っていないため、すべての処理が正常に完了した場合には、
* 最後に必ず このメソッドを呼び出す。
* <p>
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public void commit() throws SQLException {
if (conn != null)
conn.commit();
}
/**
* rollback を実行する。
* <p>
* 処理が正常に完了しなかった場合には、このメソッドを呼び出して、データベースへの更新の
* 取消を行う。
* <p>
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public void rollback() throws SQLException {
if (conn != null && conn.isClosed()==false){
conn.rollback();
}
}
/**
* Connectionのcloseを行う
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public void releaseConnection() throws SQLException {
if (stmt != null) {
stmt.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import org.apache.log4j.Logger;
import oracle.jdbc.driver.OracleDriver;
/**
* <P>データベースをアクセス</P>
*
* @author B.Gao
*
*/
public class DBAccess {
private Connection conn = null;
/** ステートメントオブジェクト */
private Statement stmt;
static Logger logger = Logger.getLogger(DBAccess.class.getName());
/** プリペアードステートメントオブジェクト */
private PreparedStatement pstmt;
public void createConnection(String dbServer, String dbName, String dbUser, String dbPassword) {
String url = "jdbc:oracle:thin:@" + dbServer + ":" + "1521" + ":" + dbName;
try {
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection(url, dbUser, dbPassword);
conn.setAutoCommit(false);
} catch (Exception e) {
System.out.println(e.toString());
logger.debug("DBの接続に失敗します。");
conn = null;
}
}
public Connection getConn() {
return this.conn;
}
public boolean isConnection() throws SQLException{
boolean ret*** = true;
if (conn == null || conn.isClosed()) {
ret*** = false;
}
return ret***;
}
/**
* 値を返す SQL を実行する。
* <p>
* 値を返す SQL とは、たとえば、select があげられる。
* <p>
* @param sql 実行したい SQL文字列
* @return ResutSet オブジェクト
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public ResultSet executeQuery(String sql) throws SQLException {
System.out.println(sql);
ResultSet rslt = null;
try {
if (stmt != null) {
stmt.close();
}
stmt = conn.createStatement();
rslt = stmt.executeQuery(sql);
}
catch (SQLException e) {
throw e;
}
return rslt;
}
/**
* 値を返さない SQL を実行する。
* <p>
* 値を返さない SQL とは、たとえば、insert、update があげられる。
* SQL は、外部ファイルに記載した PreparedStatement 用 SQL 構文を使用する。
* <p>
* @param sql 実行したい SQL文字列
* @return 処理件数
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public int executeUpdate(String sql) throws SQLException {
System.out.println(sql);
int status = 0;
try {
if (stmt != null) {
stmt.close();
}
stmt = conn.createStatement();
status = stmt.executeUpdate(sql);
}
catch (SQLException e) {
throw e;
}
return statu*;
}
/**
* **ecuteUpdate にて、前回実行したSQLと変更がない場合には、prepareStatement の生成を行わない。
* そのために、前回実行したSQLの番号を保存するための変数。
*/
private String lastPrepareSQL = "";
private HashMap preparedStatementCache = new HashMap();
/**
* 値を返す SQL を実行する。
* <p>
* 値を返す SQL とは、たとえば、select があげられる。
* SQL は、外部ファイルに記載した PreparedStatement 用 SQL 構文を使用する。
* <p>
* @param sqlid 実行したい SQLのID
* @param sqlparams SQL のパラメータ(パラメータがない場合には、null)
* @return ResutSet オブジェクト
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public ResultSet executeQuery(String sql, Object[] sqlparams) throws SQLException {
System.out.println(sql);
if (sqlparams == null || sqlparams.length == 0) {
if (stmt != null) {
stmt.close();
}
stmt = conn.createStatement();
return stmt.executeQuery(sql);
}
else {
try {
if (lastPrepareSQL.equals(sql) && pstmt != null) {
// 前回実行した SQL と同じであれば、ステートメントを再利用する
}
else {
if (pstmt != null) {
pstmt.close();
}
pstmt = conn.prepareStatement(sql);
lastPrepareSQL = sql;
}
for (int i = 0; i < sqlparams.length; i++) {
try {
pstmt.setObject(i + 1, sqlparams[i]);
}
catch (SQLException e) {
throw e;
}
}
return pstmt.executeQuery();
}
catch (SQLException e) {
throw e;
}
}
}
/**
* 値を返さない SQL を実行する。
* <p>
* 値を返さない SQL とは、たとえば、insert、update があげられる。
* <p>
* @param sqlid 実行したい SQLのID
* @param sqlparams SQL のパラメータ(パラメータがない場合には、null)
* @return 処理件数
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public int executeUpdate(String sql, Object[] sqlparams) throws SQLException {
System.out.println(sql);
if (sqlparams == null || sqlparams.length == 0) {
if (stmt != null) {
stmt.close();
}
stmt = conn.createStatement();
return stmt.executeUpdate(sql);
}
else {
try {
if (lastPrepareSQL.equals(sql) && pstmt != null) {
// 前回実行した SQL と同じであれば、ステートメントを再利用する
}
else {
if (pstmt != null) {
pstmt.close();
}
pstmt = conn.prepareStatement(sql);
lastPrepareSQL = sql;
}
// StringBuffer logString = new StringBuffer(512);
for (int i = 0; i < sqlparams.length; i++) {
try {
pstmt.setObject(i + 1, sqlparams[i]);
// logString.append(sqlparams[i] + ",");
}
catch (SQLException e) {
// cat.error(
// "executeUpdate(id,obj[]) setObject:SqlParams[" + i +
// "]=" + sqlparams[i]);
throw e;
}
pstmt.addBatch();
}
return pstmt.executeUpdate();
}
catch (SQLException e) {
throw e;
}
}
}
/**
* commit を実行する。
* <p>
* データベースへの接続は、AutoCommit を行っていないため、すべての処理が正常に完了した場合には、
* 最後に必ず このメソッドを呼び出す。
* <p>
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public void commit() throws SQLException {
if (conn != null)
conn.commit();
}
/**
* rollback を実行する。
* <p>
* 処理が正常に完了しなかった場合には、このメソッドを呼び出して、データベースへの更新の
* 取消を行う。
* <p>
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public void rollback() throws SQLException {
if (conn != null && conn.isClosed()==false){
conn.rollback();
}
}
/**
* Connectionのcloseを行う
* @throws SQLException なんらかのデータベースエラーが発生した時
*/
public void releaseConnection() throws SQLException {
if (stmt != null) {
stmt.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
}
}
发表评论
-
invalid entry size(expected 429924352 but got 4299
2008-04-13 14:29 6378在安装Oracle10g的时候会发生如下的错误: D:\Or ... -
Oracle数据库的备份与恢复
2008-04-13 14:06 2166(一)导出/导入(EXPORT/IMPORT) 1.用 ... -
About java.lang.outOfMemory
2008-04-13 13:41 1816修改eclipse.ini文件 -vmargs -Xms40m ... -
导出oracle中表的部分数据
2008-04-13 13:26 3329以前我导出数据的时候都是全部导出,但这次遇到的表里的数据实在太 ... -
关于oracle数据库(远程对象调用)
2008-04-13 13:16 853-- Drop existing database l ... -
中文与Unicode编码互转
2008-04-13 13:01 1480<html> <head><ti ... -
时间格式化
2008-04-13 12:55 852String dateStr = "Fri Dec ... -
JSP中连接数据库
2008-04-13 12:52 746<%@ page language="Java ... -
java文件操作
2008-04-13 12:51 7061. ackage com.gamvan.too ... -
Java读取XML
2008-04-13 12:49 1170public class Untitled1 { pub ... -
利用JAVA绘图动态生成图片发送到客户端IE
2008-04-13 12:44 3680package com.gepower.ps.eps.topi ... -
排列组合在工作中的实际运用
2008-04-13 12:42 882个人理解:这个问题的本质是,每一行不选和选1,对于乘积的结 ... -
Jboss虚拟目录
2008-04-13 12:39 2991D:\jboss-4.0.2\server\default\d ... -
HashMap遍历
2008-04-13 12:34 5255import java.util.HashMap; impor ... -
Log4j与Jboss4共存
2008-04-13 12:33 1562log4j是一个很好的开源的日志项目,下面就我在实际中使用的一 ... -
Struts国际化的东西被我小小的一个类就能搞定
2008-04-13 12:30 900Struts国际化的东西叽叽歪歪 不好用, 有那么麻烦么?在J ... -
小日本是这样处理LIST表单更新/插入的
2008-04-13 12:22 991在JSP中 每个字段对应一个数组。 <input nam ... -
加密密码
2008-04-13 12:16 844package jp.co.smile.common; im ... -
如何将JSP中RadioBox设为不可选状态,并且不变灰
2008-04-13 12:14 2321试过了onchange,onclick事件都不好使。(不用 d ... -
本地计算机上的OracleOraHome92Agent服务启动后又停止了
2008-04-13 12:12 4480本地计算机上的OracleOraHome92Agent服务启动 ...
相关推荐
描述jsp连接数据库的完整代码 描述jsp连接数据库的完整代码 描述jsp连接数据库的完整代码 描述jsp连接数据库的完整代码 描述jsp连接数据库的完整代码
使用JS写服务器端连接数据库的代码示例,使用JS写服务器端连接数据库的代码示例
基于java的开发源码-在Servlet中连接数据库的代码.zip 基于java的开发源码-在Servlet中连接数据库的代码.zip 基于java的开发源码-在Servlet中连接数据库的代码.zip 基于java的开发源码-在Servlet中连接数据库的代码....
连接各种数据库代码连接各种数据库代码连接各种数据库代码连接各种数据库代码连接各种数据库代码连接各种数据库代码
PHP连接各种数据库代码 PHP连接各种数据库代码还可以
php连接数据库的代码,用php语言连接数据库,在html可以显示
C#连接六类数据库的代码集 讲解详细,帮组初学者解决碰到的问题
jsp连接数据库代码大全jsp连接数据库代码大全
C#连接各种数据库的代码....
java写的连接数据库的代码,给大家分享一下,直接可以用的
java 连接数据库代码大全 sqlserver mysql 等数据库的连接代码
.net连接数据库相关代码就是连接相关的代码
JDBC连接数据库代码大全,有各种连接数据库的方法。
JDBC连接数据库步骤及代码,不适合初学者
python连接mysql数据库代码。必须先下载安装mysql数据库,并启动数据库
java JDBC连接数据库代码大全 java JDBC连接数据库代码大全
sql包sql包 连接数据库的代码
java 数据库 连接各种数据库代码java 数据库 连接各种数据库代码
JAVA 使用数据库连接池连接Oracle数据库,全代码,附加详细说明