--- 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up