亚洲中文精品a∨在线,国产在线精品在线精品,国产亚洲欧美一区,欧美肉肉丝视频一区二区

您當(dāng)前位置: 唯學(xué)網(wǎng) » 數(shù)據(jù)庫(kù)培訓(xùn) » 數(shù)據(jù)庫(kù)培訓(xùn)教育新聞 »

Java連接數(shù)據(jù)庫(kù)(mysql,sqlserver)

Java連接數(shù)據(jù)庫(kù)(mysql,sqlserver)

唯學(xué)網(wǎng) • 教育培訓(xùn)

2016-10-24 17:05

數(shù)據(jù)庫(kù)

唯學(xué)網(wǎng) • 中國(guó)教育電子商務(wù)平臺(tái)

加入收藏

猶記當(dāng)年為了使用java程序連接mysql數(shù)據(jù)庫(kù)話費(fèi)一天時(shí)間,最后發(fā)現(xiàn)是沒有導(dǎo)入外包,如今看來真的發(fā)現(xiàn)自己那時(shí)有點(diǎn)二,也怪我使用的教科書上沒有說明這點(diǎn)(強(qiáng)行甩鍋,哈哈)。今天分享出來,,希望后者不因?yàn)檫@點(diǎn)小問題而大費(fèi)周章。

首先說下數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)在操作系統(tǒng)看來其實(shí)就是一個(gè)服務(wù),mysql在windows服務(wù)中叫mysql服務(wù),sqlserver叫sqlserver服務(wù)(我們?cè)谌蝿?wù)管理器中可以在服務(wù)一項(xiàng)中找到我們裝到自己機(jī)器上的數(shù)據(jù)庫(kù)服務(wù)),我們使用的toad for mysql等叫數(shù)據(jù)庫(kù)管理工具,他們的完成的功能其實(shí)就是通過我們的一些點(diǎn)擊創(chuàng)建數(shù)據(jù)庫(kù)等操作向數(shù)據(jù)庫(kù)服務(wù)發(fā)送sql語句從而完成對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建庫(kù)等操作,所以從這個(gè)方面看來其實(shí)我們自己也可以寫一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)管理工具。

不同的數(shù)據(jù)庫(kù)和java程序連接時(shí)使用的驅(qū)動(dòng)不一樣,這兒驅(qū)動(dòng)不是由java所屬公司提供,而是有java公司提供連接接口,各個(gè)數(shù)據(jù)庫(kù)廠商根據(jù)自己的數(shù)據(jù)庫(kù)特性來寫所需的驅(qū)動(dòng)程序(如com.mysql.jdbc.Driver是mysql連接時(shí)用的驅(qū)動(dòng)由Oracle公司提供,mysql現(xiàn)在屬于oracle了),而java所需完成的操作就是使用連接接口來完成驅(qū)動(dòng)程序的加載以及后期的交互任務(wù)。所以要想使用java程序連接數(shù)據(jù)庫(kù)第一件事就是去相應(yīng)數(shù)據(jù)庫(kù)公司官網(wǎng)下載相應(yīng)的jar包(這個(gè)很重要,當(dāng)時(shí)我就是因?yàn)檫@個(gè)搗鼓了一天)。mysql和sqlserver要用到的jar包我已上傳到我的GitHub上了,可以下載(https://github.com/huangxinyuan650/ConnectDatabase/tree/master/extendpackage)

在有了相應(yīng)的jar包之后剩下的就是比較有序的操作了,除了加載的驅(qū)動(dòng)不一樣剩下的都與數(shù)據(jù)庫(kù)的種類無關(guān)(當(dāng)然在涉及到讀取的細(xì)節(jié)上會(huì)有稍微的區(qū)別在后期會(huì)講到),之后的操作就是

注意在連接前需要把連接數(shù)據(jù)庫(kù)的 jar包提前導(dǎo)入到工程下或者直接放到j(luò)dk的lib下。

1.使用調(diào)用Class類加載驅(qū)動(dòng)(Class.forName(驅(qū)動(dòng)類名路徑);),

2.通過DriverManager接口獲取數(shù)據(jù)庫(kù)連接對(duì)象(Connection conn=DriverManager.getConnection(連接字符串,用戶名,密碼);),

3.至此已經(jīng)建立起了與數(shù)據(jù)庫(kù)的連接,接下來就是獲取對(duì)數(shù)據(jù)庫(kù)操作需要使用到的對(duì)象Statement(Statement state = conn.createStatement();)

4.通過statement對(duì)象完成對(duì)數(shù)據(jù)庫(kù)的操作(Query和Update操作,數(shù)據(jù)庫(kù)的增刪改都是update,查為query),當(dāng)然在完成查詢操作的時(shí)候是需要ResultSet對(duì)象來接收查詢的結(jié)果的(ResultSet re=conn.state.executeQuery(cmd);)

完整的連接類我們可以自己歸納出來,方便以后直接調(diào)用(連接mysql數(shù)據(jù)庫(kù)完整代碼)

package hxy;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

public class ConnectMySQL {

Connection conn = null;

Statement state = null;

public ConnectMySQL(){

try{ ///////鏈接數(shù)據(jù)庫(kù)

Class.forName("com.mysql.jdbc.Driver"); //////加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)

}

catch(ClassNotFoundException e){

System.out.println(e);

}

try{

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/databasedata", "root", "huang650");

//獲取數(shù)據(jù)庫(kù)連接對(duì)象,其中g(shù)etConnection方法中第一個(gè)參數(shù)為連接字符串里面包含數(shù)據(jù)庫(kù)url和端口號(hào),第二個(gè)參數(shù)為數(shù)據(jù)庫(kù)用戶名,第三個(gè)參數(shù)為數(shù)據(jù)庫(kù)密碼

System.out.println("You has connected to Mysql!!!");

state=conn.createStatement(); //////////獲取對(duì)數(shù)據(jù)庫(kù)的操作對(duì)象Statement

}

catch(SQLException e){

System.out.print(e);

}

}

void close(){

try {

conn.close();

}

catch (SQLException e) {

e.printStackTrace();

}

}

}

在獲取到statement對(duì)象后就是通過statement對(duì)象完成對(duì)數(shù)據(jù)庫(kù)的操作,當(dāng)然在使用完后需要關(guān)閉與數(shù)據(jù)庫(kù)的連接。

在連接sqlserver數(shù)據(jù)庫(kù)的時(shí)候只需要把驅(qū)動(dòng)的路徑改為com.microsoft.sqlserver.jdbc.SQLServerDriver,然后端口號(hào)改為1433,連接字符串前面改成jdbc:sqlserver即可。

Oracle數(shù)據(jù)庫(kù)的話好像是有兩種連接方式,但原理都是差不多的,有需求的可以自行百度解決,至于詳細(xì)的對(duì)數(shù)據(jù)庫(kù)的操作可以直接寫傳參數(shù)到數(shù)據(jù)庫(kù)操作對(duì)象的方法中,在之后的隨筆中還會(huì)詳細(xì)介紹。歡迎批評(píng)指正。

以上內(nèi)容是關(guān)于Java連接數(shù)據(jù)庫(kù)(mysql,sqlserver)的介紹,要想了解更多相關(guān)信息、教育培訓(xùn)內(nèi)容,請(qǐng)隨時(shí)關(guān)注唯學(xué)網(wǎng),小編會(huì)第一時(shí)間為大家更新、跟進(jìn)最新信息。

0% (0)
0% (10)
已有條評(píng)論