手写JDBC的几个步骤
编者:顾念
使用的MySQL版本:8.0.19;
序言
因为数据库厂商有很多种,为了能够统一让java程序员使用更方便,sun公司编写了一套JDBC接口用于连接数据库。但是只有JDBC接口我们仍然是连接不了数据库的。这时候各个数据库厂商要为这个接口写程序,为了能够使其连接。
一、什么是JDBC
JDBC(JavaDataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。
二、JDBC的原理
由SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现。SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的,可以访问自己数据库的API被称之为驱动!
三、什么是驱动
其实驱动也非常好理解,驱动:只不过是为数据库连接这个动作起一个非常高大上的名字而已。你只需要明白在这里说这个词就可以了。其他的也就没有什么可说的了。
四、使用JDBC的前期准备
- 下载各个数据库厂商的数据库连接驱动
- 准备一个编辑器(推荐使用IDEA)
- 下载驱动,需要找对应的版本(可以直接去官网下载)
- 将驱动加载到编辑器中
开始进行操作
一、在IDEA中准备
- 创建一个普通的java工程
- 在该工程中创建一个lib文件夹
- 将你的数据库驱动文件(也就是你下载下来的jar包)复制到你的lib文件加下,但是现在还不能使用。
- 在你的lib文件中右击,在菜单栏中选择Add as Libraly。到这里你的驱动文件就已经加载到你的IDEA中了。
二、开始进行编码
-
在src中创建一个你自己的包,com.qianmo.Connection 这个自己根据自己的情况自己创建
-
在该包下创建自己的java文件,ConnectionTest.java.名字可以自己定
-
在src中创建一个jdbc.properties配置文件
-
编码
public class ConnectionTest{ //如果你想做测试的话也可以使用@Test来创建方法 public static void main(String[] args){ //使用IO数据流引用配置文件 InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); Properties proe = new Properties(); proe.load(is); String driver = proe.getProperty("driver"); String url = proe.getProperty("url"); String user = proe.getProperty("user"); String password = proe.getProperty("password"); //加载驱动 Class.forName(driver); //获取链接 Connection conn = DriverManager.getConnection(url,user,password); //输出是否链接成功 System.out.println(conn); } }
-
关于jdbc.properties文件内容
将配置文件命名为
JDBC.properties
.针对于MySQL8.0以上版本的配置文件内容与MySQL5.7版本的配置文件内容有所区别,现在我们写以下关与MySQL8.0以上的配置文件内容driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC user=root password=1213
三、输出为:
com.mysql.cj.jdbc.ConnectionImpl@31dc339b:或者一些特殊的符号,但是必须有com.mysql.cj.jdbc,表示连接成功。
四、介绍以下ORM编程思想,并做代码实例
内容:
- 一个数据表对应一个Java类
- 表中的一条记录对应着Java类中的一个对象
- 表中的一个字段对应着Java类中的一个属性
实例:
假设我们有一张customers表,表中有3个字段,name,email,birth
那么我们根据ORM的编程思想可以将数据表映射成Java类为
import java.sql.Date;
public class Customers{
private int id;
private String name;
private String email;
private Date brith;
//空参方法
public Customer(){
super();
}
//有参方法
public Customer(int id, String name, String email, Date birth) {
this.id = id;
this.name = name;
this.email = email;
this.birth = birth;