Mysql数据库是一个金典的 关系型数据库.有着很大的用户,在这里,我将带大家来学习下mysql数据库.我们的程序生成的数据一般
放在数据库里面.那么问题来了。java程序是如何连接到数据库了。在这里java是通过数据库厂商提供的jar包来实现和数据库的连接的。mysql数据库所谓最新jar包已经到了8版本了。
要想使用java程序连接mysql数据库,首先必须要真确的安装MySQL数据库软件.
接下来就是下载mysql数据库的驱动jar包,目前已经是8版本了。直接去官网下载姐可以.
地址如下:https://dev.mysql.com/downloads/connector/j/
这里,下载下面的哪一个版本,至于着两个包之间有啥区别,我也不知道。下载解压之后,就可以。此时我们要解压到一个
一个好找的地方.
.如何在idea里面加载我们的包了。
选择file--------->项目结构----------》选择modules----->选择依赖项目-----》最右边的+好点击-------》初选jars and dectionary。此时导入我们的jar包就可以了。此时外部的jar包已经导入到我们的项目里面。
下面来看看代码吧。
package Test;
import java.sql.*;
/**
* @author hackbase Java连接数据库的测试程序.
*/
public class Demo2 {
public static void main(String[] args) {
//加载数据库的驱动类,通过反射机制来实现的.
Connection con;
//这里我的数据库是school
String url = "jdbc:mysql://localhost:3306/school?&useSSL=false&serverTimezone=UTC";
String username = "root";
String password = "1987luoliang";
//jdbc驱动
String driver = "com.mysql.cj.jdbc.Driver";
try {
Class.forName(driver);
//建立链接.
try {
con = DriverManager.getConnection(url, username, password);
if (!con.isClosed()) {
System.out.println("数据库连接成功");
//测试是否能够执行sql语句.
Statement stmt = con.createStatement();
String sql;
sql = "select name, year,address from teacher";
ResultSet ret = stmt.executeQuery(sql);
//执行这条sql语句.
while (ret.next()) {
//取出内容,打印在控制台.
String name = ret.getString("name");
String address = ret.getString("address");
Date date = ret.getDate("year");
System.out.println("name:" + name);
System.out.println("Address:" + address);
System.out.println("Year:" + date);
}
}
//关闭数据库。
con.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库链接失败");
}
} catch (ClassNotFoundException e) {
System.out.println("数据库驱动没有安装");
}
}
}
在这个程序里面,我们又一个数据库school
Java连接数据库的几个步骤.
1.加载数据库驱动类。这个驱动类是通过java的反射机制来获得的.
数据库驱动类是连接数据库和程序之间的桥梁,是通过反射机制来实现的。
注意mysql5及之前的版本使用的是旧版驱动"com.mysql.jdbc.Driver",
mysql6以及之后的版本需要更新到新版驱动,对应的Driver是"com.mysql.cj.jdbc.Driver"
如果驱动类加载不正确的话,会抛出错误,大家可以去测试一下这个驱动类是由驱动厂商提供的,由于数据库由很多,常见的
数据库由MySQL ,oracel,db2,sqlServer,Mongodb等等。因此他们的驱动类是不同的。
其中java.sql是sun官方提供的包,java.sql.Driver是sun提供的一组用于连接数据库的接口之一,由数据库厂商自行实现
由上可知,com.mysql.cj.jdbc.Driver这个驱动类,是对java.sql.Driver接口的实现。
2.创建数据库的连接对象.
DriverManager.getConnection(url, username, password);
使用的是DriverMabager提供的一个静态的方法。该方法由三个参数,
1.url 表示要连接的数据库的地址.
"jdbc:mysql://localhost:3306/school?&useSSL=false&serverTimezone=UTC";
由于MySQL数据库的默认单口是3306.school代表的就是连接的是表school这个数据库。后面两个参数一个是设置数据库服务器的时区为utc也就是国际标准时区。ssl是一个安全的协议,是网络安全套接字的简称。在高版本的驱动jar包里面,必须设置这两个参数,否则编译器会抛出异常。
2.第二个参数就是数据库的用户名,MySQL数据库的根用户一般是root。
3.第三个参数就是数据库的密码
到这里如果不出意外的情况下,我们的MySQL数据库算是连接成功了。数据库连接成功了,会产生一个连接对象.
在这里要注意的两点就是
1.jar包的版本不兼容的问题我们一定要导入最新的jar包.
2.其次就是要注意的就是url。就是要连接数据库的url。不要写错.
String url = "jdbc:mysql://localhost:3306/school?&useSSL=false&serverTimezone=UTC";
数据库连接成功之后,我们就可以使用sql语句来操作数据了。首产生先sql语句的执行对象。就是我们的stmt对象了。
调用该对象的
stmt.executeQuery(sql);方法,就可以执行我们的sql语句了。注意他又一个参数,就是我们要执行的sql语句。会返回一个
执行结果集的对象。调用对象的next方法,就可以取出从数据库获得的数据了。
while (ret.next()) {
//取出内容,打印在控制台.
String name = ret.getString("name");
String address = ret.getString("address");
Date date = ret.getDate("year");
System.out.println("name:" + name);
System.out.println("Address:" + address);
System.out.println("Year:" + date);
}
ResultSet ret = stmt.executeQuery(sql);
Statement stmt = con.createStatement();
这就是JAVA连接mysql数据库的操作了。开始学习,由写不正确的地方,希望大家多指点。在下一篇的博客里面,我们来进行深入的分析下。有问题,多多的指点。学习编程,就是多写代码.
在下一篇的章节里面,我将深入的分析内部机制。