本部分介绍如何使用JDBC 连接 MySQL 数据库。

驱动包下载

Java 连接 MySQL 需要驱动包,最新版下载地址为:http://dev.mysql.com/downloads/connector/j/

解压后得到jar库文件,然后在对应的项目中导入该库文件。

MySQL 8.0 以上版本的数据库连接有所不同:

  • 1、MySQL 8.0 以上版本驱动包版本 mysql-connector-java-8.0.16.jar

  • 2、com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。

  • MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭。

  • 最后还需要设置 CST。

加载驱动与连接数据库方式如下:

Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?useSSL=false&serverTimezone=UTC","root","password");

创建测试数据

创建 websites 数据表

CREATE TABLE `websites` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
`url` varchar(255) NOT NULL DEFAULT '',
`alexa` int(11) NOT NULL DEFAULT '' COMMENT 'Alexa 排名',
`country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

插入一些数据:

INSERT INTO `websites` VALUES ('', 'Google', 'https://www.google.cm/', '', 'USA'), 
('', '淘宝', 'https://www.taobao.com/', '', 'CN'),
('', '菜鸟教程', 'http://www.runoob.com', '', ''),
('', '微博', 'http://weibo.com/', '', 'CN'),
('', 'Facebook', 'https://www.facebook.com/', '', 'USA');

JAVA连接DB

使用了 JDBC 连接 MySQL 数据库。

package com.runoob.test;

import java.sql.*;

public class MySQLDemo {

    // MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB"; // 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&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{
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER); // 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS); // 执行查询
System.out.println(" 实例化Statement对象...");
stmt = conn.createStatement();
String sql;
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.print("ID: " + id);
System.out.print(", 站点名称: " + name);
System.out.print(", 站点 URL: " + url);
System.out.print("\n");
}
// 完成后关闭
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 se2){
}// 什么都不做
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}

最新文章

  1. (2016弱校联盟十一专场10.3) D Parentheses
  2. ESET使用
  3. RestTemplate 使用总结
  4. How Tomcat Works读书笔记之升级架构
  5. only one is important
  6. hibernate性能消耗太狠了。果断减肥引发的连串意外惊喜
  7. C++学习笔记5——类的继承
  8. javaScript的select元素和option的相关操作
  9. Ubuntu 如何重新安裝 Unity ?
  10. cocos2d-x 3.2 2048——第六部分(最后一章)
  11. linux下sed命令对文件执行文本替换
  12. 个人作业3--------个人总结(Alpha版本)
  13. map的本质
  14. hdu1009 FatMouse' Trade---贪心
  15. C语言之概述
  16. python-Djando项目搭建
  17. 查看Andorid应用是32位还是64位
  18. PHP学习 文件访问和写入
  19. SpringBoot扫描包提示找不到mapper的问题
  20. spdk 编译动态库( spdk compiles shared library )

热门文章

  1. php 面试必备:各种缓存技术详解
  2. 韦东山视频第3课第2节_JNI_C调用JAVA_P【学习笔记】
  3. Systemd笔记
  4. Xamarin.FormsShell基础教程(8)Shell的模版构成
  5. SQL优化关于or与in使用
  6. C++ Multimap运用实例
  7. 【翻译】FlinkCEP-Flink的复杂事件处理
  8. setup_module和teardown_module
  9. VM无法正常使用桥接模式获取IP上网
  10. node.js执行shell命令进行服务器重启