通用数据库操作辅助类DbHelper

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:
有问题或者建议,请回复.
如果懒得看的话,那么直接下载dll来用吧. http://files.cnblogs.com/yelaiju/System.Data.DbHelper.rar
 
复制代码
使用方式
DbHelper db;
OpenFileDialog ofd 
=   new  OpenFileDialog();
ofd.Filter 
=   " SQLite数据文件(*.db3;*.db;*.sqlite)|*.db3;*.db;*.sqlite " ;
if  (ofd.ShowDialog()  ==  DialogResult.OK)
{
    txtDataSource.Text 
=  ofd.FileName;
    db 
=   new  DbHelper( " data source= "   +  txtDataSource.Text, DbProvider.Sqlite);
}
db.ReExNum(txtSql.Text); 

接口
using  System.Data;
using  System.Collections.Generic;
using  System.Data.Common;

///   <summary>
///  该类用于对数据库进行操作
///  Design by 火地晋
///   </summary>
namespace  System.Data
{
    
public   interface  IDbObject
    {
        
///   <summary>
        
///  定义一个DataReader的列表,已备检索
        
///   </summary>
        List < DbDataReader >  DataReaderList {  get set ; }
        
///   <summary>
        
///  
        
///   </summary>
        DbConnection Connection {  get set ; }
        
string  ConnectionString {  get set ; }
        DbProvider DbProviderType { 
get set ; }
        
        
///   <summary>
        
///  返回执行操作成功的数目,使用注意,如果是存储过程,必须在存储过程后加上:select @@ROWCOUNT
        
///   </summary>
        
///   <param name="strSql"> 存储过程名 </param>
        
///   <param name="parameters"> 参数组 </param>
        
///   <returns></returns>
         int  ReExNum( string  strSql,  params  DbParameter[] parameters);
        
///   <summary>
        
///  返回结果的存储过程
        
///   </summary>
        
///   <param name="strSql"> 任何SQL语句 </param>
        
///   <param name="parameters"> 参数值 </param>
        
///   <returns></returns>
        DbDataReader ReSelectdr( string  strSql,  params  DbParameter[] parameters);
        
///   <summary>
        
///  返回dateSet
        
///   </summary>
        
///   <param name="strSql"></param>
        
///   <param name="parameters"></param>
        
///   <param name="tableName"></param>
        
///   <returns></returns>
        DataSet ReSelectds( string  strSql,  string  tableName,  params  DbParameter[] parameters);
        DataTable ReSelectdtb(
string  strSql,  params  DbParameter[] parameters);
        
///   <summary>
        
///  通過存儲過程及自定義參數組查詢返回SqlDataAdapter對象
        
///   </summary>
        DbDataAdapter ReSelectdat( string  strSql,  params  DbParameter[] parameters);

        
void  ExSQL( string  strSql,  params  DbParameter[] parameters);
        
///   <summary>
        
///      執行SQL查詢語句,返回記錄條數
        
///   </summary>
        
///   <param name="strSql"> Select語句(在select语句中,使用Count(*)函数) </param>
        
///   <returns> 返回查詢到之記錄條數 </returns>
         int  ReSelectNum( string  strSql,  params  DbParameter[] parameters);
        
///   <summary>
        
///  使用SqlDataAdapter返回指定范围的数据
        
///   </summary>
        
///   <param name="strSql"> 存储过程名 </param>
        
///   <param name="parameters"> 参数名 </param>
        
///   <param name="start"> 起始行 </param>
        
///   <param name="maxRecord"> 记录数 </param>
        
///   <param name="tableName"> 表名 </param>
        
///   <returns></returns>
        DataSet ReSelectds( string  strSql, DbParameter[] parameters,  int  start,  int  maxRecord,  string  tableName);
        
///   <summary>
        
///  返回执行操作成功的数目,不关闭连接
        
///   </summary>
        
///   <param name="strSql"> 执行的查询语句或存储过程 </param>
        
///   <param name="parameters"> 参数组 </param>
        
///   <returns></returns>
         int  ReExNumNoClose( string  strSql,  params  DbParameter[] parameters);
        
///   <summary>
        
///  返回执行操作成功的数目,不关闭连接,并返回出现的错误信息。
        
///   </summary>
        
///   <param name="strSql"> 存储过程名 </param>
        
///   <param name="parameters"> 参数组 </param>
        
///   <returns></returns>
         int  ReExNumNoClose( string  strSql,  out   string  error,  params  DbParameter[] parameters);

        
///   <summary>
        
///  返回执行操作成功的数目,并返回发生的错误信息
        
///   </summary>
        
///   <param name="strSql"> 存储过程名 </param>
        
///   <param name="parameters"> 参数组 </param>
        
///   <returns></returns>
         int  ReExNum( string  strSql,  out   string  error,  params  DbParameter[] parameters);

        
///   <summary>
        
///  返回执行操作结果的信息,如果返回为空则表示没错误,否则返回错误的信息。
        
///   </summary>
        
///   <param name="strSql"> 存储过程名 </param>
        
///   <param name="parameters"> 参数组 </param>
        
///   <returns></returns>
         string  ReExStr( string  strSql,  params  DbParameter[] parameters);
        
///   <summary>
        
///  如果数据库连接已关闭,则打开
        
///   </summary>
        
///   <returns></returns>
         bool  OpenConnection();
        
///   <summary>
        
///  关闭数据库连接
        
///   </summary>
         void  CloseConnection();
    }
    
public   enum  DbProvider
    {
        Sql
= 0 ,
        Sqlite
= 1 ,
        OleDb
= 2 ,
        Oracle
= 3 ,
        MySql
= 4
    }
}
 

using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Data.Common;

namespace  System.Data
{
    
public   class  DbHelper : IDbObject
    {
        
#region  属性
        
public  List < DbDataReader >  DataReaderList {  get set ; }
        
public  DbConnection Connection {  get set ; }
        
public   string  ConnectionString {  get set ; }
        
public  DbProvider DbProviderType {  get set ; }
        
private  DbProviderFactory dbFactory;
        
#endregion

        
#region  构造函数
        
public  DbHelper()
        {
            DbHelperInstance(System.Configuration.ConfigurationManager.AppSettings[
" ConnectionString " ], DbProvider.Sql);
        }
        
public  DbHelper( string  connectionString)
        {
            DbHelperInstance(connectionString, DbProvider.Sql);
        }
        
public  DbHelper(DbProvider dbProviderType)
        {
            DbHelperInstance(System.Configuration.ConfigurationManager.AppSettings[
" ConnectionString " ], dbProviderType);
        }
        
public  DbHelper( string  connectionString, DbProvider dbProviderType)
        {
            DbHelperInstance(connectionString, dbProviderType);
        }
        
///   <summary>
        
///  初始化
        
///   </summary>
        
///   <param name="connectionString"></param>
        
///   <param name="dbProviderType"></param>
         public   void  DbHelperInstance( string  connectionString, DbProvider dbProviderType)
        {
            
this .DbProviderType  =  dbProviderType;
            
this .ConnectionString  =  connectionString;
            DataReaderList 
=   new  List < DbDataReader > ();
            CreateFactory();
            
this .Connection  =   this .dbFactory.CreateConnection();
            
this .Connection.ConnectionString  =   this .ConnectionString;
        }
        
#endregion
        
///   <summary>
        
///  创建数据操作工厂
        
///   </summary>
         private   void  CreateFactory()
        {
            
switch  (DbProviderType)
            {
                
case  DbProvider.Sql:
                    
this .dbFactory  =  System.Data.SqlClient.SqlClientFactory.Instance;
                    
break ;
                
case  DbProvider.Sqlite:
                    
this .dbFactory  =  System.Data.SQLite.SQLiteFactory.Instance;
                    
break ;
                
case  DbProvider.OleDb:
                    
this .dbFactory  =  System.Data.OleDb.OleDbFactory.Instance;
                    
break ;
                
case  DbProvider.Oracle:
                    
this .dbFactory  =  System.Data.OracleClient.OracleClientFactory.Instance;
                    
break ;
                
case  DbProvider.MySql:
                    
this .dbFactory  =  MySql.Data.MySqlClient.MySqlClientFactory.Instance;
                    
break ;
            }
        }
        
///   <summary>
        
///  创建操作对象
        
///   </summary>
        
///   <param name="procNameOrExText"> 如果包含@,则采用CommandType.Text </param>
        
///   <param name="parameters"></param>
        
///   <returns></returns>
         private  DbCommand BuilderQueryCommand( string  procNameOrExText,  params  DbParameter[] parameters)
        {
            
if  (parameters  ==   null   ||  parameters.Length  ==   0 )
            {
                DbCommand command 
=   this .dbFactory.CreateCommand();
                command.CommandText 
=  procNameOrExText;
                command.Connection 
=   this .Connection;
                
return  command;
            }
            
if  (procNameOrExText.IndexOf( ' @ ' >   0 ) // 存储过程
            {
                
return  BuilderQueryCommandText(procNameOrExText, parameters);
            }
            
else
            {
                
return  BuilderQueryCommandStorPro(procNameOrExText, parameters);
            }
        }

        
///   <summary>
        
///  根据存储过程名称和参数生成对应的SQL命令对象
        
///   </summary>
        
///   <param name="strSql"> 存储过程名或者 </param>
        
///   <param name="parameters"> 存储过程参数 </param>
        
///   <returns></returns>
         private  DbCommand BuilderQueryCommandStorPro( string  strSql,  params  DbParameter[] parameters)
        {
            DbCommand command 
=   this .dbFactory.CreateCommand();
            command.CommandText 
=  strSql;
            command.CommandType 
=  CommandType.StoredProcedure;
            command.Connection 
=   this .Connection;
            
if  (parameters  !=   null )
            {
                
foreach  (DbParameter p  in  parameters)
                {
                    command.Parameters.Add(p);
                }
            }
            
return  command;
        }
        
private  DbCommand BuilderQueryCommandText( string  strSql,  params  DbParameter[] parameters)
        {
            DbCommand command 
=   this .dbFactory.CreateCommand();
            command.CommandText 
=  strSql;
            command.Connection 
=   this .Connection;
            
if  (parameters  !=   null )
            {
                
foreach  (DbParameter p  in  parameters)
                {
                    command.Parameters.Add(p);
                }
            }
            
return  command;
        }
        
public  DbParameter CreateDbParameter( string  parameterName)
        {
            
return  CreateDbParameter(parameterName, DBNull.Value, DbType.Object,  0 , ParameterDirection.Input);
        }
        
public  DbParameter CreateDbParameter( string  parameterName,  object  value)
        {
            
return  CreateDbParameter(parameterName, value, DbType.Object,  0 , ParameterDirection.Input);
        }
        
public  DbParameter CreateDbParameter( string  parameterName,  object  value, DbType dbType)
        {
            
return  CreateDbParameter(parameterName,value,dbType, 0 ,ParameterDirection.Input);
        }
        
public  DbParameter CreateDbParameter( string  parameterName,  object  value, DbType dbType,  int  size)
        {
            
return  CreateDbParameter(parameterName,value,dbType,size,ParameterDirection.Input);
        }
        
public  DbParameter CreateDbParameter( string  parameterName,  object  value, DbType dbType,  int  size, ParameterDirection parameterDirection)
        {
            DbParameter pat 
=   this .dbFactory.CreateParameter();
            pat.ParameterName 
=  parameterName;
            pat.Value 
=  value;
            pat.DbType 
=  dbType;
            pat.Size 
=  size;
            pat.Direction 
=  parameterDirection;
            
return  pat;
        }
        
///   <summary>
        
///  返回执行操作成功的数目,使用注意,如果是存储过程,必须在存储过程后加上:select @@ROWCOUNT
        
///   </summary>
        
///   <param name="strSql"> 存储过程名 </param>
        
///   <param name="parameters"> 参数组 </param>
        
///   <returns></returns>
         public   int  ReExNum( string  strSql,  params  DbParameter[] parameters)
        {
            
int  effect  =   0 ;
            
if  ( ! OpenConnection())  return   - 1 ;
            DbTransaction trans 
=  Connection.BeginTransaction();
            
try
            {
                DbCommand cmd 
=  BuilderQueryCommand(strSql, parameters);
                cmd.Transaction 
=  trans;
                
// 根据是否为存储过程来执行不同的处理
                 if  (cmd.CommandType  ==  CommandType.StoredProcedure)
                {
                    
object  result  =  cmd.ExecuteScalar();
                    effect 
=  result  ==   null   ?   - 1  : Convert.ToInt16(result);
                }
                
else
                {
                    effect 
=  cmd.ExecuteNonQuery();
                }
                trans.Commit();
                
return  effect;
            }
            
catch
            {
                trans.Rollback();
                Connection.Close();
                
return   - 1 ;
            }
            
finally
            {
                Connection.Close();
            }
        }
        
///   <summary>
        
///  返回结果的存储过程
        
///   </summary>
        
///   <param name="strSql"> 任何SQL语句 </param>
        
///   <param name="parameters"> 参数值 </param>
        
///   <returns></returns>
         public  DbDataReader ReSelectdr( string  strSql,  params  DbParameter[] parameters)
        {
            
try
            {
                DbDataReader reader;
                
if  ( ! OpenConnection())  return   null ;
                DbCommand cmd 
=  BuilderQueryCommand(strSql, parameters);
                reader 
=  cmd.ExecuteReader(CommandBehavior.CloseConnection); // 在dr关闭之后,就不需要进行cnn的关闭操作了
                DataReaderList.Add(reader); // 添加进dr列表,已备检索
                 return  reader;
            }
            
catch
            {
                
return   null ;
            }
        }
        
///   <summary>
        
///  返回dateSet
        
///   </summary>
        
///   <param name="strSql"></param>
        
///   <param name="parameters"></param>
        
///   <param name="tableName"></param>
        
///   <returns></returns>
         public  DataSet ReSelectds( string  strSql,  string  tableName,  params  DbParameter[] parameters)
        {
            
try
            {
                DataSet ds 
=   new  DataSet();
                
if  ( ! OpenConnection())  return   null ;
                DbDataAdapter myDa 
=   this .dbFactory.CreateDataAdapter();
                myDa.SelectCommand 
=  BuilderQueryCommand(strSql, parameters);
                myDa.Fill(ds, tableName);
                
return  ds;
            }
            
catch
            {
                
return   null ;
            }
            
finally
            {
                Connection.Close();
            }
        }
        
public  DataTable ReSelectdtb( string  strSql,  params  DbParameter[] parameters)
        {
            
try
            {
                DataTable dt 
=   new  DataTable();
                
if  ( ! OpenConnection())  return   null ;
                DbDataAdapter myDa 
=   this .dbFactory.CreateDataAdapter();
                myDa.SelectCommand 
=  BuilderQueryCommand(strSql, parameters);
                myDa.Fill(dt);
                
return  dt;
            }
            
catch
            {
                
return   null ;
            }
            
finally
            {
                Connection.Close();
            }
        }
        
///   <summary>
        
///  通過存儲過程及自定義參數組查詢返回SqlDataAdapter對象
        
///   </summary>
         public  DbDataAdapter ReSelectdat( string  strSql,  params  DbParameter[] parameters)
        {
            
if  ( ! OpenConnection())  return   null ;
            
try
            {
                DbCommand cmd 
=  BuilderQueryCommand(strSql, parameters);
                DbDataAdapter myDa 
=   this .dbFactory.CreateDataAdapter();
                myDa.SelectCommand 
=  cmd;
                
return  myDa;
            }
            
catch
            {
                Connection.Close();
                
return   null ;
            }
        }

        
public   void  ExSQL( string  strSql,  params  DbParameter[] parameters)
        {
            
if  ( ! OpenConnection())  return ;
            DbTransaction trans 
=  Connection.BeginTransaction();
            
try
            {
                DbCommand cmd 
=  BuilderQueryCommand(strSql, parameters);
                cmd.Transaction 
=  trans;
                cmd.ExecuteNonQuery();
                trans.Commit();
            }
            
catch
            {
                trans.Rollback();
                Connection.Close();
                
return ;
            }
            
finally
            {
                Connection.Close();
            }
        }
        
///   <summary>
        
///   執行SQL查詢語句,返回記錄條數
        
///   </summary>
        
///   <param name="strSql"> Select語句(在select语句中,使用Count(*)函数) </param>
        
///   <returns> 返回查詢到之記錄條數 </returns>
         public   int  ReSelectNum( string  strSql,  params  DbParameter[] parameters)
        {
            
int  effect  =   0 ;
            
try
            {
                
using (DbDataReader dr = ReSelectdr(strSql, parameters))
                {
                    if (dr.Read())
                    {
                        effect = Convert.ToInt32(dr.GetValue(0));
                    }
                    return effect;
                }                 
            }
            
catch
            {
                
return  effect;

            }
        }
        
///   <summary>
        
///  使用SqlDataAdapter返回指定范围的数据
        
///   </summary>
        
///   <param name="strSql"> 存储过程名 </param>
        
///   <param name="parameters"> 参数名 </param>
        
///   <param name="start"> 起始行 </param>
        
///   <param name="maxRecord"> 记录数 </param>
        
///   <param name="tableName"> 表名 </param>
        
///   <returns></returns>
         public  DataSet ReSelectds( string  strSql, DbParameter[] parameters,  int  start,  int  maxRecord,  string  tableName)
        {
            
try
            {
                DataSet ds 
=   new  DataSet();
                OpenConnection();
                DbDataAdapter myDa 
=   this .dbFactory.CreateDataAdapter();
                myDa.SelectCommand 
=  BuilderQueryCommand(strSql, parameters);
                myDa.Fill(ds, start, maxRecord, tableName);
                
return  ds;
            }
            
catch
            {
                Connection.Close();
                
return   null ;
            }
            
finally
            {
                Connection.Close();
            }
        }
        
///   <summary>
        
///  返回执行操作成功的数目,不关闭连接
        
///   </summary>
        
///   <param name="strSql"> 执行的查询语句或存储过程 </param>
        
///   <param name="parameters"> 参数组 </param>
        
///   <returns></returns>
         public   int  ReExNumNoClose( string  strSql,  params  DbParameter[] parameters)
        {
            
int  effect  =   0 ;
            
if  ( ! OpenConnection())  return   - 1 ;
            DbTransaction trans 
=  Connection.BeginTransaction();
            
try
            {
                DbCommand cmd 
=  BuilderQueryCommand(strSql, parameters);
                cmd.Transaction 
=  trans;
                
// 根据是否为存储过程来执行不同的处理
                 if  (cmd.CommandType  ==  CommandType.StoredProcedure)
                {
                    
object  result  =  cmd.ExecuteScalar();
                    effect 
=  result  ==   null   ?   - 1  : Convert.ToInt16(result);
                }
                
else
                {
                    effect 
=  cmd.ExecuteNonQuery();
                }
                trans.Commit();
                
return  effect;
            }
            
catch
            {
                trans.Rollback();
                
return  effect;
            }
        }
        
///   <summary>
        
///  返回执行操作成功的数目,不关闭连接,并返回出现的错误信息。
        
///   </summary>
        
///   <param name="strSql"> 存储过程名 </param>
        
///   <param name="parameters"> 参数组 </param>
        
///   <returns></returns>
         public   int  ReExNumNoClose( string  strSql,  out   string  error,  params  DbParameter[] parameters)
        {
            
int  effect  =   0 ;
            error 
=   "" ;
            
if  ( ! OpenConnection())  return   - 1 ;
            DbTransaction trans 
=  Connection.BeginTransaction();
            
try
            {
                DbCommand cmd 
=  BuilderQueryCommand(strSql, parameters);
                cmd.Transaction 
=  trans;
                
if  (cmd.CommandType  ==  CommandType.StoredProcedure)
                {
                    
object  result  =  cmd.ExecuteScalar();
                    effect 
=  result  ==   null   ?   - 1  : Convert.ToInt16(result);
                }
                
else
                {
                    effect 
=  cmd.ExecuteNonQuery();
                }
                effect 
=  cmd.ExecuteNonQuery();
                trans.Commit();
                
return  effect;
            }
            
catch  (Exception ex)
            {
                trans.Rollback();
                error 
=  ex.Message;
                
return  effect;
            }
        }

        
///   <summary>
        
///  返回执行操作成功的数目,并返回发生的错误信息
        
///   </summary>
        
///   <param name="strSql"> 存储过程名 </param>
        
///   <param name="parameters"> 参数组 </param>
        
///   <returns></returns>
         public   int  ReExNum( string  strSql,  out   string  error,  params  DbParameter[] parameters)
        {
            
int  effect  =   0 ;
            error 
=   "" ;
            
if  ( ! OpenConnection())  return   - 1 ;
            DbTransaction trans 
=  Connection.BeginTransaction();
            
try
            {
                DbCommand cmd 
=  BuilderQueryCommand(strSql, parameters);
                cmd.Transaction 
=  trans;
                
if  (cmd.CommandType  ==  CommandType.StoredProcedure)
                {
                    
object  result  =  cmd.ExecuteScalar();
                    effect 
=  result  ==   null   ?   - 1  : Convert.ToInt16(result);
                }
                
else
                {
                    effect 
=  cmd.ExecuteNonQuery();
                }
                trans.Commit();
                
return  effect;
            }
            
catch  (Exception ex)
            {
                trans.Rollback();
                error 
=  ex.Message;
                
return  effect;
            }
            
finally
            {
                Connection.Close();
            }
        }

        
///   <summary>
        
///  返回执行操作结果的信息,如果返回为空则表示没错误,否则返回错误的信息。
        
///   </summary>
        
///   <param name="strSql"> 存储过程名 </param>
        
///   <param name="parameters"> 参数组 </param>
        
///   <returns></returns>
         public   string  ReExStr( string  strSql,  params  DbParameter[] parameters)
        {
            
string  error  =   string .Empty;
            
int  effect  =   0 ;
            
if  ( ! OpenConnection())  return   null ;
            DbTransaction trans 
=  Connection.BeginTransaction();
            
try
            {
                DbCommand cmd 
=  BuilderQueryCommand(strSql, parameters);
                cmd.Transaction 
=  trans;
                effect 
=  cmd.ExecuteNonQuery();
                trans.Commit();
                
if  (effect  ==   0 )
                {
                    error 
=   " 操作成功记录数为0,请检查意外的错误。 "   +   "  sql语句: "   +  strSql;
                }
                
else
                {
                    error 
=   "" ;
                }
            }
            
catch  (Exception ex)
            {
                trans.Rollback();
                error 
=   " sql语句: "   +  strSql  +   "  错误信息: "   +  ex.Message;
            }
            
finally
            {
                Connection.Close();
            }
            
return  error;
        }
        
///   <summary>
        
///  如果数据库连接已关闭,则打开
        
///   </summary>
        
///   <returns></returns>
         public   bool  OpenConnection()
        {
            
if  (Connection.State  ==  ConnectionState.Closed)
            {
                
try
                {
                    Connection.Open();
                }
                
catch
                {
                    
return   false ;
                }
            }
            
return   true ;
        }
        
public   void  CloseConnection()
        {
            Connection.Close();
        }
    }
}


 
复制代码

 


本文转自火地晋博客园博客,原文链接:http://www.cnblogs.com/yelaiju/archive/2010/09/22/1832916.html,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
弹性计算 Linux 网络安全
数据库出现了网络连通性类相关问题的抓包方法
如下列举了数据库遇到连通性问题时,在三种不同的操作系统上抓包的方式。
172 2
|
Java 关系型数据库 MySQL
JDBC连接数据库工具类
JDBC连接数据库工具类
|
存储 关系型数据库 数据库
Django创建应用、ORM的进阶使用及模型类数据库迁移1
Django创建应用、ORM的进阶使用及模型类数据库迁移1
114 0
|
存储 数据可视化 数据库
Django创建应用、ORM的进阶使用及模型类数据库迁移3
Django创建应用、ORM的进阶使用及模型类数据库迁移3
80 0
|
关系型数据库 MySQL 数据库
Django创建应用、ORM的进阶使用及模型类数据库迁移2
Django创建应用、ORM的进阶使用及模型类数据库迁移2
81 0
|
3月前
|
SQL NoSQL 关系型数据库
实时数仓Hologres发展问题之实时数仓的类数据库化与HTAP数据库的差异如何解决
实时数仓Hologres发展问题之实时数仓的类数据库化与HTAP数据库的差异如何解决
51 2
|
5月前
|
消息中间件 Java 数据库连接
【消息队列开发】 对核心类实现数据库管理
【消息队列开发】 对核心类实现数据库管理
|
3月前
|
SQL Java 关系型数据库
应用DriverManager类创建sqlserver数据库连接实例 JSP中使用数据库
该博客文章介绍了在JSP中使用JDBC连接SQL Server数据库的方法,包括加载数据库驱动、建立数据库连接的过程,并提供了一个使用DriverManager类创建数据库连接的Java示例代码。
|
5月前
|
关系型数据库 Java MySQL
Java关于Mysql数据库的事物处理类
Java关于Mysql数据库的事物处理类
22 0
|
6月前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
48 0
下一篇
无影云桌面