You are on page 1of 5

Ci t MySQL

ng ngy: 03:25 27-04-2008 Th mc: Chung Ci t MySQL MySQL l h qun tr c s d liu m ngun m ph bin nht th gii v c cc nh pht trin rt a chung trong qu trnh pht trin ng dng. MySQL min ph hon ton nn bn c th ti v MySQL t trang ch www.mysql.com. MySQL c nhiu phin bn cho cc h iu hnh khc nhau: phin bn Win32 cho cc h iu hnh dng Windows, Linux, Mac OSX Ci t Connector/J - JDBC Driver ca MySQL JDBC Driver ca MySQL c th ly v a ch http://www.mysql.com/downloads/api-jdbc.html . File bn ti v s l mt file .zip hoc .gz. Sau khi gii nn bn s c 1 file c tn tng t nh sau: mysql-connectorjava- 3.0.9-stable-bin.jar. Hy chp file ny vo th mc %JAVA_HOME%/jre/lib/ext trn h thng ca bn. V d C:\j2sdk1.4.2\jre\lib\ext. Bn cng cn a ng dn n file JAR ny vo bin mi trng MYSQL_DRIVER ca bn.

Sau khi bn t ng dn n Connector/J vo bin mi trng MYSQL_DRIVER th bn c th yn tm l JDBC driver ca MySQL c ci t xong. Kim tra xem Connector/J hot ng cha? Chng ta to ra mt chng trnh Java nh kim tra xem chng ta ci t ng JDBC driver ca MySQL cha. Nu chng trnh chy thnh cng th ngha l trnh iu khin JDBC sn sng cho cc tc v phc tp hn. Bn hy to ra mt file Connect.java vi on m sau: M: Nhn vo bi en tt c
import java.sql.*; public class Connect{ public static void main (String[] args){ Connection conn = null; try{ String userName = root; String password = localhost; String url = jdbc:mysql://127.0.0.1:3306/mysql; Class.forName (com.mysql.jdbc.Driver).newInstance ();

conn = DriverManager.getConnection (url,userName, password); System.out.println (Da ket noi CSDL); } catch (Exception e){ System.err.println (KHONG KET NOI DUOC); } finally{ if (conn != null){ try{ conn.close (); System.out.println (Dong ket noi); } catch (Exception e) { /* bo qua loi luc dong csdl */ } } } } }

Trc ht bn hy bin dch file ny ra m bytecode nhng chy n, bn cn ch m bo MySQL ang chy trn my tnh c nhn ca bn. Nu bn ci t MySQL n ch chy khi bn gi th bn hy bt MySQL vi cu lnh mysqld-nt console hay nu bn ci chng trnh qun tr c s d liu ny di hnh thc mt dch v th bn c th g net start mysql trong shell Run trong Windows. on m trn s dng cp tn ngi s dng v mt khu l root/localhost vi c s d liu l mysql. Nu kt ni thnh cng, bn s thy mt mn hnh nh di y xut hin.

Chng trnh trn s dng TCP/IP kt ni vo h c s d liu MySQL. * Phn tch kt ni v s dng mt c s d liu t Java applet, servlet hay ng dng Java th chng ta cn thc hin qua 3 bc: 1. ng k/Np (cc) driver 2. Thit lp kt ni n c s d liu 3. Gi cu lnh SQL v x l kt qu thu v Bc u tin to ra mt kt ni gia ng dng Java v mt c s d liu l ng k mt JDBC driver vi my o Java (JVM) m ng dng Java chy trn . Vi c ch kt ni truyn thng (s ni trong phn c ch kt ni DataSource, tho lun sau), th kt ni v tt c cc hnh thc giao tip vi c s d liu u do i tng DriverManager kim sot. thit lp mt ng kt ni, mt JDBC driver thch hp dng cho c s d liu mc tiu phi c ng k vi i tng DriverManager.

c t JDBC ch ra rng cc JDBC driver c xem l s t ng k vi i tng DriverManager mt cch t ng khi chng c np vo mt JVM. V d on m sau s dng mt b khi to tnh ln u tin to ra mt mu ca JDBC driver mang tn persistentjava v sau ng k n vi DriverManager. M: Nhn vo bi en tt c
static { java.sql.DriverManager.registerDriver(new com.persistentjava.JdbcDriver()) ; }

Vic ng k mt driver n gin ch l vic np lp driver vo JVM. Chng ta c th lm iu bng mt s cch khc nhau. Mt trong nhng cch l thng qua ClassLoader Class.forName(com.persistentjava.JdbcDriver) ;. Mt cch khc, khng ph bin lm l dng thuc tnh h thng jdbc.drivers. Chng ta c th dng cch ny theo 3 hnh thc khc nhau: T dng lnh:java -Djdb.drivers =com.persistentjava.JdbcDriver Connect * Bn trong ng dng java: System.setProperty(jdbc.drivers, com.persistentjava.JdbcDriver) ; * Bng cch thit lp thuc tnh jdbc.drivers vo file thuc tnh h thng, nhng nhn chung l li ty thuc vo h thng Bng phng php tch cc driver bng mt du phy, chng ta c th ng k nhiu driver thng qua k thut thuc tnh h thng trn. Mt trong cc li ch ca k thut ny l ch cc driver c th a vo v ra khi JVM m khng cn thay i m (hoc ch cn thay i mc ti thiu). Nu ng k nhiu driver, th t u tin ca chng nh sau: 1) Cc JDBC driver do thuc tnh jdbc.drivers ng k lc khi to JVM, v 2)Cc JDBC driver c np ng. Do thuc tnh jdbc. drivers ch c kim tra mt ln vo ln gi u tin ca phng thc DriverManager(), nn quan trng l bn phi m bo rng tt c cc driver c ng k ng trc khi thit lp kt ni. Ch l c mt s JVMs khng tun th c t JVM v kt qu l cc b khi to tnh khng phi lc no cng lm vic thng nht nh mong mun. iu ny dn ti vic c nhiu cch ng k mt JDBC driver: M: Nhn vo bi en tt c
Class.forName(com.persistentjava. JdbcDriver).newInstance() ; DriverManager.registerDriver(new com.persistentjava.JdbcDriver()) ;

Hai cch trn thng hot ng tt trong tt c cc JVM nn bn c th s dng chng mt cch thoi mi. Nhng iu khc bit l Class.forName() c th chn bt mt ClassNotFoundException, nn bn cn bao m ng k driver vo mt b x l li ngoi l thch hp. V d: M: Nhn vo bi en tt c

try{ Class.forName (com.mysql.jdbc.Driver).newInstance (); } catch (Exception e){ System.err.println (KHONG KET NOI DUOC); }

Cc sch v MySQL khuyn co bn nn dng cch trn. Phng thc Class.forname() nhn mt chui lm i s. Trong trng hp bn dng JDBC Driver ca hng MySQL AB cho MySQL bn 4.0 tr ln th chui l: M: Nhn vo bi en tt c
com.mysql.jdbc.Driver

Cn ch l bn khng cn phi to ra mt mu ca driver v ng k n vi DriverManager v vic gi Class.forName() s lm cho bn iu mt cch t ng. Bc tip theo sau khi bn ng k JDBC Driver l thc hin kt ni. Ton b cng on ny c minh ha qua dng m sau: M: Nhn vo bi en tt c
Connection conn = DriverManager.getConnection(url, myLogin, myPassword); Cch khc: Connection conn; conn = DriverManager.getConnection(url, myLogin, myPassword);

on m trn rt tng minh. Phng thc getConnection() c gi thc hin mt kt ni thc s n phn mm my ch c s d liu. Lp DriverManager to ra mt i tng Connection khi bn gi phng thc getConnection(). Phng thc ny nhn mt chui URL lm i s. V d, vi MySQL th chui c th l: jdbc:mysql://127.0.0.1:3306/mysql hoc jdbc:mysql://localhost/mydatabase Chui ny tun theo quy tc sau y: jdbc:<subprotocol>:<subname> trong : <subprotocol> thng l driver hoc c ch kt ni c s d liu <subname> ph thuc vo <subprotocol>, c th thay i theo cc nh cung cp driver m n c th l mysql, db2, oracle hay odbc. <subname> c th cha a ch Internet cho cc c s d liu xa. Phn ny c th gm c tn host, m s cng, v tn ca h thng c s d liu. Ch l trong mt s sch khc, cng thc trn cn trnh by di dng: jdbc:subprotocol:database locator tuy v bn cht th khng c g thay i. Nu mt trong cc driver m bn cung cp nhn ra a ch JDBC URL m bn cung cp cho phng thc DriverManager.getConnection, th driver s thit lp ng kt ni n MySQL xc nh trong JDBC URL. Lp DriverManager s qun l tt c cc chi tit ca vic thit lp ng kt ni bn di nn bn khng cn phi quan tm g thm.

ng kt ni do phng thc DriverManager.getConnection tr v l mt ng kt ni m m bn c th s dng thng qua cc lnh JDBC nhm gi cc lnh SQL ti MySQL. y chng ta c i tng conn cha kt ni m v chng ta s s dng chng thc hin cc v d thao tc trn MySQL. Ngun trch dn (0)

You might also like