首先看下下面一段代碼
java連接數(shù)據(jù)庫(kù)的時(shí)候經(jīng)常會(huì)看到
image.png
其中Class.forName 和 直接new 一個(gè)對(duì)象是有區(qū)別的
這個(gè)以后學(xué)習(xí)設(shè)計(jì)模式的時(shí)候再講
Class.forName是為了降低程序耦合性,提高程序可維護(hù)程度
接下來創(chuàng)建一個(gè)Jdbc包
在下面創(chuàng)建一個(gè)MyDB.java文件
image.png
代碼如下
image.png
運(yùn)行一下
image.png
從結(jié)果看出少了一個(gè)java的com.mysql.jdbc.Driver驅(qū)動(dòng)
那么這個(gè)驅(qū)動(dòng)怎么理解呢
是官方提供的一種數(shù)據(jù)傳輸?shù)膮f(xié)議杜窄,一般都由官方提供
為什么java連接數(shù)據(jù)庫(kù)代碼必須向上面那樣寫呢肠骆?
下面需要簡(jiǎn)單了解一下java的規(guī)范
image.png
首選了解一下JDBC規(guī)范
image.png
接下來安裝一下這個(gè)驅(qū)動(dòng)
image.png
演示下maven的方式加入驅(qū)動(dòng)
https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38
在pom文件里面加入如下代碼
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
保存會(huì)自動(dòng)下載
下載成功后目錄中出現(xiàn)如下
image.png
接下來看下MyDB里面如何連接數(shù)據(jù)庫(kù)
image.png
運(yùn)行結(jié)果
image.png
可以發(fā)現(xiàn)缺少驅(qū)動(dòng)那個(gè)錯(cuò)誤不見了 說明我們連接上了 只不過沒有對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作
接下來我們輸出一些內(nèi)容
MyDB代碼如下
image.png
數(shù)據(jù)庫(kù)如下
image.png
運(yùn)行結(jié)果
image.png
以上是我們不使用數(shù)據(jù)庫(kù)框架寫的最簡(jiǎn)單的查詢代碼
在開發(fā)時(shí)候如果不想使用框架操作需要改造一下上面代碼
使用PrepareStatement代替Statement
image.png
運(yùn)行結(jié)果
image.png
取出了id為1的值
下面修改下數(shù)據(jù)庫(kù)表的結(jié)構(gòu)
image.png
加了一個(gè)字段date
下面演示下如何取出date類型數(shù)據(jù)
image.png
運(yùn)行結(jié)果
image.png