
创建完毕如图:
在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数据库的 *** 作。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)