首先,想要连接数据库,就先要下载一个数据库驱动,JDBC驱动。
数据库驱动是不同数据库开发商(比如oracle mysql等)为了某一种开发语言环境(比如java)能够实现统一的数据库调用而开发的一个程序,他的作用相当于一个翻译人员,将java语言中对数据库的调用语言通过这个翻译翻译成各个种类的数据库自己的数据库语言,当然这个翻译(数据库驱动)是由各个开发商针对统一的接口自定义开发的。
JDBC:Java Database Connectivity,java数据库连接。
是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
JDBC下载:? https://dev.mysql.com/downloads/file/?id=488445
选择Zip版进行下载。
先在mysql中创建一个数据库
create database demo;//创建一个数据库
use demo;
create table user(name VARCHER(20),pasword VARCHAR(20));
insert into user VALUES('wudimin','123456');
打开eclipse创建一个项目,在项目中导入jar包
方法:右键点击my ---> build Path ---> add external Archiver...选择jdbc驱动,点击确定。
我的项目列表:
到此,驱动已经导入完成,下面代码实现验证功能:
//方法一
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Jdbc_test {
public static void main(String[] args) {
/*
* jdbc:mysql:// 是JDBC连接方式,是一个协议
* localhost: 服务器地址
* 3306: 是SQL数据库的端口号
* /demo:是要连接数据库名
* ?serverTimezone=GMT%2B8:当前的系统时区
*/
/*
* 驱动类
* mysql5及之前的版本使用的是旧版驱动"com.mysql.jdbc.Driver",
* mysql6以及之后的版本需要更新到新版驱动,对应的Driver是"com.mysql.cj.jdbc.Driver"
* 这个类是数据库厂商实现的JDBC一套接口里的一个类,称之为“驱动类”。
* com.mysql.cj.jdbc.Driver这个驱动类,是对java.sql.Driver接口的实现
*/
String url = "jdbc:mysql://localhost:3306/demo?serverTimezone=GMT%2B8";
//加载mysql—JDBC驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
}catch(Exception e) {}
//连接数据库
try {
//创建对象
//建立连接
Connection con = DriverManager.getConnection(url, "root", "zn123");
System.out.println("数据库连接成功");
}catch (SQLException e) {
System.out.println("数据库连接失败");
System.out.println(e);
}
}
}
//方法二
import java.sql.Connection;
import java.sql.DriverManager;
public class DbUtil {
private String url = "jdbc:mysql://localhost:3306/da_books?serverTimezone=GMT%2B8";
//获取数据库链接
public Connection getCon()throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection(url, "root", "123456");
return con;
}
//关闭数据库链接
public void closeCon(Connection con)throws Exception{
if(con != null) {
con.close();
}
}
public static void main(String[] args) {
DbUtil dbUtil = new DbUtil();
try {
dbUtil.getCon();
System.out.println("数据库连接成功");
} catch (Exception e) {
e.printStackTrace();
System.out.println("数据库连接失败");
}
}
}
在以后的应用中,会出现如下代码:
url = "jdbc:mysql://localhost:3306/Library?useSSL=true&characterEncoding=utf-8"
这句代码中,?后面的内容是字符编码的设置 。
添加的作用是:指定字符的编码、解码格式。
例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:
1. 存数据时:
数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。
2.取数据时:
在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。
最后:如果控制台输出“数据库连接失败”,请检查你的代码中:用户名、密码等信息是否对应无误,另外检查你的驱动是否导入正确。