1. 程式人生 > >【Java學習筆記】54:CentOS下安裝MySQL的JDBC驅動並嘗試連線

【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包的路徑暫時就不要動了。

新建一個工程,右鍵BuildPathAdd 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學習筆記54CentOS安裝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學習筆記40Pandas中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學習筆記44Series.apply()列資料批量處理,Series.str.extract()正則匹配

學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 Series.apply()列資料批量處理 先將該列取出,形成Series物件,再呼叫apply()方法傳入用於處理的函式,這個過程就像map()一樣。 import pandas as pd # 各

python學習筆記43Pandas時序資料處理

學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 Python中時間的一些常用操作 import time # 從格林威治時間到現在,單位秒 print('系統時間戳:', time.time()) print('本地時間按格式轉成str:', tim