一、环境搭建
1.工具
(1) eclipse
(2) MySQL5.7下载地址
(3) MySQL连接驱动:mysql-connector-java-8.0.13.jar 下载地址
2.加载驱动
(1) 将下载的MySQL连接驱动解压,将其中的mysql-connector-java-8.0.13.jar文件放到MySQL软件所在位置(只是为了方便)
(2) 右键要添加数据库驱动的工程项目 -> Buile Path -> Configure Build Path
然后 Java Build Path -> Libraries -> Add External JARs... -> 选中 mysql-connector-java-8.0.13.jar -> Apply and Close
完整语句:
package com.cyz.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 数据库连接及操作类,包括构造方法(连接数据库操作)
* 执行查询语句方法 executeQuery(), 执行更新操作方法 executeUpdate(),
* 关闭数据库连接方法 close()
*
* @author 1651200111 陈彦志
*/
public class Dao {
// 数据库连接驱动包名
protected static String dbClassName = "com.mysql.cj.jdbc.Driver";
private static Connection con = null;
// 数据库连接路径
String url = "jdbc:mysql://127.0.0.1:3306/bookmanagesystem?"
+ "useUnicode = true & serverTimezone = GMT"
// MySQL在高版本需要指明是否进行SSL连接
+ "& characterEncoding = utf8 & useSSL = false";
String username = "root";
String password = "root";
/**
* 构造方法中创建数据库连接操作
*/
private Dao() {
try {
if (con == null) {
// 加载数据库驱动,创建由此类对象表示的类的新实例
Class.forName(dbClassName).newInstance();
// 通过访问数据库的URL获取数据库连接对象
con = DriverManager.getConnection(url, username, password);
}
else {
return ;
}
}catch (Exception e) {
e.printStackTrace();
}
}
/**
* 执行查询语句方法
* @return
* ResultSet的结果集
*/
private static ResultSet executeQuery(String sql) {
try {
// 如果为空再创建数据库连接,避免程序资源浪费
if (con == null) {
// 初始化Dao对象,调用构造函数,获取数据库连接
new Dao();
}
// 创建Statement对象,生成具有给定类型、并发性和可保存性的ResultSet对象
return con.createStatement(
/*
* 第一个参数允许记录指针向前或向后移动,当ResultSet对象变动记录指针时,会影响记录指针的位置
* 如果一个用户正在浏览记录,其他用户的操作使数据库中的数据发生了变化,这时当前用户所获取的
* 记录集中的数据也会同步发生改变 */
ResultSet.TYPE_SCROLL_SENSITIVE,
// 第二个参数支持对ResultSet的动态更新
ResultSet.CONCUR_UPDATABLE).executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
return null;
} finally {}
}
/**
* 执行更新操作,返回值为1代表成功更新,返回-1代表没有成功
* @return
* int
*/
private static int executeUpdate(String sql) {
try {
if (con == null) {
new Dao();
}
return con.createStatement().executeUpdate(sql);
} catch (SQLException e) {
System.out.println(e.getMessage());
return -1;
} finally {}
}
/**
* 关闭数据库连接
*/
public static void close() {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 确保数据库连接在程序结束后确定被关闭,将数据库连接置空
con = null;
}
}
}