当前位置:首页 » 密码管理 » 数据库访问通用类

数据库访问通用类

发布时间: 2023-11-10 02:20:35

python接入不同类型数据库的通用接口方法

日常数据管理工作中,需要处理存储在不同类型数据库系统的数据。对这些数据的管理,常见的是使用Navicat,DBeaver等管理工具。在对大量数据分析时,需要提取到Python/R中进行处理。下面 探索 Python调用Mysql,MongoDB,InfluxDB等多种类型数据库通用连接方法。实现方式是在Python中封装各类数据库接口包。

实现后的效果:1.安全。接口信息封装便于保密管理;2.复用。一次封装,永久复用;3.上手快。方便不熟悉python和数据调用的同学,只会简单的sql即可使用,省时省力。

下面以MySQL,MongoDB,InfluxDB为例定义接口方法,然后把它们封装成1个通用方法。

mysql_get(sql,db):

mongo_get(sql,db):

influx_get(sql,db):

可以看到,以上函数共同调用的参数为sql和db。我们再增加一个参数db_type,将构造一个通用的方法对以上数据库调用。

同理,其他类型的数据库也可以加入到这个通用框架中,包括但不限于各类关系型,键值型,时序型数据库。

② 哪位高手可以推荐几款通用的数据库管理工具

1、MySQL Workbench
MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具。它是着名的数据库设计工具DBDesigner4的继任者。你可以用MySQL Workbench设计和创建新的数据库图示,建立数据库文档,以及进行复杂的MySQL 迁移
MySQL Workbench是下一代的可视化数据库设计、管理的工具,它同时有开源和商业化的两个版本。该软件支持Windows和Linux系统,下面是一些该软件运行的界面截图:

2、数据库管理工具 Navicat Lite
NavicatTM是一套快速、可靠并价格相宜的资料库管理工具,大可使用来简化资料库的管理及降低系统管理成本。它的设计符合资料库管理员、开发人员及中小企业的需求。 Navicat是以直觉化的使用者图形接口所而建的,让你可以以安全且简单的方式建立、组织、存取并共用资讯。
界面如下图所示:

Navicat 提供商业版Navicat Premium 和免费的版本 Navicat Lite 。免费版本的功能已经足够强大了。
Navicat 支持的数据库包括MySQL、Oracle、SQLite、PostgreSQL和SQL Server 等。

3、开源ETL工具Kettle
Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高效稳定(数据迁移工具)。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

·授权协议:LGPL
·开发语言: Java
·操作系统: 跨平台
4、Eclipse SQLExplorer
SQLExplorer是Eclipse集成开发环境的一种插件,它可以被用来从Eclipse连接到一个数据库。
SQLExplorer插件提供了一个使用SQL语句访问数据库的图形用户接口(GUI)。通过使用SQLExplorer,你能够显示表格、表格结构和表格中的数据,以及提取、添加、更新或删除表格数据。
SQLExplorer同样能够生成SQL脚本来创建和查询表格。所以,与命令行客户端相比,使用SQLExplorer可能是更优越的选择,下图是运行中的界面,很好很强大。

l授权协议: 未知
l开发语言: Java
l操作系统: 跨平台
5、MySQL管理工具phpMyAdmin
phpMyAdmin是一个非常受欢迎的基于web的MySQL数据库管理工具。它能够创建和删除数据库,创建/删除/修改表格,删除/编辑/新增字段,执行SQL脚本等。

l授权协议:GPL
l开发语言:PHP
l操作系统:跨平台
6、Mongodb 管理工具Mongodb Studio
Mongodb是一款性能优良,功能丰富的文档型非关系型数据库。由于该数据库是开源项目并且还在不断更新中,目前为止在任何平台上都不能找到功能相对完整的客户端数据库管理工具。而越来越多的项目中使用了Mongodb,使得管理起来十分麻烦.如果点点鼠标就搞定了.那该有多好。
基于如上背景,我们制作了此MongoDB管理工具,在DBA/开发/管理员三个维度提供一定层次的管理功能。

Mongodb Management Studio功能如下:
l服务器管理功能
添加服务器,删除服务器
l服务器,数据库,表,列,索引,树形显示和状态信息查看
l查询分析器功能.
支持select,insert,Delete,update
支持自定义分页函 数 $rowid(1,5)查询第一条到第五条,需放在select后面.
l索引管理功能
支持列名的显示,索引的创建,查看,删除.
l数据库Profile管理.
可以设置Profile开关,查看Profile信息.自定义分页大小.
lmaster/slave信息显示
7、MySQL监控小工具mycheckpoint
mycheckpoint是一个开源的 MySQL监控工具,主要用来监控数据。通过视图方式提供监控数据报表。mycheckpoint支持以独立的Web服务器来运行。
例如:SELECTinnodb_read_hit_percent, DML FROM sv_report_chart_sample;

查看详细报表示例。
安装手册:http://code.openark.org/forge/mycheckpoint/documentation/installation
8、SQL SERVER 数据库发布向导
Microsoft SQL Server DatabasePublishing Wizard (微软SQLServer数据库发布向导) 是微软发布的一个开源工具,使用该工具可以帮你将SQLSERVER 数据库导出成一个 SQL脚本,类似 MySQL 的 mysqlmp工具。
官方说明:SQLServer数据库发布向导提供了一种将数据库发布到 T-SQL 脚本或者直接发布到支持宿主服务提供程序的方法。

9、Eclipse 的Oracle插件jOra
jOra是一个为 Oracle开发者和管理员提供的 Eclipse 插件,可轻松的对Oracle进行开发和管理。
安装地址:http://jora.luenasoft.de/updatesite
插件截图

l授权协议:免费,非开源
l开发语言:Java
l操作系统:跨平台
10、免费PostgreSQL监控工具pgwatch
pgwatch 是一个简单易用的PostgreSQL的监控工具,支持PostgreSQL 9.0 以及更新的版本。
主要特性:
- 配置简单
- 大量的监控图表
- 快速系统检查面板
- 自动收集统计信息
- 交互式的 Flash 图表
- 集成 SQL worksheet

l授权协议: Artistic
l开发语言:PHP
l操作系统: Linux
11、MySQL Browser
MySQL的客户端工具MySQL Browser的优点是简单,及其的简单,安装之后能够立刻上手,马上就能使用的那种,布局也很简陋,功能也很简陋,简单使用没有问题,尤其是刚开始学习mysql的同学,可以尝试一下。

·授权协议:未知
·操作系统: Windows
12、MySQL客户端软件HeidiSQL
HeidiSQL是一个功能非常强大的 MySQL 客户端软件,采用Delphi 开发,支持 Windows 操作系统。

l授权协议:GPL
l开发语言:Delphi/Pascal
l操作系统: Windows
13、SQLite管理工具SQLiteStudio
SQLiteStudio 是一个跨平台的 SQLite数据库的管理工具,采用 Tcl语言开发。
l授权协议:未知
l操作系统:跨平台
14、SQL客户端工具SQLyog
SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库。

功能:
l快速备份和恢复数据;
l以GRID/ TEXT格式显示结果;
l支持客户端挑选、过滤数据;
l批量执行很大的SQL脚本文件;
l快速执行多重查询并能够返回每页超过1000条的记录集,而这种操作是直接生成在内存中的;
l程序本身非常短小精悍!压缩后只有348 KB ;
l完全使用MySQLC APIs程序接口;
l以直观的表格界面建立或编辑数据表;
l以直观的表格界面编辑数据;
l进行索引管理;
l创建或删除数据库;
l操纵数据库的各种权限:库、表、字段;
l编辑BLOB类型的字段,支持Bitmap/GIF/JPEG格式;
l输出数据表结构/数据为SQL脚本;
l支持输入/输出数据为CSV文件;
l可以输出数据库清单为HTML文件;
l为所有操作建立日志;
l个人收藏管理操作语句;
l支持语法加亮显示;
l可以保存记录集为CSV、HTML、XML格式的文件;
l21、99% 的操作都可以通过快捷键完成;
l支持对数据表的各种高级属性修改;
l查看数据服务器的各种状态、参数等;
l支持更改数据表类型为ISAM, MYISAM, MERGE, HEAP, InnoDB, BDB;
l刷新数据服务器、日志、权限、表格等;
l诊断数据表:检查、压缩、修补、分析。
l授权协议:GPLv2
l开发语言:C/C++
l操作系统: Windows
15、数据挖掘工具RapidMiner
RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。
功能和特点
l免费提供数据挖掘技术和库;
l100%用Java代码(可运行在操作系统);
l数据挖掘过程简单,强大和直观;
l内部XML保证了标准化的格式来表示交换数据挖掘过程;
l可以用简单脚本语言自动进行大规模进程;
l多层次的数据视图,确保有效和透明的数据;
l图形用户界面的互动原型;
l命令行(批处理模式)自动大规模应用;
lJava API(应用编程接口);
l简单的插件和推广机制;
l强大的可视化引擎,许多尖端的高维数据的可视化建模;
l400多个数据挖掘运营商支持;
l耶鲁大学已成功地应用在许多不同的应用领域,包括文本挖掘,多媒体挖掘,功能设计,数据流挖掘,集成开发的方法和分布式数据挖掘。

l授权协议:未知
l开发语言:Java
l操作系统:跨平台
16、Oracle 数据库开发工具Oracle SQL Developer
Oracle SQL Developer 是一个免费非开源的用以开发数据库应用程序的图形化工具,使用SQLDeveloper 可以浏览数据库对象、运行 SQL 语句和脚本、编辑和调试 PL/SQL语句。另外还可以创建执行和保存报表。该工具可以连接任何 Oracle 9.2.0.1 或者以上版本的 Oracle 数据库,支持Windows、Linux 和 Mac OS X 系统。

·授权协议:免费,非开源
·开发语言:Java
·操作系统:Windows Linux MacOS
17、EMS SQL Manager for MySQL
EMS SQL Manager for MySQL是一款高性能MySQL数据库服务器系统的管理和开发工具。它支持从MySQL 3.23到6.0的任一版本,并支持最新版本的MySQL的特点,包括:查看、存储规程和函数、InnoDB外部键字和其他特点。它提供了大量工具以满足富有经验的用户的所有要求。添加了精心设计的操作向导系统,以及SQL Manager for MySQL那富有艺术感的图形用户界面,即使新手也可以不会为如何使用而感到困扰。

l授权协议:商业软件
l开发语言:C/C++
l操作系统: Windows
18、数据库管理工具CoolSQL
CoolSQL是一个数据库客户端管理工具。
·支持大部分数据库包括:DB2、oracle、mysql、MS SQL Server、Derby、HSQL、Informix、Sybase、PostgresSQL等。
·为用户提供友好和漂亮UI,其整体框架由视图组成类似于Eclipse。支持直接修改SQL查询结果。
·支持将表格数据导出成文本文件,EXCEL和HTML。
·拥有一个支持SQL语法着色显示,智能提示,文本编辑和查找的SQL编辑器。
·能够展示数据库大部分元数据包括:版本,数据类型、函数,连接信息等。
·支持导出数据对象信息包括对象数据(INSERT SQL语句),生成创建/删除脚本(create script/drop script)。
·所有SQL脚本都可以以批量的模式执行。
·能够搜索所有数据包括数据库列,表/视图和其他表格型。
·支持i18n,当前提供两种语言(中文和英文)。
·提供收藏功能,管理由用户收集的文本信息。
·支持通过插件扩展其功能。

ll 授权协议:未知
l开发语言:Java
l操作系统:跨平台
19、SQLite Manager
这是一款方便firefox对任何SQLite数据库操作的扩展。使用这款扩展,可以在firefox下很容易的创建表格、建立索引、浏览搜索等操作。此外它还具有一个语法检查功能的下拉式菜单,从而保证用户的操作不会出错。

20、MySQL GUI Tools
这是MySQL官方专业的数据库管理工具,同时支持多种操作系统。该工具包括下面三个产品:
·MySQL Administrator 1.2
·MySQL Query Browser 1.2
·MySQL MigrationToolkit 1.1

21、SQL客户端管理工具SQuirreL SQL Client
SQuirreL SQL Client是一个SQL客户端管理工具。它允许你查看一个兼容JDBC的数据库的结构,浏览表格中的数据,运行SQL命令, 可连接的数据库有ORCAL,MS SQLSERVER, DB2 等, 它还允许用户安装和创建用于补充应用程序基本功能的插件。

功能和特点:
l柱状图显示对像;
l自动完成;
l语句提示;
l标记;
l自动纠正;
l编辑查询结果;
l关系图;
l分页打印。
l授权协议:未知
l语言:Java
l操作系统:跨平台
22、Tomcat管理工具EasyTomcat
EasyTomcat是一个用来帮助简化 Tomcat和 MySQL管理的系统,你可以启动、停止和配置Tomcat和MySQL服务器,同时也提供了监控的功能。

l授权协议:未知
l开发语言:Java
l操作系统:跨平台
23、SQL Server管理工具sqlBuddy
SqlBuddy是C#编写的一款用于Microsoft SQLServer和MSDE的开源工具,使用它可以很容易的编写SQL脚本。SqlBuddy提供的功能和查询分析器的目的有些微不同,它倾向于帮助使用者编写SQL。

l授权协议:未知
l开发语言:C#
l操作系统: Windows
24、数据库开发工具GSQL
GSQL 是 Gnome 下的一个集成数据库开发工具。数据库结构显示在下图左边的树状结构中,支持SQL的语法着色。

l授权协议:未知
l操作系统:Linux
25、SQLite数据库管理SQLiteSpy
sqlitespy是一个快速和紧凑的数据库SQLite的GUI管理软件 。它的图形用户界面使得它很容易探讨,分析和操纵sqlite3数据库。

l授权协议:未知
l开发语言:Delphi/Pascal
l操作系统:Windows
26、数据库开发工具Aqua Data Studio
Aqua DataStudio 是一个为数据库开发人员准备的集成开发环境,可以对数据库做查询、管理,提供大量的数据库工具,例如数据库比较、源码控制等,目前支持的数据库包括:Oracle, DB2iSeries, DB2 LUW, MS SQL Server, Sybase ASE, Sybase Anywhere, Sybase IQ, Informix,PostgreSQL, MySQL, Apache Derby, JDBC, and ODBC.

l授权协议:未知
l开发语言:C/C++
l操作系统:跨平台
27、MySQL 架构管理工具MySQL MMM
MySQL Master-Master 架构常被用在 SQLquery 相依性低的情况,像是 counter常使用的INSERT INTO ... ON DUPLICATEKEY UPDATE a = a + 1不会因为out-of-order而造成问题。而 MySQL MMM算是其中一套写得比较好的 MySQLMaster-Master架构管理工具。
l授权协议:未知
l开发语言:Python
l操作系统: Linux
28、MySQL Client
MySQL的客户端工具,主界面如下:

l授权协议:未知
l操作系统:Windows

③ asp.net中数据库连接的公共类的调用方法

下面的例子就是调用通用类的数据库操作方法(数据库的链接与关闭都在通用类中),不懂得花可以发例子给你。using System;
using System.Collections.Generic;
using System.Text;using TroubledTimes.Models;
using System.Data;
using System.Data.SqlClient;namespace TroubledTimes.DAL
{
/// <summary>
/// 官方活动信息数据访问类
/// </灶兄summary>
public static class FunctionsService
{
/// <summary>
/// 1.根据不同情况查询活动信息
/// </summary>
//敬模/ <param name="type">活动类型</param>
/// <param name="state">设置状态</param>
/// <param name="name">活动名称</param>
/// <param name="flag">控制变量</param>
/// <returns>活动信息对象的集合</returns>
public static IList<Functions> GetAllFunctions(string type,string state,string name,int flag)
{
string sql = "Select * from Functions where State =1";
if(type!="" && flag==1)
sql += " and FunState='" + type + "'";
else if (state != "" && flag == 2)
sql += " and SetState='" + state + "'";
else if (name!="" && flag==3)
sql += " and FunctionName like '%" + name + "%'";
else if (flag == 4)
sql += " and FunState='" + type + "隐稿袭' and SetState='" + state + "'";
else if (flag == 5)
sql += " and FunState='" + type + "' and FunctionName like '%" + name + "%'";
else if (flag == 6)
sql += " and SetState='" + state + "' and FunctionName like '%" + name + "%'";
else if (flag == 7)
sql += " and FunState='" + type + "' and SetState='" + state + "' and FunctionName like '%" + name + "%'";
sql += " order by FunNumber Desc";
IList<Functions> list = new List<Functions>();
try
{
// DataTable dt = DBHelper.GetScalar("up_SelectFunctions");
DataTable dt = DBHelper.GetDataTable(sql);
foreach (DataRow row in dt.Rows)
{
Functions function = new Functions();
function.FunctionName = (string)row["FunctionName"];
function.FId = (int)row["FId"];
function.FunctionUrl = (string)row["FunctionUrl"];
function.FunctionImg = (string)row["FunctionImg"];
function.FunctionContent = (string)row["FunctionContent"];
function.FunctionTime = (DateTime)row["FunctionTime"];
function.FunAdminUrl = (string)row["FunAdminUrl"];
function.FunState = (int)row["FunState"]; //--活动类型(游戏活动/官网活动,0:游戏)<后加>
function.SetState = (int)row["SetState"]; //--设置状态(设置中/预设置,0:预设置)<后加>
function.FunNumber = (int)row["FunNumber"]; //--活动支持率(仅官网)<后加>
function.State = (int)row["State"]; //--存贮状态(0/1)
list.Add(function);
}
return list;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
} /// <summary>
/// 2.根据活动类型获取活动信息
/// </summary>
/// <param name="id">活动类型</param>
/// <returns>该活动类型的数量</returns>
public static int GetFunctionsByType(int type)
{
IList<Functions> list = new List<Functions>();
try
{
string sql = "select count(*) from Functions where SetState = 1 and FunState='" + type+ "'";

return DBHelper.Sanlar(sql); }
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return 0;
}
} /// <summary>
/// 3.根据活动ID修改活动信息
/// </summary>
/// <param name="f">活动信息类对象</param>
/// <returns>数据库中受影响的行数</returns>
public static int ModifyFunctionsById(Functions f)
{
try
{
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@FId",f.FId),
new SqlParameter("@FunctionName",f.FunctionName),
new SqlParameter("@FunctionUrl",f.FunctionUrl),
new SqlParameter("@FunctionImg",f.FunctionImg),
new SqlParameter("@FunctionContent",f.FunctionContent),
new SqlParameter("@FunctionTime",f.FunctionTime),
new SqlParameter("@function.FunAdminUrl",f.FunAdminUrl),
new SqlParameter("@FunState",f.FunState),
new SqlParameter("@FunNumber",f.FunNumber),
new SqlParameter("@SetState",f.SetState),
new SqlParameter("@State",f.State)
};
return DBHelper.ExecuteProc("up_AmendFunctions", para);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return 0;
}
} /// <summary>
/// 4.添加活动信息
/// </summary>
/// <param name="f">活动信息类对象</param>
/// <returns>数据库中受影响的行数</returns>
public static int AddFunctions(Functions f)
{
try
{
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@FunctionName",f.FunctionName),
new SqlParameter("@FunctionUrl",f.FunctionUrl),
new SqlParameter("@FunctionImg",f.FunctionImg),
new SqlParameter("@FunctionContent",f.FunctionContent),
new SqlParameter("@FunctionTime",f.FunctionTime),
new SqlParameter("@FunAdminUrl",f.FunAdminUrl),
new SqlParameter("@FunState",f.FunState),
new SqlParameter("@FunNumber",f.FunNumber),
new SqlParameter("@SetState",f.SetState),
new SqlParameter("@State",f.State) };
return DBHelper.ExecuteProc("up_AddFunctions", para);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return 0;
} }
/// <summary>
/// 5、根据id批量删除活动信息(修改)
/// </summary>
/// <param name="id">活动信息id</param>
/// <returns>返回受影响的行数</returns>
public static int DeleteFunById(string ids)
{
//string sql = "update Functions set State = 0 where FId in('"+ids+"')";
string sql = "update Functions set State = 0 where FId ='" + ids + "'";
try
{
return DBHelper.ExecuteCommand(sql);
}
catch(Exception ex)
{
throw ex;
}
}
/// <summary>
/// 6、根据id修改设置状态
/// </summary>
/// <param name="id">活动信息id</param>
/// <returns>返回受影响的行数</returns>
public static int UpdateSetById(int id, int setState)
{
string sql = "Update Functions set SetState = "+setState+" where FId="+id;
try
{
return DBHelper.ExecuteCommand(sql);
}
catch(Exception ex)
{
throw ex;
}
}
}
}

④ C#语言中访问数据库的类有哪些

SQL Server .NET Framework数据提供程序的四个核心对象:
SqlConnection SQL Server 数据库的的连接。
SqlCommand 对SQL Server 数据库执行Transact-SQL 语句或存储过程。
SqlDataReader 提供从SQL Server 数据库读取行的只进只读的数据流。
SqlDataAdapter 填充DataSet ,更新 SQL Server 数据库。
此外还有如下常用的类:
DataSet 数据在内存中的缓存,DataAdapter是桥接器,用Fill方法从数据库填充DataSet,用Update方法更新数据库。
数据绑定类:
DataGridView 表格控件,显示数据库表。
BindingSource 封装窗体的数据源
BindingNavigator 对窗体上绑定的数据导航。是窗体上定位和操作数据的标准化方法。将各种功能的按钮集成在一起,默认情况下,BindingNavigator控件的用户界面(UI)由一系列ToolStrip按钮、文本框和静态文本元素组成,用于进行大多数常见的数据相关操作(如添加数据、删除数据和在数据中导航)。每个控件都可以通过BindingNavigator控件的关联成员进行检索或设置。
在LINQ to SQL中:
DataContext 是映射数据库的管道,也可以在DataContext类中声明方法,映射数据库中的存储过程和自定义函数。
实体类 映射数据库的表以及表间关系,类中的属性和字段映射表的字段。

热点内容
压缩段的作 发布:2025-01-20 07:04:13 浏览:377
安卓studio字体如何居中 发布:2025-01-20 07:04:13 浏览:150
edge浏览器无法访问 发布:2025-01-20 06:52:57 浏览:329
c语言inline函数 发布:2025-01-20 06:45:43 浏览:746
安卓手机如何把锁屏时间去掉 发布:2025-01-20 06:34:16 浏览:434
linux卸载jdk17 发布:2025-01-20 06:33:29 浏览:230
猿编程使用 发布:2025-01-20 06:17:58 浏览:452
编译lichee 发布:2025-01-20 06:16:33 浏览:156
f5算法 发布:2025-01-20 06:11:39 浏览:255
吃鸡游戏服务器被锁怎么办 发布:2025-01-20 06:04:21 浏览:176