如何找到mysql-jdbc驱动源码

如何找到mysql-jdbc驱动源码,第1张

在工程中右键新建file,命名为jdbc.properties

创建完毕如图:

在jdbc.properties文件中输入如下信息,分别是数据库的驱动,连接,用户名和密码

新建JdbcTest2.java类

输入如下代码:

代码说明:

这段代码是读取配置文件,把配置文件中的各个项通过名称读取出来

这段代码是通过反射来创建Driver对象,反射就是类的实例化

在主函数中输入如下,测试方法

运行之后的结果如下,表示连接成功!

Mysql:Mysql-5.0.22.tar.gz 1>建立MySQL使用者和群组:

#groupadd mysql

#useradd -g mysql mysql2>解压缩Mysql-5.0.22.tar.gz源码

#cd /home

#tar zxvf Mysql-5.0.22.tar.gz3>进入源码目录编译安装

#cd /home/Mysql-5.0.22

#../configure --prefix=/usr/local/mysql --with-unix-socket-path=/usr/local/mysql/var/mysql.sock --with-tcp-port=3306 --with-mysqld-user=mysql --with-charset=gb2312

#make

#make install4>替换/etc/my.cnf文件,进入源码包,执行命令

#cp support-files/my-medium.cnf /etc/my.cnf5>完成以上 *** 作以后进行初始化数据库,进入已经安装好的mysql目录

#cd /usr/local/mysql

#bin/mysql_install.db --user=mysql |注:--user=mysql 初始化表并且规定用mysql用户6>设置给mysql和root用户设定访问权限 我们先进入mysql目录

#cd /usr/local/mysql

#chown –R root /usr/local/mysql |注:设定root能访问/usr/local/mysq

#chown –R mysql /usr/local/mysql/var |注:设定mysql用户能访问/usr/local/mysql/var

#chgrp –R mysql /usr/local/mysql|注:设定mysql组能够访问/usr/local/mysql7>启动mysql,进入已经安装好的目录

#cd /usr/local/mysql

#bin/mysqld_safe --user=mysql &8>设定开机就启动mysql,进入源码目录下

#cd /usr/local/mysql/share

#cp mysql.server /etc/init.d/mysql#cd /etc/rc3.d

#ln –s ../init.d/mysql S64mysql

#ln –s ../init.d/mysql K36mysql#cd /etc/rc5.d

#ln –s ../init.d/mysql S64mysql

#ln –s ../init.d/mysql K36mysql#cd ../init.d

#chmod 755 mysql

Gorm是Go语言开发用的比较多的一个ORM。它的功能比较全:

但是这篇文章中并不会直接看Gorm的源码,我们会先从database/sql分析。原因是Gorm也是基于这个包来封装的一些功能。所以只有先了解了database/sql包才能更加好的理解Gorm源码。

database/sql 其实也是一个对于mysql驱动的上层封装。”github.com/go-sql-driver/mysql”就是一个对于mysql的驱动,database/sql 就是在这个基础上做的基本封装包含连接池的使用

下面这个是最基本的增删改查 *** 作

*** 作分下面几个步骤:

因为Gorm的连接池就是使用database/sql包中的连接池,所以这里我们需要学习一下包里的连接池的源码实现。其实所有连接池最重要的就是连接池对象、获取函数、释放函数下面来看一下database/sql中的连接池。

DB对象

获取方法

释放连接方法

连接池的实现有很多方法,在database/sql包中使用的是chan阻塞 使用map记录等待列表,等到有连接释放的时候再把连接传入等待列表中的chan 不在阻塞返回连接。

之前我们看到的Redigo是使用一个chan 来阻塞,然后释放的时候放入空闲列表,在往这一个chan中传入struct{}{},让程序继续 获取的时候再从空闲列表中获取。并且使用的是链表的结构来存储空闲列表。

database/sql 是对于mysql驱动的封装,然而Gorm则是对于database/sql的再次封装。让我们可以更加简单的实现对于mysql数据库的 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/6160678.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-16
下一篇2023-03-16

发表评论

登录后才能评论

评论列表(0条)

    保存