mysql连接实例程序代码,mysql代码示例

发布时间:2022-11-17

本文目录一览:

  1. MySQL与Redis数据库连接池介绍(图示+源码+代码演示)
  2. java连接数据库mysql代码及简单访问数据库
  3. mysql连接数据库代码解释
  4. PHP怎么连接MySQL
  5. mysql与c语言连接,代码求解释。

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服务器架构师学习资料加群 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目录并进入: 然后输入如下的命令进行编译:
cmake ..
make

之后就会在目录下生成如下的可执行文件。 输入如下两条命令进行测试: 可以看到不使用数据库连接池,整个操作耗时4秒左右;使用连接池之后,整个操作耗时2秒左右,提升了一倍。

源码下载

下面介绍redis_pool

测试

进入到redis_pool目录下,创建一个build目录并进入: 然后输入如下的命令进行编译:

cmake ..
make

之后就会在目录下生成如下的可执行文件。 输入如下的命令进行测试: 可以看到不使用数据库连接池,整个操作耗时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连接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语句。