dbinfo.properties:
#oracle
url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
username=scott
driver=oracle.jdbc.driver.OracleDriver
password=Oracle11g
SqlHelper.java:
/**
* 功能:实现SqlHelper工具类
* 日期:2012年3月29日
*/
package com.cz.util;
import java.io.*;
import java.sql.*;
import java.util.*;
public class SqlHelper {
//定义需要的变量
private static Connection ct=null;
private static PreparedStatement ps=null;
private static ResultSet rs=null;
private static CallableStatement cs=null;
public static CallableStatement getCs() {
return cs;
}
private static String url="";
private static String username="";
private static String driver="";
private static String password="";
//读取配置文件
private static Properties pp=null;
private static InputStream fis=null;
//加载驱动,只需要一次
static{
try {
//从dbinfo.properties文件中读取配置信息
pp=new Properties();
//fis=new FileInputStream("dbinfo.properties");
//当我们使用java web的时候,读取文件要使用类加载器
fis=SqlHelper.class.getClassLoader().getResourceAsStream("dbinfo.properties");
pp.load(fis);
url=pp.getProperty("url");
username=pp.getProperty("username");
driver=pp.getProperty("driver");
password=pp.getProperty("password");
Class.forName(driver);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
fis=null;
}
}
//得到连接
public static Connection getConnection(){
try {
ct=DriverManager.getConnection(url, username, password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ct;
}
//分页问题
public static ResultSet executeQuery(){
return null;
}
//调用存储过程(无返回值)
public static void callPro1(String sql,String [] parameters){
try {
ct=getConnection();
cs=ct.prepareCall(sql);
//给?赋值
if(parameters!=null){
for(int i=0;i<parameters.length;i++){
cs.setObject(i+1, parameters[i]);
}
}
//执行
cs.execute();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
//抛出运行时异常
throw new RuntimeException(e.getMessage());
}finally{
close(rs,cs,ct);
}
}
//调用存储过程(有返回值)
public static CallableStatement callPro2(String sql,String [] inparameters,Integer [] outparameters){
try {
ct=getConnection();
cs=ct.prepareCall(sql);
//给?赋值
if(inparameters!=null){
for(int i=0;i<inparameters.length;i++){
cs.setObject(i+1, inparameters[i]);
}
}
if(outparameters!=null){
for(int i=0;i<outparameters.length;i++){
cs.registerOutParameter(inparameters.length+1+i, outparameters[i]);
}
}
//执行
cs.execute();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
//抛出运行时异常
throw new RuntimeException(e.getMessage());
}finally{
//close(rs,cs,ct);
}
return cs;
}
//统一的select语句
public static ResultSet executeQuery(String sql,String [] parameters){
try {
ct=getConnection();
ps=ct.prepareStatement(sql);
//给?赋值
if(parameters!=null){
for(int i=0;i<parameters.length;i++){
ps.setString(i+1, parameters[i]);
}
}
//执行
rs=ps.executeQuery();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
//抛出运行时异常
throw new RuntimeException(e.getMessage());
}finally{
//close(rs,ps,ct);
}
return rs;
}
//对查询语句升级
//这样可以满足:哪里使用资源哪里关闭资源
public static ArrayList executeQuery3(String sql,String[] parms)
{
PreparedStatement pstmt=null;
Connection conn=null;
ResultSet rs=null;
try{
conn=getConnection();
pstmt=conn.prepareStatement(sql);
//对问号赋值
if(parms!=null){
for(int i=0;i<parms.length;i++){
pstmt.setString(i+1, parms[i]);
}
}
rs=pstmt.executeQuery();
ArrayList al=new ArrayList();
ResultSetMetaData rsmd=rs.getMetaData();
int column=rsmd.getColumnCount();
while (rs.next())
{
Object[] ob=new Object[column];
for (int i=1;i<=column ;i++ )
{
ob[i-1]=rs.getObject(i);
}
al.add(ob);
}
return al;
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException("executeSqlResultSet方法出错:"+e.getMessage());
}finally{
close(rs, pstmt, conn);
}
}
public static Connection getCt() {
return ct;
}
public static PreparedStatement getPs() {
return ps;
}
public static ResultSet getRs() {
return rs;
}
//如果有多个update/delete/insert,需要考虑事务
public static void executeUpdate2(String []sql,String [][]parameters){
try {
ct=getConnection();
//因为这时用户传入的可能是多个sql语句
ct.setAutoCommit(false);
for(int i=0;i<sql.length;i++){
if(parameters[i]!=null){
ps=ct.prepareStatement(sql[i]);
for(int j=0;j<parameters[i].length ;j++){
ps.setString(j+1,parameters[i][j]);
}
ps.executeUpdate();
}
}
//int i=9/0;
ct.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
//回滚
try {
ct.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//抛出运行时异常
throw new RuntimeException(e.getMessage());
}finally{
close(rs,ps,ct);
}
}
//先写一个update/delete/insert
public static void executeUpdate(String sql,String [] parameters){
try {
ct=getConnection();
ps=ct.prepareStatement(sql);
//给?赋值
if(parameters!=null){
for(int i=0;i<parameters.length;i++){
ps.setString(i+1, parameters[i]);
}
}
//执行
ps.executeUpdate();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
//抛出运行时异常
throw new RuntimeException(e.getMessage());
}finally{
close(rs,ps,ct);
}
}
//关闭资源函数
public static void close(ResultSet rs,Statement ps,Connection ct){
try {
if (rs != null) {
rs.close();
}
rs = null;
if (ps != null) {
ps.close();
}
ps = null;
if (ct != null) {
ct.close();
}
ct = null;
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
SQLHelper中文翻译版本 SQLHelper中文翻译版本 SQLHelper中文翻译版本
根据提供的文件信息,我们可以深入解析`SqlHelper`类的相关知识点,包括其主要功能、使用方法以及内部实现细节等。 ### SqlHelper概述 `SqlHelper`类是一个用于简化SQL Server数据库操作的工具类,它提供了执行SQL...
sqlHelper 中文注释版,sqlHelper 中文注释版,sqlHelper 中文注释版
SQLHelper 是一个在.NET框架中常用的数据库操作辅助类库,主要功能是简化SQL语句的编写和执行,提高开发效率。这个"SQLHelper(中文)"版本可能是针对中文环境或者中文开发者设计的,提供了更易懂的接口和文档,相较于...
本话题主要关注如何在GridView中结合SqlHelper实现分页功能,这对于处理大量数据时提高用户体验至关重要。 SqlHelper是.NET Framework中的一个实用工具类,它简化了SQL Server数据库的访问。使用SqlHelper,我们...
SqlHelper是.NET框架中一个非常实用的数据库操作辅助类库,它由微软开发,用于简化对SQL Server数据库的访问。这个“微软SqlHelper(原版+中文注释版)”提供了原始版本的源代码以及带有详细中文注释的版本,使得...
SqlHelper是C#编程语言中常见的一种用于简化数据库操作的辅助类库,它为开发者提供了方便的接口,以便更高效地执行SQL语句。在.NET框架下,开发人员经常使用SqlHelper来代替直接操作ADO.NET组件,以提高代码的可读性...
微软提供的的SQLHelper类,封装了最常用的数据操作,为了方便初学的朋友,上传一个带详细中文注释的SqlHelper。
SqlHelper.cs 微软的SQLHelper类 微软的SQLHelper类(含完整中文注释) 非常好的SQLHelper
SqlHelper 是一个在.NET开发中常用的类库,主要用于简化数据库操作。这个类库提供了一组静态方法,使得开发者能够方便地执行SQL语句,而无需每次都要创建和管理数据库连接,从而极大地提高了代码的可读性和可维护性...
### SQLHelper类详解 #### 一、概述 `SQLHelper`类主要负责处理与...通过以上介绍,我们可以看到`SQLHelper`类在.NET应用程序中处理数据库操作时的重要性。合理使用这些方法能够简化代码并提高程序的健壮性和安全性。
在.NET框架中,微软提供了一个名为SqlHelper的类,它是一个辅助类,用于简化与SQL Server数据库的交互。这个类通常被用在C#应用程序中,以执行SQL命令和存储过程。SqlHelper类的设计目标是提高代码的可重用性和安全...
微软的SQLHelper类 (含完整中文注释) c# asp.net winform 微软的SQLHelper类是微软提供的一个数据访问帮助类,主要用于执行SQL Server数据库操作。该类提供了多种方法来执行SQL语句、存储过程和Scalar查询。下面是...
// SQLHelper.cs // // This file contains the implementations of the SqlHelper and SqlHelperParameterCache // classes. 这个文件实现了SqlHelper类和SqlHelperParameterCache类 //其中SqlHelper类执行各种方式...
在这个主题中,我们将深入探讨如何在C#中使用SQLHelper类进行事务操作,以及事务的重要性和应用。 事务是数据库操作的基本单位,它确保一组操作要么全部成功,要么全部失败,从而维护数据的一致性。在C#中,我们...
组件中包含数据库操作方法,SqlHelper有很多版本,主要以微软一开始发布的SqlHelper类,后面包含进了Enterprise Library开源包中了。还有一个主要版本是dbhelper.org开源的sqlhelper组件,优点是简洁,高性能,不...
SqlHelper 是一个在IT行业中广泛使用的工具类,主要用于简化数据库操作,尤其是对于.NET框架下的C#开发者来说。这个类库通常包含一系列静态方法,提供了一种便捷的方式来执行SQL语句,进行数据的增、删、改、查...
Sqlhelper类的的内容Sqlhelper类的的内容Sqlhelper类的的内容Sqlhelper类的的内容Sqlhelper类的的内容Sqlhelper类的的内容Sqlhelper类的的内容Sqlhelper类的的内容Sqlhelper类的的内容
2,所以数据库操作只需要调用SQLHelper中的方法即可.DataAccess类是在SQLHelper类内部调用的类. 3,使用前请先执行以下方法,以进行类初始化: string DBConnectionString = "data source=.;database=Northwind;user id...
在.NET框架中,SQLHelper类是用于简化与数据库交互过程的一个强大工具,它封装了常见的SQL操作,如执行查询、插入、更新和删除等。这一类位于Microsoft.ApplicationBlocks.Data命名空间下,通常需要引用Microsoft....