--- title: JAVA程式筆記-JDBC-連接的connect tags: JAVA程式筆記 --- EL(表達式語言) http://akuma1.pixnet.net/blog/post/222233581-%E8%AA%B2%E7%A8%8B%E5%9F%BA%E7%A4%8E%E8%A8%93%E7%B7%B4%EF%BC%8D%EF%BC%8D%2803%29-jsp%E3%80%81el%E3%80%81jstl 長這樣->${表達式語言} 可以用.和[]兩種運算符來取數據 取值是有順序的:頁面(pageScope)->請求(requestScope)->會話(sessionScope)->應用程序(applicationScope) 自動轉變類型:自動轉變成符點數/整數 EL運算符:div是除~的意思 --- JSTL(聽說現在沒再用了?) 安裝需要下載API+IMPL --- JDBC:JAVA+開發安裝+數據庫 我之前原本安裝的MYSQL(COMMUNITY版)發現按照課本的程式碼(感覺是被綁死在一個迴圈)居然不能成功連,我在想應該是安裝設定時勾選的選項不同,而且我也沒有進入cmd+環境變量去設定,所以決定砍掉重裝一次好了~ --- 再來複習一次MYSQL的操作+語法(用Mysql workbench 來練習):https://hackmd.io/@sSA6NW2ZToCxgSaVETWNCg/HyGIOu-oL --- 雖然說有人說ORCAL的SQL是要錢的,但是聽說練習不用,來練練: https://hackmd.io/@sSA6NW2ZToCxgSaVETWNCg/BJH_dOWi8 --- 因為其實cmd的指令是很實用的~(有WORKBENCH-也是可以使用cmd操作) 1.下載網址(現在應該大家都是64bit了.32之後聽說也不更新)-https://dev.mysql.com/downloads/mysql/ 參考~https://clay-atlas.com/blog/2019/11/16/mysql-mysqlworkbench-tutorial-download-install-steps/ 2.下載MySQL Connectors(這裡是驅動程序)-因為我們是學JAVA,所以下載JDBC Driver for MySQL (Connector/J)https://dev.mysql.com/downloads/connector/j/ 3.用CMD使用MYSQL: https://hackmd.io/@sSA6NW2ZToCxgSaVETWNCg/SyO4L-IsU --- 正式來練習JDBC~ 要注意很雷的地方: 1.mysql要打好~不然到JDBC錯誤也無法發現 2.要連接的connect 也會因為版本號不同而要打的JDBC語法也不同  聽說不推薦最新的~QQ 下載處:https://dev.mysql.com/downloads/connector/j/  會自動跳轉到要登入~登入不用錢 發現居然不是.EXE檔  原來~下載jar檔就對了(在一些課本/影片中看到是EXE,但是導到INTELLIJ就是.JAR檔),java中需要第3方庫事實上就是jar 檔,然後將jar檔配置到CLASSSPATH中。 --- 實作上是選JAVA就好(還不會WEB也可以練)~不用再選JAVAEE  要記得V  命名  長好的應該要長這樣~一定要有PACKAGE不然會不能RUN 然後//這個是聽說要刪,不然會長出奇怪的東西  然後將jar檔配置到CLASSSPATH中: 1.BUILD一個OUT資料夾(找不到MAIN主類)  結果~長出OUT  2.先建一個LIB,然後就可以放入jar檔配置到CLASSSPATH中  按ENTER才會建立  結果~  選到mysql-connector-java-8.0.20.jar複製到LIB貼上  然後按refactoring(重構)的定義就是:「在不改變軟體的外在行為之下,改善既有軟體的內部設計」。=OK  按右鍵到最下面的  出現~按OK  檢查看看自己的LIB裡面有甚麼  有了~  因為版本號不同而要打的JDBC語法也不同的~ 8.0版的是com.mysql.cj.jdbc.Driver 5.1版的是com.mysql.jdbc.Driver(目前的課本好像就是這個) 讓他自己產生TRY/CATCH(其實要練打字也可以就是不要打錯)  沒錯就是找到connect~  語法:https://gist.github.com/jzs2home/de589322640b07187bb4bdb7d31fd6b1 --- 1.建立數據庫連接 使用不同的數據庫就會有不同的驅動程序和URL https://www.cnblogs.com/yangming1996/p/6666217.html --- MYSQL 8.0版的是com.mysql.cj.jdbc.Driver 5.1版的是com.mysql.jdbc.Driver(目前的課本好像就是這個) 獲得數據庫連接 --- 裝載Oracle驅動:Class.forName("oracle.jdbc.driver.OracleDriver"); 裝載MS SqlServer驅動:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); --- URL,他的格式是:jdbc:<子協議>:<子名稱>,這種格式基本上也是被每個資料庫提供商定死了,你只需要選擇他們並增加自己的參數即可。常見的三個URL格式: 對於 Oracle 資料庫連接,採用如下形式: jdbc:oracle:thin:@localhost:1521:數據庫名稱 對於 SQLServer 資料庫連接,採用如下形式: jdbc:microsoft:sqlserver//localhost:1433; DatabaseName=數據庫名稱 對於 MYSQL 資料庫連接,採用如下形式: jdbc:mysql://localhost:3306/數據庫名稱 5.1版的String url="jdbc:mysql://localhost:3306/mydb?verifyServerCertificate=false&useSSL=false"; 用cmd看看自己的數據庫有哪些create database mydb;有創建一個mydb數據庫  裡面再創建一個user表 create table user( -> name varchar(20) not null, -> userid int primary key);  ---  這裡使用 MYSQL 資料庫連接~這裡也是一個雷~發現不同版本的後面居然不同~ 我最後是用tring url="jdbc:mysql://localhost:3306/MyDB?serverTimezone=UTC";來解決的,居然跟時區有關@@ 故事是這樣的~ 我一開始打的程式碼: 用5.0試試結果X因為我的是8.0之後的所以不行  一直以為USE PASSWORD的YES是密碼正確,結果是密碼錯誤(因為大小寫不同)  我還去看了INTELLIJ連MYSQL的方法: https://juejin.im/post/5e0d3b196fb9a048526aa42e  努力的讓魚可以連上  結果:jdbc:mysql://localhost:3306/MyDB?serverTimezone=UTC 居然連資料庫都有駱駝式命名?打mydb是也可以只是會有毛毛蟲線  程式碼: https://gist.github.com/jzs2home/799061b80fdd455297323a7ba4f60722 --- 實作上是選JAVA就WEB也可以練~(我是用最新2020.1的INTELLIJ的畫面)  覺得WEB的命名選擇也是一個很容易迷路的地方->按FINISH  選擇NEW WINDOWS 開始  一個新的WEB是長這樣  --- 再來就是為了測試而新增的SERVLET  覺得SERVLET的命名選擇也是一個很容易迷路的地方~要記得V  產生的SERVLET反紅就是要導入~LIB=下載JAVAEE的包  完成後就不會反紅了~  選到mysql-connector-java-8.0.20.jar複製到WEB裡面的WEB-INF下創建的資料夾LIB(要自己加)貼上  才後再加入ADD  按OK  我目前TOMCAT的設定  按FIX到  按OK  看看自己現在連的狀況~太多就按STOP,才不會顯示被占用  按.jsp檔來看成果  語法: https://gist.github.com/jzs2home/1c79dabca4a27c1fa43a0ec9611e91fb --- 3.發生錯誤要看是自己的connect錯誤還是mysql還是JDBC語法錯誤 做好連線之後當然就是JDBC-增刪改查: https://hackmd.io/@sSA6NW2ZToCxgSaVETWNCg/HJaAptfnU
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.