當前位置:首頁 » 密碼管理 » 資料庫訪問通用類

資料庫訪問通用類

發布時間: 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-04-05 10:39:05 瀏覽:530
存儲核心架構瓶頸已被攻破 發布:2025-04-05 10:38:27 瀏覽:304
空間新演算法 發布:2025-04-05 10:33:21 瀏覽:706
蜀門和遠征哪個配置低 發布:2025-04-05 10:23:50 瀏覽:284
linux下jdk的安裝 發布:2025-04-05 10:12:20 瀏覽:67
單機江湖腳本 發布:2025-04-05 10:08:32 瀏覽:764
愛奇藝離線緩存怎麼傳藍牙 發布:2025-04-05 10:00:48 瀏覽:140
阿里雲伺服器內存超頻 發布:2025-04-05 10:00:48 瀏覽:575
如何登錄pubg國際服安卓手機 發布:2025-04-05 09:40:07 瀏覽:413
javafor表達式 發布:2025-04-05 09:22:22 瀏覽:869