【Java學習筆記】54:CentOS下安裝MySQL的JDBC驅動並嘗試連線
準備工作
開啟MySQL服務
[root@hostlzh lzh]# mysqld_safe &
[1] 21768
[root@hostlzh lzh]# 180209 12:55:11 mysqld_safe Logging to '/var/log/mysqld.log'.
180209 12:55:11 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
新建資料庫
注意資料庫名,表名,欄位名等如果要加引號,在MySQL里加的是反引號。
mysql> CREATE DATABASE IF NOT EXISTS `testJDBC` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
| testJDBC |
+--------------------+
4 rows in set (0.02 sec)
新建資料表
mysql> USE testJDBC;
Database changed
mysql> CREATE TABLE `MyUsr`
-> (
-> `id` SMALLINT NOT NULL,
-> `name` CHAR(4) NOT NULL,
-> `age` SMALLINT,
-> PRIMARY KEY(`id`)
-> );
Query OK, 0 rows affected (0.10 sec)
mysql> SHOW TABLES;
+--------------------+
| Tables_in_testJDBC |
+--------------------+
| MyUsr |
+--------------------+
1 row in set (0.00 sec)
插入一些資料
mysql> INSERT INTO `MyUsr`
-> (id,name,age)
-> VALUES
-> (1,'lzh',20),
-> (2,'pikachu',4),
-> (3,'aaa',19);
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 1
確認一下
mysql> SELECT * FROM MyUsr;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | lzh | 20 |
| 2 | pika | 4 |
| 3 | aaa | 19 |
+----+------+------+
3 rows in set (0.00 sec)
安裝MySQL驅動
教材上用的windows系統,把驅動放在jdk的lib目錄下的擴充套件目錄(ext目錄)之下,但是我的linux下的jdk沒有找到ext目錄。
[[email protected] jdk1.8.0_11]# ls
bin jre release
COPYRIGHT lib src.zip
db LICENSE THIRDPARTYLICENSEREADME-JAVAFX.txt
include man THIRDPARTYLICENSEREADME.txt
javafx-src.zip README.html
[[email protected] jdk1.8.0_11]# ls ./lib
ant-javafx.jar ir.idl missioncontrol visualvm
ct.sym javafx-mx.jar orb.idl
dt.jar jconsole.jar sa-jdi.jar
i386 jexec tools.jar
總之先下載下來,/connector/j/
意思就是給JDBC用的驅動,我選擇了Platform Independent(平臺獨立的)tar包。
把下載好的.tar.gz包解壓,在資料夾裡就能看到jar包,我的是mysql-connector-java-5.1.45-bin.jar
,這個jar包的路徑暫時就不要動了。
新建一個工程,右鍵
,BuildPath
,Add External Archives...
,選擇這個jar包確定
,這個jar包就被引用到這個工程裡了,驅動就可以用了。
這時工程中也多了一個Referenced Libraries目錄:
還有一種方式是去修改CLASSPATH,我怕會影響我的linux系統使用的老版本java環境,暫時還是用前面這種保守的方式吧。
嘗試連線
暫時先不去深究,能連上才能用啊。
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
try {
// 要求JVM查詢並載入指定的類
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 宣告一個sql連線物件
java.sql.Connection con = null;
String uri = "jdbc:mysql://127.0.0.1:3306/testJDBC? useSSL=true";
String user = "root";
String password = "3838438";
try {
// 和指定的資料庫建立連線
con = DriverManager.getConnection(uri, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
try {
// 用Statement宣告一個SQL語句物件,用createStatement()建立之
java.sql.Statement sql = con.createStatement();
// 對資料庫進行查詢,返回ResultSet物件
ResultSet rs = sql.executeQuery("SELECT * FROM MyUsr");
// 一行一行檢視查詢結果
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString(2);
int age = rs.getInt(3);
System.out.println(id + " " + name + " " + age);
}
} catch (SQLException e) {
e.printStackTrace();
}
// 最後關閉連線
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
輸出
1 lzh 20
2 pika 4
3 aaa 19
這是相當於把資料庫和後端查詢資料庫的程式都放在一臺主機上,所以不用考慮網路問題,而且地址只要寫本地環回地址127.0.0.1就可以了。
相關推薦
【Java學習筆記】54:CentOS下安裝MySQL的JDBC驅動並嘗試連線
準備工作 開啟MySQL服務 [root@hostlzh lzh]# mysqld_safe & [1] 21768 [root@hostlzh lzh]# 180209 12:55:11 mysqld_safe Logging to '/var
【Java學習筆記】65:認識Filter(過濾器),FilterChain(過濾鏈)及其實現
Filter和Servlet、Listener一同作為Java web開發的三大元件。runoob中將Filter歸為Servlet,實際上Filter元件和Servlet元件是兩回事,但Filter介面等確實是在javax.servlet.*中,大概可以認為它
【Java學習筆記】45:優先順序佇列PriorityQueue和比較器Comparator
模擬程序排程時的優先數法和簡單時間片輪轉法,前者可以為程序設定以優先數PRIORITY為優先順序,為了更好地併發,每次獲得處理機後優先數減少3而重新選取。 在簡單輪轉法中則僅僅是一個普通佇列,按照FIFO的方式出隊獲得處理機。 如果要使用比較器Compara
【Java學習筆記】66:認識Java中的Reflection(反射)機制,獲取類的屬性和方法
反射部分一直欠著,現在學框架和Servlet必須要學一下了。最近學習Struts2框架和Servlet時候,很多地方直接給出類名就可以去使用了,如在web.xml中配置Filter時: <filter> <filter-name&
【Java學習筆記】10:三種系統內建的Annotation
Annotation是Java的一種特殊的註釋語法。 內建的三個Annotation: @Override、@Deprecated、@SuppressWarnings @Override表示進行正確的覆寫操作 package day10; class Person {
【java學習筆記】踩坑記錄,異常:javax.el.PropertyNotFoundException: Property [XXX] not found on type [XXX.XXX.XXX.XXX]
練習JavaWeb專案時,報錯javax.el.PropertyNotFoundException,原因是EL表示式裡面的屬性和pojo裡面的屬性名字沒有對上,範了個低階錯誤。 jsp中: <li>歡迎您,${loginUser.username}!</li> pojo
【JAVAEE學習筆記】hibernate02:實體規則、對象狀態、緩存、事務、批量查詢和實現客戶列表顯示
使用 ins tro trace ges create 綁定 criteria 命名 一、hibernate中的實體規則 實體類創建的註意事項 1.持久化類提供無參數構造 2.成員變量私有,提供共有get/set方法訪問.需提供屬性 3.持久化類中的屬性,應盡量使用包
【JAVAEE學習筆記】hibernate03:多表操作,級聯練習:添加聯系人
row tac 默認值 rac user except pro intra com 一、一對多|多對一 1、關系表達 表中的表達 實體中的表達 orm元數據中表達 一對多 <!-- 集合,一對多關系,在配置文件中配置 -
【JAVAEE學習筆記】hibernate04:查詢種類、HQL、Criteria、查詢優化和練習為客戶列表增加查詢條件
沒有 arrays getpara tex response 寫法 sum exceptio 提高 一、查詢種類 1.oid查詢-get 2.對象屬性導航查詢 3.HQL 4.Criteria 5.原生SQL 二、查詢-HQL語法 //學習HQL語法 public
【K8S學習筆記】Part3:同一Pod中多個容器間使用共享卷進行通信
ash source net def exe tput stat policy container 本文將展示如何使用共享卷(Volume)來實現相同Pod中的兩個容器間通信。 註意:本文針對K8S的版本號為v1.9,其他版本可能會有少許不同。 0x00 準備工作 需要有一
【python學習筆記】37:認識Scrapy爬蟲,爬取滬深A股資訊
學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 認識Scrapy爬蟲 安裝 書上說在pip安裝會有問題,直接在Anaconda裡安裝。 建立Scrapy專案 PyCharm裡沒有直接的建立入口,在命令列建立(從Anaconda安裝後似乎自動就
【python學習筆記】36:抓取去哪兒網的旅遊產品資料
學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 書上這章開篇就說了儘量找JSON格式的資料,比較方便解析(在python裡直接轉換成字典),去哪兒網PC端返回的不是JSON資料,這裡抓取的是它的移動端的資料。 如果是就散落在網頁上,我覺得就像上篇學習的那
【python學習筆記】35:爬蟲基礎和相關產品API(和風天氣)使用例項
學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 在網站URL後面跟robots.txt一般就可以看到網站允許和禁止爬取的資源。 GET請求獲取響應內容 最基本的爬蟲。 import requests ''' 中國旅遊網 /www.cntour.
【python學習筆記】41:認識Pandas中的資料變形
學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 Pandas資料變形 關於stack()和unstack()見這裡和這裡。 import pandas as pd import numpy as np # 讀取杭州天氣檔案 df = pd.read
【python學習筆記】40:Pandas中DataFrame的分組/分割/合併
學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 DataFrame分組操作 注意分組後得到的就是Series物件了,而不再是DataFrame物件。 import pandas as pd # 還是讀取這份檔案 df = pd.read_csv("
【python學習筆記】39:認識SQLAlchemy,簡單操作Pandas中的DataFrame
學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 認識SQLAlchemy SQLAlchemy是Python的ORM工具,就像Java有Hibernate一樣,實現關係型資料庫中的記錄與Python自定義Class的物件的轉化,實現操作之間的對映。
【python學習筆記】38:使用Selenium抓取去哪兒網動態頁面
學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 在去哪兒網PC端自由行頁面,使用者需要輸入出發地和目的地,點選開始定製,然後就可以看到一系列相關的旅遊產品。在這個旅遊產品頁換頁不會改變URL,而是重新載入,這時頁碼沒有體現在URL中,這種動態頁面用傳統的爬蟲
【python學習筆記】45:認識Matplotlib和pyecharts資料視覺化
學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 Matplotlib資料視覺化 資料準備 import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv("E:/Data/p
【python學習筆記】44:Series.apply()列資料批量處理,Series.str.extract()正則匹配
學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 Series.apply()列資料批量處理 先將該列取出,形成Series物件,再呼叫apply()方法傳入用於處理的函式,這個過程就像map()一樣。 import pandas as pd # 各
【python學習筆記】43:Pandas時序資料處理
學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 Python中時間的一些常用操作 import time # 從格林威治時間到現在,單位秒 print('系統時間戳:', time.time()) print('本地時間按格式轉成str:', tim