JDBC
JDBC指的是Java数据库连接,是一种标准Java应用编程接口,每个数据库厂商需要实现这套接口,我们只需要调用就可以用Java实现连接数据库。
下载驱动包
下载地址为:https://downloads.mysql.com/archives/c-j/
下载后,将其解压。
驱动分为两类:旧版本:mysql-connector-java-5.1.46-bin.jar;
新版本:mysql-connector-java-8.0.11.jar。
不同版本的驱动在连接数据库时有所不同。旧版本的驱动名称为:com.mysql.jdbc.Driver
;新版本的驱动名称为com.mysql.cj.jdbc.Driver
。
驱动配置
(1)在当前项目下新建一个lib文件夹,将驱动jar包放在该目录下
(2)右击驱动jar包,将其加入到路径当中
配置成功后显示:
连接数据库测试
在MySQL数据库中创建一个数据库,并创建一个表用于测试。
代码如下:
package dbtest;
import java.sql.*;
public class MySQLDemo {
//声明JDBC驱动名及数据库URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; //根据不同版本号设置
static final String DB_URL = "jdbc:mysql://localhost:3306/runoob?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=UTF-8";
//声明数据库的用户和密码
static final String USER = "root";
static final String PASSWORD = "123456";
public static void main(String[] args){
Connection conn = null;
Statement stmt = null;
try{
//注册JDBC驱动
Class.forName(JDBC_DRIVER);
//连接数据库
System.out.println("正在连接数据库.....");
conn = DriverManager.getConnection(DB_URL,USER,PASSWORD);
//执行插入
System.out.println("执行插入......");
stmt = conn.createStatement();
//SQL插入语句
String sql = "INSERT INTO websites VALUES ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN')";
stmt.execute(sql); //执行
//执行完后关闭
stmt.close();
conn.close();
}catch(SQLException se){
//处理SQL异常
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(stmt!=null) stmt.close();
if(conn!=null) conn.close();
}catch(SQLException se2){
se2.printStackTrace();
}
}
System.out.println("插入一条数据!");
}
}
遇到的错误:
由于数据库的编码编码不一致,所以当插入中文到数据库时出现了乱码。
可以通过命令 show variables like ‘character%’;查看数据库的编码。
可以通过set character_set_xxxx=utf8命令来修改,但是这种修改在mysql重启之后就不起作用了。
所以修改字符编码推荐取修改mysql的配置文件,windows下是my.ini文件,linux下是my.conf文件,然后重启mysql服务器生效。