下載完後,會有個壓縮檔,資料夾是mysql-connector-java-8.0.17,檔案有:

新版本的mysql-connector-java-8.0.17.jar檔案跟之前版本的mysql-connector-java-5.1.48.jar內容不太一樣,所以舊程式會有一些錯誤。這邊先練習mysql-connector-java-5.1.48

回去下載mysql-connector-java-5.1.48:

裡面的mysql-connector-java-5.1.48.jar,又是一個壓縮檔,程式裡看到的com.mysql.jdbc.Driver,就在這裡,所以java要連接mysql需要的檔案,就是mysql-connector-java-5.1.48.jar這個壓縮檔。

那就來開始寫程式連接mysql

1 開啟IntelliJ IDEA

2 open module setting

3 把mysql-connector-java-5.1.48.jar的路徑貼上--> Apply-->OK

4 開始寫程式,練習三個:

一 一般方法

import java.sql.*;

public class jdbc1 {

public static void main(String[] args) {

try {

Class.forName("com.mysql.jdbc.Driver");

System.out.println("Driver loaded!");

} catch (ClassNotFoundException e) {

System.out.println("找不到驅動程式類別");

e.printStackTrace();

}

try {

Connection connection = getConnection();

Statement statement = connection.createStatement();

// 查詢city表

try (ResultSet resultSet = statement.executeQuery("SELECT * FROM city")) {

while (resultSet.next()) {

System.out.println(resultSet.getString("Name") + " " + resultSet.getString(

"CountryCode") + " " + resultSet.getString("District"));

}

}

} catch (SQLException e) {

e.printStackTrace();

}

}

//設定檔

private static Connection getConnection() throws SQLException {

String serverName = "localhost";

String database = "world";

String url = "jdbc:mysql://" + serverName + "/" + database;

// 帳號和密碼

String user = "root";

String password = "root";

return DriverManager.getConnection(url, user, password);

}

}

二 rowset(不太了解rowset是什麼,之後再說)

import javax.sql.RowSet;

import javax.sql.rowset.RowSetFactory;

import javax.sql.rowset.RowSetProvider;

import java.sql.*;

public class jdbc2 {

public static void main(String[] args) throws Exception {

try {

Class.forName("com.mysql.jdbc.Driver");

System.out.println("Driver loaded!");

} catch (ClassNotFoundException e) {

System.out.println("找不到驅動程式類別");

e.printStackTrace();

}

RowSetFactory factory = RowSetProvider.newFactory();

try (RowSet rowSet = factory.createJdbcRowSet()) {

getConnection1(rowSet);

getConnection1(rowSet).setCommand("SELECT * FROM city");

getConnection1(rowSet).execute();

while (rowSet.next()) {

System.out.print(rowSet.getString("Name") + "\t");

System.out.println(rowSet.getString("District"));

}

} catch (SQLException e) {

e.printStackTrace();

}

}

//設定檔

private static RowSet getConnection1(RowSet rowSet) throws SQLException {

String serverName = "localhost";

String database = "world";

String url = "jdbc:mysql://" + serverName + "/" + database;

// 帳號和密碼

String user = "root";

String password = "root";

rowSet.setUrl(url);

rowSet.setUsername(user);

rowSet.setPassword(password);

return rowSet;

}

}

三 prepareStatement可以防止Sql Injection。

import java.sql.*;

public class jdbc3 {

public static void main(String[] args) throws Exception {

try {

Class.forName("com.mysql.jdbc.Driver");

System.out.println("Driver loaded!");

} catch (ClassNotFoundException e) {

System.out.println("找不到驅動程式類別");

e.printStackTrace();

}

Connection connection = getConnection();

PreparedStatement statement = connection.prepareStatement("SELECT * FROM world.country WHERE Continent=?");

statement.setString(1, "Antarctica");

ResultSet myRs = statement.executeQuery();

while (myRs.next()) {

String Name = myRs.getString("Name");

String Region = myRs.getString("Region");

System.out.printf("%s, %s\n", Name, Region);

}

}

//設定檔

private static Connection getConnection() throws SQLException {

String serverName = "localhost";

String database = "world";

String url = "jdbc:mysql://" + serverName + "/" + database;

// 帳號和密碼

String user = "root";

String password = "root";

return DriverManager.getConnection(url, user, password);

}

private static void display(ResultSet myRs) throws SQLException {

while (myRs.next()) {

String Name = myRs.getString("Name");

String Region = myRs.getString("Region");

System.out.printf("%s, %s\n", Name, Region);

}

}

如果要直接用命令提示字元執行程式,要用指令:

1 javac (檔名).java

2 java -cp (class檔案位置路徑,不包含檔名);(mysql-connector-java-5.1.48.jar的所有路徑,包含檔名) (class檔名)

或是先到檔案位置路徑(cd),在用.代表檔案位置路徑-->java -cp .;(mysql-connector-java-5.1.48.jar的所有路徑,包含檔名) (class檔名)

像是:

java -cp .;D:\Desktop\MySQL\mysql-connector-java-5.1.48\mysql-connector-java-5.1.48.jar jdbc1

就會有這樣的結果:

Driver loaded!

Fri May 22 13:44:19 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Kabul AFG Kabol

Qandahar AFG Qandahar

Herat AFG Herat

Mazar-e-Sharif AFG Balkh

Amsterdam NLD Noord-Holland

Rotterdam NLD Zuid-Holland

Haag NLD Zuid-Holland

Utrecht NLD Utrecht

Eindhoven NLD Noord-Brabant

Tilburg NLD Noord-Brabant

Groningen NLD Groningen

Breda NLD Noord-Brabant

其他問題:

mysql opendrowset,java,mysql、jdbc相关推荐

  1. mysql物理删除索引_mysql创建索引,mysql索引优化,mysql索引创建删除

    mysql创建索引,mysql索引优化,mysql索引创建删除 ================================ ©Copyright 蕃薯耀 2020-11-23 http://fa ...

  2. MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串

    MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音 一.MySQL创建函数 1.语法 CREATE FUNCTION fun_name([paramName type , ...

  3. mysql unrecognized_service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误...

    service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误的方法如下: [root@ctohome.com ~]# service ...

  4. 2020 年开发者生态报告:Python超越Java,Go、Kotlin强势崛起

    来源:JetBrains 编辑:白峰.鹏飞.舒婷 本文转自:新智元 近日,JetBrains发布了一份2020年开发者生态报告.该报告是基于19696个开发者的反馈所得到的,目标是完成对2020年开发 ...

  5. maple java,讲解:MACM 401、Maple worksheet、Java,Python、Java,c++SQL|

    讲解:MACM 401.Maple worksheet.Java,Python.Java,c++SQL|MACM 401/MATH 801Assignment 1, Spring 2019.Micha ...

  6. mysql数据库备份与恢复,mysql多实例部署

    mysql数据库备份与恢复,mysql多实例部署 文章目录 mysql数据库备份与恢复,mysql多实例部署 1: 数据库备份 2:冷备份 3:热备份 4:mysql备份工具mysqldump 5:差 ...

  7. 做了6年的Java,mysql配置环境变量mac

    一:打破狭窄的技术视野 ①真实项目对外开发系统性讲解 ②例如电商.教育行业.社区网站等主流互联网场景的商业解决方案讲解 ③针对不同业务场景海量数据或者访问量以及及时响应等所面临的挑战进行对应的瓶颈分析 ...

  8. jdbc mysql demo_JDBC_demo:java连接mysql过程

    1.任何数据库驱动程序都提供对java.sql.Driver接口的驱动类,mysql-connector-java-5.1.39-bin.jar中Driver: packagecom.mysql.jd ...

  9. 做了6年的Java,mysql去重查询方法

    前言: 求职季在即,技巧千万条,硬实力才是关键,听说今年疫情大环境不好,更要好好准备才行.MySQL是Java程序员面向高级的必备技能,很多朋友在面试时经常在这里折戟沉沙,饮恨不已.熟练掌握MySQL ...

最新文章

  1. 青源 LIVE 预告 | McGill李岳Mila唐建团队新作:可迁移、可解释的单细胞RNA测序模型...
  2. Nagios 配置文件介绍
  3. 笔记-项目进度管理-资源平衡和资源平滑
  4. 30个基于jQuery的日期时间选择插件
  5. 在 ActiveReports 中嵌入 Spread 控件
  6. JS左侧竖向滑动菜单
  7. devops 技术_在DevOps时代雇用技术作家
  8. houghcircle函数_Hough Circle 变换
  9. 连接ebay服务器时系统出现问题,客户端从服务器收到SOAP Fault:验证ebay失败
  10. 企业微信发送应用消息的实现
  11. AJAX培训第二讲:使用AJAX框架(下)
  12. 好用用的linux 监控命令
  13. 拥抱认知革命:区块链时代已至,临渊羡鱼不若自我革新
  14. linux超线程问题
  15. UINO优锘:产品实施“八步法”让客户感受DCV实施的专业性
  16. 以游戏玩家的视角开启设计模式
  17. unity通过鼠标滑轮控制物体大小
  18. Android Bluetooth HID实现详解
  19. android 百度全景,“android-panosdk | 百度地图API SDK
  20. Java ibatis批量insert,ibatis批量insert是什么写法?要怎么编写?

热门文章

  1. Linux下Centos7以rpm方式离线安装MySQL5.7教程以及部分报错解决方案
  2. 【报告分享】2020-2021虎嗅洞察报告:聚焦私域流量,洞察增长变局.pdf(附下载链接)...
  3. 红杉中国2021企业数字化年度指南:企业如何制胜数字化浪潮?
  4. 【干货】智能汽车行业“十年十大预测”.pdf(附下载链接)
  5. 【推荐实践】模型化召回在陌陌社交推荐的探索和应用.pdf(附下载链接)
  6. 算法工程师面试备战笔记1_如何处理特征向量的缺失值
  7. ubuntu中使用不同版本cuda(转)
  8. NetAug(网络增强)—Dropout的反面
  9. 白板机器学习笔记 P60-P65 EM算法
  10. ArcSegment对象