YBB.DBUtils用法

通用数据访问类库,兼容ADO、ADO.NET方式访问。

利用ProviderFactory工厂方法,支持Oracle(不需要安装客户端)、SQL Server、OleDb和ODBC等数据库访问。

https://github.com/BobinYang/YBB.DBUtils

用法:

1、初始化线程缓存AdoNetHelper 类:

  • Oracle:
using (AdoNetHelper Db = AdoNetHelper.ThreadInstance("data source=:1521/orcl;user id=;password=*;", DbProviderType.Oracle_ManagedODP))) { 。。。。。 }
  • SQL Server:

using (AdoNetHelper Db = AdoNetHelper.ThreadInstance("data source=;user id=sa;password=;Initial Catalog=*;", DbProviderType.SqlServer))) { 。。。。。 }//Dispose可关闭所有内部连接。

2、常用的命令:

  • Db.OpenNewConnection()
  • Db.CreateNewCommand(sql, conn)
  • Db.BeginNewTrans(conn)
  • Db.CreateNewCommand(sql, trans);
  • Db.MakeInParam(":a", **)
  • DataSet ds = Db.ExecuteDataset(conn, "GetOrders", 24, 36);

以及所有DbHelper中的方法。

3、打开连接和创建命令,执行读数据

举例:

string  sql = "select 1 from  **";
        DbConnection conn = null;
        try
        {
            conn  = Db.OpenNewConnection();
            DbCommand command = Db.CreateNewCommand(sql, conn);
            DbDataReader  dr = command.ExecuteReader(); //   Convert.ToInt32(command.ExecuteScalar()); //   DataTable dt1 = Db.ExecuteDataset(command);
            if (rd.HasRows)
            {
                dr.Close();
                return true;
            }
            // while (dr.Read())
            //{
            //       List1.Add(dr[0].ToString().Trim());
            //  }
            dr.Close();
        }
        finally
        {
            Db.CloseConnection(conn);
        }

4、带参数执行命令

举例:

        sql = "insert into table1 (column1,column2) values (:a,:b)";//sql server为@符号
        DbConnection conn = Db.Conn;
        using (DbCommand command = Db.CreateNewCommand(sql, conn))
         {
             command.Parameters.Add(Db.MakeInParam(":a", **));
             command.Parameters.Add(Db.MakeInParam(":b", **));
             command.ExecuteNonQuery();
         }

5、利用事务处理更新操作。

        int rows = 0;
        DbConnection   conn  = Db.OpenNewConnection();
        DbTransaction trans = Db.BeginNewTrans(conn);
        DbCommand command = Db.CreateNewCommand(sql, trans);
        try
        {
            sql = "delete **";
            command.CommandText = sql;
            rows = command.ExecuteNonQuery();

            sql = "update  **";
            command.CommandText = sql;
            rows = command.ExecuteNonQuery();

            trans.Commit();
        }
        catch (Exception)
        {
            if (trans != null)
            {
                trans.Rollback();
            }
            throw;
        }
        return rows;

6、插入操作返回最新值。

        string lastId = "";
        DbTransaction trans = null;
        try
        {
            DbConnection conn = Db.Conn;
            trans = Db.BeginNewTrans(conn);

            sql = "insert intotable1 (column1,column2) values (*,*) RETURNING ID into :recid ";

            command = Db.CreateNewCommand(sql, trans);
            DbParameter paralastId = Db.MakeOutParam(":recid", DbType.String, 20);
            paralastId.Direction = ParameterDirection.ReturnValue;
            command.Parameters.Add(paralastId);

            command.ExecuteNonQuery();
            command.Parameters.Clear();
            lastId = paralastId.Value.ToString();

            trans.Commit();
        }
        catch (Exception)
        {
            if (trans != null)
            {
                trans.Rollback();
            }
            throw;
        }

7、处理存储过程的输入输出参数。

        string sql = "sp***";
        DbConnection conn = Db.Conn;
        command = Db.CreateNewCommand(sql, conn);
        command.CommandType = CommandType.StoredProcedure;

        command.Parameters.Add(Db.MakeInParam("line", Line));
        command.Parameters.Add(Db.MakeInParam("model", PartNumber));

        DbParameter qty = Db.MakeOutParam("qty", 0);
        qty.Direction = ParameterDirection.Output;
        command.Parameters.Add(qty);

        command.ExecuteNonQuery();

        returnValue = Convert.ToInt32(((OracleDecimal)(command.Parameters["qty"].Value)).Value);
        command.Parameters.Clear();
        command.CommandType = CommandType.Text;

8、类图如下:

原文地址:https://www.cnblogs.com/springsnow/p/10076990.html

时间: 2024-10-10 03:14:06

YBB.DBUtils用法的相关文章

xUtils介绍 -- DbUtils、ViewUtils、HttpUtils、BitmapUtils

转载注明出处:https://github.com/wyouflf/xUtils xUtils简单介绍 xUtils 包括了非常多有用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,很多其它的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 眼下xUtils主要有四大模块: DbUtils模块: android中的orm框架,一行代码就能够进行增删改查: 支持事务,默

第14天dbutils与案例

第14天dbutils与案例 第14天dbutils与案例????1 1.????1.dbutils介绍????2 2.????2.dbutils快速入门????2 3.????3.dbutils API详解-DbUtils类????2 4.????4.dbutils API详解-QueryRunner类????2 5.????5.dbutils API详解-ResultSetHandler????3 6.????6.ResultSetHandler实现类介绍????3 7.????7.案例--

强大的xUtils工具类整理

xUtils简单介绍 xUtils 包括了非常多有用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,很多其它的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 眼下xUtils版本号是2.6.11 xUtils架包和sample下载:https://github.com/wyouflf/xUtils 眼下xUtils主要有四大模块: DbUtils模块: androi

Android框架之高速开发框架xUtil

做Android开发我们通常是从原生态的開始,就是调用默认那些Android代码来开发我们的应用,可是到了一定程度,我们就想着怎么来高速开发我们的应用.这个时候我们就要着手来研究框架了. 以下介绍一个非常流行的框架xUtil: xUtils简单介绍 xUtils 包括了非常多有用的android工具. xUtils 最初源于Afinal框架,进行了大量重构.使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词).拥有更加灵活的ORM,很多其它的事件注解支持且不受混淆影响...

xUtils中用DbUtils,ViewUtils的用法

一.有关xUtils的简介 xUtils 包含了很多实用的android工具.xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls最低兼容android 2.2 (api level 8) 二.总共包含4个功能模块: (1)DbUtils模块: android中的orm框架,一行代码就可以进行增删改查:支持事务,默认关闭:可通过注解自定义表名,列

DbUtils常用API的使用 方便以后查阅

1 package com.lizhou.Test; 2 3 import java.sql.SQLException; 4 import java.util.List; 5 import java.util.Map; 6 import java.util.Map.Entry; 7 import java.util.Set; 8 9 import javax.sql.DataSource; 10 11 import org.apache.commons.dbutils.QueryRunner; 

DBUtils工具

DBUtils工具 简介 是Apache旗下的产品.是对jdbc的简单封装.提供出通用的jdbc操作方法.简化开发者使用jdbc的成本. 常用的API说明 |- QueryRunner类: 主要进行jdbc的增删改查操作. |-update(): 用于更新 |-query(): 用于查询 |- ResultSetHandler接口: 主要用于在查询操作中,封装结果集.ResultSet -> 对象 |-ArrayHandler类:把结果集的第一行记录封装成数组 |-ArrayListHandle

数据库工具--DBUtils工具类的使用

1. DBUtils概述 DBUtils 是 JDBC的一个简化开发工具包.使用DBUtils需要导入的jar包:commons-dbutils-1.4.jar 核心类:QueryRunner 包 org.apache.commons.dbutils java.lang.Object  |--org.apache.commons.dbutils.AbstractQueryRunner     |--org.apache.commons.dbutils.QueryRunner 构造方法: Quer

使用dbutils进行批处理

使用batch,但是只能执行相同的SQL语句,参数可以不同. 有两个batch of SQL INSERT, UPDATE, or DELETE queries. * * @param conn The Connection to use to run the query. The caller is * responsible for closing this Connection. * @param sql The SQL to execute. * @param params An arr