mysql連接實例程序代碼,mysql代碼示例

本文目錄一覽:

MySQL與Redis數據庫連接池介紹(圖示+源碼+代碼演示)

數據庫連接池(Connection pooling)是程序啟動時建立足夠的數據庫連接,並將這些連接組成一個連接池,由程序動態地對池中的連接進行申請,使用,釋放。

簡單的說:創建數據庫連接是一個很耗時的操作,也容易對數據庫造成安全隱患。所以,在程序初始化的時候,集中創建多個數據庫連接,並把他們集中管理,供程序使用,可以保證較快的數據庫讀寫速度,還更加安全可靠。

不使用數據庫連接池

如果不使用數據庫連接池,對於每一次SQL操作,都要走一遍下面完整的流程:

1.TCP建立連接的三次握手(客戶端與 MySQL服務器的連接基於TCP協議)

2.MySQL認證的三次我收

3.真正的SQL執行

4.MySQL的關閉

5.TCP的四次握手關閉

可以看出來,為了執行一條SQL,需要進行大量的初始化與關閉操作

使用數據庫連接池

如果使用數據庫連接池,那麼會 事先申請(初始化)好 相關的數據庫連接,然後在之後的SQL操作中會復用這些數據庫連接,操作結束之後數據庫也不會斷開連接,而是將數據庫對象放回到數據庫連接池中

資源重用:由於數據庫連接得到重用,避免了頻繁的創建、釋放連接引起的性能開銷,在減少系統消耗的基礎上,另一方面也增進了系統運行環境的平穩性(減少內存碎片以及數據庫臨時進程/線程的數量)。

更快的系統響應速度:數據庫連接池在初始化過程中,往往已經創建了若干數據庫連接置於池中備用。 此時連接的初始化工作均已完成。對於業務請求處理而言,直接利用現有可用連接,避免了從數據庫連接初始化和釋放過程的開銷,從而縮減了系統整體響應時間。

統一的連接管理,避免數據庫連接泄露:在較為完備的數據庫連接池實現中,可根據預先的連接佔用超時設定,強制收回被佔用連接。從而避免了常規數據庫連接操作中可能出現的資源泄露。

如果說你的服務器CPU是4核i7的,連接池大小應該為((4*2)+1)=9

相關視頻推薦

90分鐘搞懂數據庫連接池技術|linux後台開發

《tcp/ip詳解卷一》: 150行代碼拉開協議棧實現的篇章

學習地址:C/C++Linux服務器開發/後台架構師【零聲教育】-學習視頻教程-騰訊課堂

需要C/C++ Linux服務器架構師學習資料加qun 812855908 獲取(資料包括 C/C++,Linux,golang技術,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協程,DPDK,ffmpeg 等),免費分享

源碼下載

下載方式:(Github中下載)

db_pool目錄下有兩個目錄,mysql_pool目錄為MySQL連接池代碼,redis_pool為redis連接池代碼

下面介紹mysql_pool

CDBConn解析

概念: 代表一個數據連接對象實例

相關成員:

m_pDBPool:該數據庫連接對象所屬的數據庫連接池

構造函數: 綁定自己所屬於哪個數據庫連接池

Init()函數: 創建數據庫連接句柄

CDBPool解析

概念:代表一個數據庫連接池

相關成員:

Init()函數:常見指定數量的數據庫實例句柄,然後添加到m_free_list中,供後面使用

GetDBConn()函數: 用於從空閑隊列中返回可以使用的數據庫連接句柄

RelDBConn()函數: 程序使用完該數據庫句柄之後,將句柄放回到空閑隊列中

測試之前,將代碼中的數據庫地址、端口、賬號密碼等改為自己的(代碼中有好幾處)

進入MySQL, 創建mysql_pool_test數據庫

進入到mysql_pool目錄下, 創建一個build目錄並進入 :

然後輸入如下的命令進行編譯

之後就會在目錄下生成如下的可執行文件

輸入如下兩條命令進行測試: 可以看到不使用數據庫連接池,整個操作耗時4秒左右;使用連接池之後,整個操作耗時2秒左右,提升了一倍

源碼下載

下面介紹redis_pool

測試

進入到redis_pool目錄下, 創建一個build目錄並進入 :

然後輸入如下的命令進行編譯

之後就會在目錄下生成如下的可執行文件

輸入如下的命令進行測試: 可以看到不使用數據庫連接池,整個操作耗時182ms;使用連接池之後,整個操作耗時21ms,提升了很多

進入redis,可以看到我們新建的key:

java連接數據庫mysql代碼及簡單訪問數據庫

import java.sql.*;

public class DataBasePractice {

public static void main(String[] args) {

//聲明Connection對象

Connection con;

//驅動程序名

String driver = “com.mysql.jdbc.Driver”;

//URL指向要訪問的數據庫名mydata

String url = “jdbc:mysql://localhost:3306/mydata”;

//MySQL配置時的用戶名

String user = “root”;

//MySQL配置時的密碼

String password = “root”;

//遍歷查詢結果集

try {

//加載驅動程序

Class.forName(driver);

//1.getConnection()方法,連接MySQL數據庫!!

con = DriverManager.getConnection(url,user,password);

if(!con.isClosed())

System.out.println(“Succeeded connecting to the Database!”);

//2.創建statement類對象,用來執行SQL語句!!

Statement statement = con.createStatement();

//要執行的SQL語句

String sql = “select * from student”;

//3.ResultSet類,用來存放獲取的結果集!!

ResultSet rs = statement.executeQuery(sql);

System.out.println(“—————–“);

System.out.println(“執行結果如下所示:”);

System.out.println(“—————–“);

System.out.println(” 學號” + “\t” + ” 姓名”);

System.out.println(“—————–“);

String name = null;

String id = null;

while(rs.next()){

//獲取stuname這列數據

name = rs.getString(“stuname”);

//獲取stuid這列數據

id = rs.getString(“stuid”);

//首先使用ISO-8859-1字符集將name解碼為位元組序列並將結果存儲新的位元組數組中。

//然後使用GB2312字符集解碼指定的位元組數組。

name = new String(name.getBytes(“ISO-8859-1″),”gb2312”);

//輸出結果

System.out.println(id + “\t” + name);

}

rs.close();

con.close();

} catch(ClassNotFoundException e) {

//數據庫驅動類異常處理

System.out.println(“Sorry,can`t find the Driver!”);

e.printStackTrace();

} catch(SQLException e) {

//數據庫連接失敗異常處理

e.printStackTrace();

}catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}finally{

System.out.println(“數據庫數據成功獲取!!”);

}

}

}

在上面while代碼段後面添加以下代碼段:

String name = null;

String id = null;

while(rs.next()){

//獲取stuname這列數據

name = rs.getString(“stuname”);

//獲取stuid這列數據

id = rs.getString(“stuid”);

//首先使用ISO-8859-1字符集將name解碼為位元組序列並將結果存儲新的位元組數組中。

//然後使用GB2312字符集解碼指定的位元組數組。

name = new String(name.getBytes(“ISO-8859-1″),”gb2312”);

//輸出結果

System.out.println(id + “\t” + name);

}

PreparedStatement psql;

ResultSet res;

//預處理添加數據,其中有兩個參數–「?」

psql = con.prepareStatement(“insert into student values(?,?)”);

psql.setInt(1, 8); //設置參數1,創建id為5的數據

psql.setString(2, “xiaogang”); //設置參數2,name 為小明

psql.executeUpdate(); //執行更新

//預處理更新(修改)數據

psql = con.prepareStatement(“update student set stuname = ? where stuid = ?”);

psql.setString(1,”xiaowang”); //設置參數1,將name改為王五

psql.setInt(2,10); //設置參數2,將id為2的數據做修改

psql.executeUpdate();

//預處理刪除數據

psql = con.prepareStatement(“delete from student where stuid = ?”);

psql.setInt(1, 5);

psql.executeUpdate();

//查詢修改數據後student表中的數據

psql = con.prepareStatement(“select*from student”);

res = psql.executeQuery(); //執行預處理sql語句

System.out.println(“執行增加、修改、刪除後的數據”);

while(res.next()){

name = res.getString(“stuname”);

id = res.getString(“stuid”);

name = new String(name.getBytes(“ISO-8859-1″),”gb2312”);

System.out.println(id + “\t” + name);

}

res.close();

psql.close();

mysql連接數據庫代碼解釋

$conn=mysql_connect(“localhost”,”root”,”root”);

$conn=mysql_connect(“數據庫服務器”,”數據庫用戶名”,”數據庫密碼”);

//連接數據庫

$db_selected

=

mysql_select_db(“news_php”,

$conn);

$db_selected

=

mysql_select_db(“選擇你所需要的數據庫”,

$conn);

//選擇數據庫

mysql_query(“set

names

‘utf8′”,$conn);//字符集編碼

PHP怎麼連接MySQL

PHP連接mysql數據庫是PHP新手們必須要掌握的一項技能,只要掌握了PHP對數據庫進行增刪改查等操作,就可以寫出一些簡單且常見的程序。如留言表,新聞頁等。本篇文章主要給大家詳細介紹PHP連接Mysql數據庫的兩種常用方法。

下面我們通過具體的代碼示例來給大家詳細介紹兩種PHP連接mysql數據庫的方法。

mysqli連接數據庫和pdo連接數據庫。

第一種方法:使用mysqli連接mysql數據庫

代碼實例如下:

?php

$host=’127.0.0.1′;

$user=’root’;

$password=’root’;

$dbName=’php’;

$link=new mysqli($host,$user,$password,$dbName);

if ($link-connect_error){

die(”連接失敗:”.$link-connect_error);

}

$sql=”select * from admins”;

$res=$link-query($sql);

$data=$res-fetch_all();

var_dump($data);

在經過一系列的連接操作後,我們再創建一個sql語句對其中數據表進行查詢檢驗。在上述代碼中,我們要先創建一些需要用到的變量,如數據庫用戶名、數據庫名密碼等。然後我們用面向對象的方式連接了名為php的數據庫。再通過if條件語句,connect-error方法判斷PHP連接數據庫是否成功。

這裡我們先登錄phpmyadmin看看是否存在php數據庫,從下圖可以知道是存在php這個數據庫的。

最後通過瀏覽器訪問,結果如下圖:

從圖中可以得知,我們成功地連接了php數據庫,並且能查詢出數據表信息。

第二種方法:使用PDO連接數據庫

代碼示例如下:

?php

$host=’127.0.0.1′;

$user=’root’;

$password=’root’;

$dbName=’php’;

$pdo=new PDO(”mysql:host=$host;dbname=$dbName”,$user,$password);

$sql=”select * from admins”;

$data=$pdo-query($sql)-fetch();

var_dump($data);

PHP連接Mysql步驟以上就是關於PHP連接數據庫查詢數據的兩種常用方法詳解,更多相關教程請訪問php中文網mysql視頻教程,歡迎參考學習

mysql與c語言連接,代碼求解釋。

mysql是有c語言接口的,安裝相應庫後就可以鏈接了,一般連接mysql的函數是mysql_connect或者mysql_real_connect(大概就是這麼拼的吧。。。)可以使用mysql_query執行sql語句

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/206248.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-07 17:50
下一篇 2024-12-07 17:50

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在着手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • 怎麼寫不影響Python運行的長段代碼

    在Python編程的過程中,我們不可避免地需要編寫一些長段代碼,包括函數、類、複雜的控制語句等等。在編寫這些代碼時,我們需要考慮代碼可讀性、易用性以及對Python運行性能的影響。…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29

發表回復

登錄後才能評論