mysql 数据库连接
这里主要是使用 JDBC 连接mysql 数据库
驱动包下载地址:http://dev.mysql.com/downloads/connector/j/
请注意驱动包的版本要与mysql的版本一致。
在mysql8.0以上的版本,数据库连接会存在不同。
使用
需要将我们下载的 mysql 驱动包导入到项目中,且mysql已开启。
加载驱动和连接数据库方式如下:
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC","root","password");
需要注意的是:
- 8.0之前的版本,加载驱动为
com.mysql.jdbc.Driver
,8.0之后改为com.mysql.cj.jdbc.Driver
- 8.0以上的版本不需要建立SSL连接,需要显示关闭。
- allowPublicKeyRetrieval = true 允许客户端从服务器获取公钥
数据库连接示例
以8.0数据库为例,假设数据库已构建完毕
// MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
// 数据库的用户名与密码,需要根据自己的设置
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args){
Connection conn = null;
Statement stmt = null;
try{
// 注册驱动
Class.forName(JDBC_DRIVER);
// 打开链接
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
stmt = conn.createStatement();
String sql = " SELECT id,name,url FROM websites ";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String url = rs.getString("url");
System.out.println(id+" "+name+" "+url);
}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName() 错误,注册错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se){
se.printStackTrace();
}
try{
if(conn!=null) conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}