- 浏览: 63388 次
- 性别:
- 来自: 杭州
最近访客 更多访客>>
最新评论
-
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 6424在安装Oracle10g的时候会发生如下的错误: D:\Or ... -
Oracle数据库的备份与恢复
2008-04-13 14:06 2220(一)导出/导入(EXPORT/IMPORT) 1.用 ... -
About java.lang.outOfMemory
2008-04-13 13:41 1856修改eclipse.ini文件 -vmargs -Xms40m ... -
导出oracle中表的部分数据
2008-04-13 13:26 3375以前我导出数据的时候都是全部导出,但这次遇到的表里的数据实在太 ... -
关于oracle数据库(远程对象调用)
2008-04-13 13:16 905-- Drop existing database l ... -
中文与Unicode编码互转
2008-04-13 13:01 1533<html> <head><ti ... -
时间格式化
2008-04-13 12:55 920String dateStr = "Fri Dec ... -
JSP中连接数据库
2008-04-13 12:52 810<%@ page language="Java ... -
java文件操作
2008-04-13 12:51 7451. ackage com.gamvan.too ... -
Java读取XML
2008-04-13 12:49 1210public class Untitled1 { pub ... -
利用JAVA绘图动态生成图片发送到客户端IE
2008-04-13 12:44 3721package com.gepower.ps.eps.topi ... -
排列组合在工作中的实际运用
2008-04-13 12:42 946个人理解:这个问题的本质是,每一行不选和选1,对于乘积的结 ... -
Jboss虚拟目录
2008-04-13 12:39 3044D:\jboss-4.0.2\server\default\d ... -
HashMap遍历
2008-04-13 12:34 5284import java.util.HashMap; impor ... -
Log4j与Jboss4共存
2008-04-13 12:33 1623log4j是一个很好的开源的日志项目,下面就我在实际中使用的一 ... -
Struts国际化的东西被我小小的一个类就能搞定
2008-04-13 12:30 932Struts国际化的东西叽叽歪歪 不好用, 有那么麻烦么?在J ... -
小日本是这样处理LIST表单更新/插入的
2008-04-13 12:22 1039在JSP中 每个字段对应一个数组。 <input nam ... -
加密密码
2008-04-13 12:16 888package jp.co.smile.common; im ... -
如何将JSP中RadioBox设为不可选状态,并且不变灰
2008-04-13 12:14 2395试过了onchange,onclick事件都不好使。(不用 d ... -
本地计算机上的OracleOraHome92Agent服务启动后又停止了
2008-04-13 12:12 4508本地计算机上的OracleOraHome92Agent服务启动 ...
相关推荐
基于java的开发源码-在Servlet中连接数据库的代码.zip 基于java的开发源码-在Servlet中连接数据库的代码.zip 基于java的开发源码-在Servlet中连接数据库的代码.zip 基于java的开发源码-在Servlet中连接数据库的代码....
Spring 连接数据库代码详解 Spring 连接数据库是 Java 企业级应用程序中的一项重要技术,通过 Spring 框架,可以轻松地实现数据库的连接和操作。本文将详细讲解如何使用 Spring 连接数据库,包括创建数据库、配置 ...
php连接数据库的代码,用php语言连接数据库,在html可以显示
安装完成后,我们可以开始编写服务器端连接数据库的代码。以下是一个基本示例: ```javascript const mysql = require('mysql2'); // 创建数据库连接配置 const config = { host: 'localhost', // 数据库服务器...
java写的连接数据库的代码,给大家分享一下,直接可以用的
.net连接数据库相关代码就是连接相关的代码
在"C++连接mysql数据库 源代码"这个项目中,我们可以学习到以下几个关键知识点: 1. **MySQL C++ Connector**: 连接MySQL数据库时,通常会使用MySQL官方提供的C++ Connector,这是一个用于C++应用程序的数据库驱动...
JSP 连接数据库代码大全 本文档提供了 JSP 连接 Oracle、SQL Server 和 DB2 数据库的完整代码示例,旨在帮助初学者学习 JSP 连接数据库的基本知识。下面是对标题、描述、标签和部分内容的详细解释。 一、JSP 连接 ...
### JDBC连接数据库步骤详解 #### 一、简介 在Java开发中,经常需要与数据库进行交互,例如查询数据、更新数据等操作。为了方便开发者进行这些操作,Sun公司推出了一套标准的Java访问数据库的API——Java Database...
Java连接数据库是应用程序与数据库交互的基础,通过Java的JDBC(Java Database Connectivity)API,开发者可以实现对多种数据库系统的操作。以下将详细讲解标题和描述中提到的知识点,并结合给出的部分内容进行扩展...
本文将深入探讨如何使用JSP来连接数据库,并基于此修改数据库内容的关键知识点。 ### 1. JSP与数据库连接 在JSP页面中,连接数据库是通过Java Database Connectivity (JDBC) API完成的。JDBC为Java应用程序提供了...
python连接mysql数据库代码。必须先下载安装mysql数据库,并启动数据库
在描述中提到,此代码适用于"JAVA,asp的数据库调试连接",这表明该Delphi源码可能提供了一个通用的数据库连接模板,可以被其他语言如Java或ASP作为参考,尤其是对于调试数据库连接部分的代码。 在实际的Delphi代码...
本资源“C#连接数据库源代码”提供了一系列用于与数据库交互的C#代码片段,涵盖了数据库操作的核心功能,如插入数据、读取记录、删除数据以及填充表格等。以下是对这些关键知识点的详细解释: 1. **数据库连接**:...
在这个场景下,"sql包 连接数据库的代码"是指使用特定编程语言(如Java、Python或Node.js)的代码片段,它利用SQL包来建立和管理到数据库的连接。 在Java中,我们通常会使用JDBC(Java Database Connectivity)API...
连接数据库的关键在于创建一个` MySqlConnection `对象,该对象是`MySql.Data.MySqlClient`命名空间下的类。连接字符串通常包含以下元素:服务器地址(如localhost)、数据库名、用户名和密码。例如: ```csharp ...
本文件包“动态连接数据库代码文件”提供了一个强大的sqlhelper文件,它简化了数据库操作,是开发过程中的必备工具。 首先,我们来详细了解一下`sqlhelper`类。SqlHelper通常是一个辅助类,用于执行SQL语句,包括但...
在VB(Visual Basic)编程中,连接数据库是常见的任务,尤其在开发数据驱动的应用程序时。本篇文章将详细总结几种常用的VB连接数据库的方法,重点讨论动态连接和相对路径控制数据库的技术,以及如何利用控件如...