版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、JDBC常用連接寫法(包括MySQL、Oracle、Sybase、SQLServer、DB2) 2011-01-18 20:11:45| 分類: 編程 JAVA|舉報|字號 訂閱1. MySQL()mm.mysql-2.0.2-bin.jarClass.forName( "org.gjt.mm.mysql.Driver" );cn = DriverManager.getConnection( "jdbc:mysql:/MyDbComputerNameOrIP:3306/myDatabaseName&q
2、uot;, sUsr, sPwd );2. PostgreSQL()pgjdbc2.jarClass.forName( "org.postgresql.Driver" );cn = DriverManager.getConnection( "jdbc:postgresql:/MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd );3. Oracle(Class.forName( "oracle.jdbc.driver.OracleDriver&q
3、uot; );cn = DriverManager.getConnection( "jdbc:oracle:thin:MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );4. Sybase()jconn2.jarClass.forName( "com.sybase.jdbc2.jdbc.SybDriver" );cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );/
4、(Default-Username/Password: "dba"/"sql")5. Microsoft SQLServer()Class.forName( "net.sourceforge.jtds.jdbc.Driver" );cn = DriverManager.getConnection( "jdbc:jtds:sqlserver:/MyDbComputerNameOrIP:1433/master", sUsr, sPwd );6. Microsoft SQLServer()Class.forName( &
5、quot;com.microsoft.jdbc.sqlserver.SQLServerDriver" );cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver:/localhost:1433;databaseName=pubs", sUsr, sPwd );7. ODBCClass.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );Connection cn = DriverManager.getConnection( "jdbc:od
6、bc:" + sDsn, sUsr, sPwd );8.DB2(新添加)Class.forName(".DB2Driver");String url="jdbc:db2:/08:6789/SAMPLE"cn = DriverManager.getConnection( url, sUsr, sPwd );9.Microsoft SQL Server series (6.5, 7.x and 2000) and Sybase 10JDBC Name: jTDSURL: Version: 0.5.1Download
7、URL: 語法:Class.forName("net.sourceforge.jtds.jdbc.Driver ");Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver:/host:port/database","user","password");orConnection con = DriverManager.getConnection("jdbc:jtds:sybase:/host:port/database&
8、quot;,"user","password");10.PostgresqlJDBC Name: PostgreSQL JDBCURL: /Version: 7.3.3 build 110Download URL: /download.html語法:Class.forName("org.postgresql.Driver"); Connection con=DriverManager.getConnecti
9、on("jdbc:postgresql:/host:port/database","user","password");11.IBM AS400主機在用的JDBC語法有裝V4R4以上版本的Client Access Express可以在C:Program FilesIBMClient Accessjt400lib找到 driver 檔案 jt400.zip,并更改擴展名成為 jt400.jar語法:java.sql.DriverManager.registerDriver (new com.ibm.as400.access.AS400
10、JDBCDriver ();Class.forName("com.ibm.as400.access.AS400JDBCConnection");con = DriverManager.getConnection("jdbc:as400:/IP","user","password");12.informixClass.forName("rmix.jdbc.IfxDriver").newInstance(); String url = "jdbc:inf
11、ormix-sqli:/9:1533/testDB:INFORMIXSERVER=myserver; user=testuser;password=testpassword"Lib:jdbcdrv.zip<br><br>Class.forName( "com.sybase.jdbc.SybDriver" )url="jdbc:sybase:Tds::2638/asademo"SybConnection connection= (SybConnection)DriverMa
12、nager.getConnection(url,"dba","sql");13.SAP DBClass.forName ("com.sap.dbtech.jdbc.DriverSapDB");java.sql.Connection connection = java.sql.DriverManager.getConnection ( "jdbc:sapdb:/" + host + "/" + database_name,user_name, password)14.InterBaseString
13、 url = "jdbc:interbase:/localhost/e:/testbed/database/employee.gdb"Class.forName("erclient.Driver");/Driver d = new erclient.Driver (); /* this will also work if you do not want the line above */Connection conn = DriverManager.getConnection( url, "s
14、ysdba", "masterkey" );15.HSqlDBurl: driver: org.hsqldb.jdbcDriver連接方式有4種,分別為:con-str(內存): jdbc:hsqldb.con-str(本地): jdbc:hsqldb:/path/to/the/db/dircon-str(http): jdbc:hsqldb:http:/dbsrvcon-str(hsql): jdbc:hsqldb:hsql:/dbsrv一、直連接數據庫1 Java 連接 OralceClass
15、.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:localhost:1521:orcl" Connection conn= DriverManager.getConnection(url,user,password); 2 Java 連接 MySQLClass.forName("org.gjt.mm.mysql.Driver ").newInstance();String U
16、RL = "jdbc:mysql:/localhost/test"Connection conn= DriverManager.getConnection(url,user,password);3 Java 連接SQLServerClass.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();String URL =” jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=pubs" Connectio
17、n conn= DriverManager.getConnection(url,user,password);4 Java 連接DB2Class.forName(“com.ibm.db2.jdbc.app.DB2Driver ").newInstance();String URL =”jdbc:db2:/localhost:5000/sample" Connection conn= DriverManager.getConnection(url,user,password);5 Java 連接 InfomixClass.forName("rmix.
18、jdbc.IfxDriver ").newInstance();String URL jdbc:informix-sqli:/9:1533/testDB:INFORMIXSERVER=myserverConnection conn= DriverManager.getConnection(url,user,password);6 Java 連接 SyBaseClass.forName("com.sybase.jdbc.SybDriver").newInstance();Properties sysProps = System.getPrope
19、rties(); SysProps.put("user","userid"); SysProps.put("password","user_password"); Connection conn= DriverManager.getConnection(url, SysProps);7 Java連接 PostgreSQLClass.forName("org.postgresql.Driver").newInstance(); String url ="jdbc:postgresql:/
20、localhost/soft" Connection conn= DriverManager.getConnection(url,user,password);二、 tomcat連接數據庫(JNDI連接)1、先在自己應用程序WEB-INF目錄下的web.xml添加以下語句: <resource-ref> <descrtiption>引用資源說明</descrtiption> <res-ref-name>引用資源的JNDI名</res-ref-name
21、> <res-type>引用資源的類名</res-type> <res-auth>管理者(Container)</res-auth><!-Container容器管理 ApplicationWeb應用管理-></resource-ref> 然后在tomcat目錄/conf/server.xml文件里相應的<Context>元素,添加如下子元素:<Resource name
22、="引用資源的JNDI名" auth="Container" type="javax.sql.DataSource" driverClassName="com.pointbase.jdbc.jdbcUniversalDriver(自己的jdbc驅動)" url="jdbc:pointbase:server:/localhost/acme(數據庫連接url)" username="root(用戶名)" password="root(密碼)
23、" maxActive="20(連接池dbcp的相關配置)" maxIdle="10" maxWait="10000"/>2、例子:以下是我的假設的項目ACMEWeb: 在相應程序的web.xml里添加 <web-app .> . <resource-ref> <res-ref-name>jd
24、bc/AcmeDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref></web-app> 然后再server.xml里修改: <Cont
25、ext path="/ACMEWeb" reloadable="true" docBase="E:eclipseprojectACMEWeb" workDir="E:eclipseprojectACMEWebwork"> <Resource name="jdbc/AcmeDB" auth="Container" type="javax.sql.DataSour
26、ce" driverClassName="com.pointbase.jdbc.jdbcUniversalDriver" url="jdbc:pointbase:server:/localhost/acme" username="root" password="root" maxActive="20" maxIdle="10" maxWait="10000"/></Context>
27、 建議你把上面的內容編寫成為一個xml文件,拷到conf/Catalina/<主機名>/文件夾下-<Resource auth="Container(管理者)" name="jdbc/DBDeveloper(引用資源的JNDI名)" type="javax.sql.DataSource(引用資源的類名)"/> <ResourceParams name="jdbc/
28、DBDeveloper(引用資源的JNDI名)"> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>maxIdle</name>
29、 <value>10</value> </parameter> <parameter> <name>maxWait</name> <value>-1</value> </parameter>
30、 <!- SQL Server 2000 -> <parameter><name>username</name><value>sa</value></parameter> <parameter><name>password</name><value&g
31、t;enter</value></parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter> <parameter>
32、; <name>url</name> <value>jdbc:microsoft:sqlserver:/infor:1433;DatabaseName=infordb</value> </parameter> <!- Oracle8i -
33、> <!- <parameter> <name>factory</name> <value>mons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <nam
34、e>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>url</name>
35、; <value>jdbc:oracle:thin:70:1521:infordb</value> </parameter> <parameter> <name>username</name> <value>system</value> </parameter>
36、60; <parameter> <name>password</name> <value>manager</value> </parameter> -> <!- DB2 -> <
37、;!- <parameter> <name>driverClassName</name> <value>COM.DB2Driver</value> </parameter> <parameter> <name>url</name>
38、0; <value>jdbc:db2:/infor/infordb</value> </parameter> <parameter> <name>username</name> <value>db2admin</value> </parameter> <pa
39、rameter> <name>password</name> <value>db2admin</value> </parameter> -> </ResourceParams> -JNDI是J2EE中一個很重要的標準,通常我們是
40、在EJB編程中用到, Tomcat4.0中提供了在JSP和Servelt中直接使用JNDI的方法,下面談一下在Tomcat4.0中配置和使用JNDI的方法 (以通過JNDI連接數據庫為例) 假設使用的數據庫是mysql,實驗例子在TOMCAT_HOME/webapps/DBTest目錄中 A.將mysql的JDBC連接庫mm.mysql-2.0.9-bin.jar放入TOMCAT_HOME/common/lib中 B.配置TOMCAT_HOME/conf/serer.xml文件在<Service>段中加入一個Context: <Context path="/DBTe
41、st" docBase="DBTest" debug="5" reloadable="true" crossContext="true"> </Context> 這是DBTest的根路徑,這是為了在DBTest中使用做準備. C.在上面加入的<Context>段加入 <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
42、/> <ResourceParams name="jdbc/TestDB"> <parameter> <name>factory</name> <value>mons.dbcp.BasicDataSourceFactory</value> </parameter> <!- 最大連接數-> <parameter> <name>maxActive</name> <value>100</value> </param
43、eter> <!- 最大空閑連接 -> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <!- 最大等待連接 -> <parameter> <name>maxWait</name> <value>10000</value> </parameter> <!- MySQL 連接用戶信息 -> <parameter> <
44、name>username</name> <value>test</value> </parameter> <parameter> <name>password</name> <value>test</value> </parameter> <!- MySQl驅動 -> <parameter> <name>driverClassName</name> <value>org.gjt.mm.mysql.Driver
45、</value> </parameter> <!- MySQL連接地址 -> <parameter> <name>url</name> <value>jdbc:mysql:/localhost:3306/test</value> </parameter> </ResourceParams> 我們可以將按照Sample加入,主要修改的是driverClassName,url,和用戶帳號;需要強調的是"jdbc/TestDB"就是JDNI要查找的Name. D
46、. 在JSP或servlet中使用JNDI查找服務 下面是在JSP文件中關于JNDI使用的代碼(文件名記為UserHandleDB.jsp) 需要注意的是JNDI NAME要在前面加上"java:comp/env/" <% page language="java"%> <% page import="java.util.*" %> <% page import="java.sql.*" %> <% page import="javax.sql.*" %&
47、gt; <% page import="javax.naming.*" %> <% String jndi_name="java:comp/env/jdbc/TestDB" String select_user_sql="select userid,name,birthday, email from emp" String colnames="User ID","Name","Birth day","EMail", "useri
48、d","name","birthday","email" Vector userSet=new Vector(); Vector columnSet=new Vector(); for(int i=0;i<colnames0.length;i+) columnSet.add(colnames0i); userSet.add(columnSet); Context ctx = new InitialContext(); if(ctx = null ) throw new Exception("No Contex
49、t"); DataSource ds = (DataSource)ctx.lookup(jndi_name); Connection conn = ds.getConnection(); try PreparedStatement psPreparedStatement=conn.prepareStatement(select_user_sql); ResultSet resultSet = psPreparedStatement.executeQuery(); while(resultSet.next() columnSet=new Vector(); for(int i=0;i&
50、lt;colnames1.length;i+) columnSet.add(resultSet.getString(colnames1i); userSet.add(columnSet); catch(SQLException e) e.printStackTrace(); finally conn.close(); %> E. 引用UserHandleDB.jsp(記為ViewTable.jsp) <html> <head> <title>Test Database </title> <body > <% include
51、 file="UserHandleDB.jsp" %> <table border="1" > <% for(int i=0;i<userSet.size();i+) Vector colSet=(Vector)userSet.get(i); out.print("<tr>"); for(int j=0;j<colSet.size();j+) String col=(String)colSet.get(j); out.print("<td>"+col+&q
52、uot;</td>"); out.print("</tr>"); %> </table> </body> </html> F. 在web.xml中加入 <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/TestDB</res-ref-name> <res-type>javax.sql.DataSource</res-type
53、> <res-auth>Container</res-auth> </resource-ref> 這里的jdbc/TestDb要和C中Resource段的name匹配 G. 觀察結果 首先確定數據庫已經啟動,接著啟動Tomcat,如果Tomcat啟動異常,可能的原因是數據庫的JDBC庫沒有加載 最后打開瀏覽器,訪問 http:/localhost:8080/DBTest/ViewTable.jsp就可以看到結果 三,使用框架自帶連接數據庫 下面是一段Struts-config.xml配置文件中的數據源配置(使用GenericDat
54、aSource數據源實現),你可以更改相應的設置以適合你自己的系統(tǒng)。<!- configuration for GenericDataSource wrapper -><data-sources> <data-source> <set-property
55、60; property="autoCommit" value="false"/> <set-property
56、60; property="description" value="Example Data Source Configuration"/>
57、60; <set-property property="driverClass" value="org.postgresql.Dri
58、ver"/> <set-property property="maxCount"
59、; value="4"/> <set-property property="minCount"
60、; value="2"/> <set-property property="password"
61、; value="mypassword"/> <set-property property="url" &
62、#160; value="jdbc:postgresql:/localhost/mydatabase"/> <set-property &
63、#160; property="user" value="myusername"/> </data-source></data-sources>使用BasicDataSource數據源實現的配置方案如下:&
64、lt;data-sources> <!- configuration for commons BasicDataSource -> <data-source type="mons.dbcp.BasicDataSource">
65、60; <set-property property="driverClassName" value
66、="org.postgresql.Driver" /> <set-property property="url"
67、0; value="jdbc:postgresql:/localhost/mydatabase" /> <set-property
68、; property="username" value="me" />
69、0; <set-property property="password" value=&
70、quot;test" /> <set-property property="maxActive"
71、; value="10" /> <set-property
72、; property="maxWait" value="5000" /> <set-propert
73、y property="defaultAutoCommit" value="false" />
74、0; <set-property property="defaultReadOnly"
75、 value="false" /> <set-property pro
76、perty="validationQuery" value="SELECT COUNT(*) FROM market" /> </data-source></data-sources> 注意,你可以在
77、你的應用系統(tǒng)中定義不止一個數據源,你可以根據需要定義多個數據源,并為它們分別起一個邏輯名(logical name)。這樣做可以給你的應用系統(tǒng)提供更好的安全性和可測量性(scalability),你還可以定義一個專用于測試的數據源。 配置好DataSource以后,你就可以在你的應用系統(tǒng)中使用這些數據源了。下面這段代碼演示了怎樣在Action類的execute方法中通過這些數據源來生成數據庫連接。public ActionForward execute( ActionMappin
78、g mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
79、0; DataSource dataSource; Connection cnn; try
80、 dataSource = getDataSource(request); cnn = dataSource.getConnection(); / 數據連接已經建立了,你可以做你想做的事
81、情了 catch (SQLException e) getServlet().log("處理數據庫連接"
82、, e); finally / 在finally塊里包含這些代碼
83、 / 用以保證連接最后會被關閉 try &
84、#160; cnn.close(); &
85、#160; catch (SQLException e) getServlet().lo
86、g("關閉數據庫連接", e); 注意:如果你使用公共的BasicDataSource,你提供給pingQuery屬性的查詢語句(如果你設置了話)必須至少要能返回一行記錄。例子:SELECT COUNT(*) FROM VALIDTABLE你可以把VALIDTABLE替
87、換成你的數據庫中包含的任何有效的表。使用多個數據源如果你需要在模塊(Module)中使用多于一個的數據源,你可以在配置文件的<data-source>元素里包含一個key屬性。<data-source> <data-source key="A" type="mons.dbcp.BasicDataSource">
88、; 屬性配置略, 同上 </data-source> <data-source key="B" type="mons.dbcp.BasicDataSource"> 屬性配置略, 同上 </data-source><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版小區(qū)商業(yè)街物業(yè)社區(qū)環(huán)境美化服務合同3篇
- 2025版挖掘機產品售后服務與技術升級合同范本3篇
- 二零二五年度農產品展銷中心攤位租賃合同
- 2024項目代建協(xié)議合同
- 二零二五個人權利質押貸款合同范本3篇
- 2025年度旅游行業(yè)納稅擔保服務協(xié)議
- 2025版二手房買賣合同風險評估協(xié)議3篇
- 2025年苗圃租賃合同及苗木種植與科研合作協(xié)議
- 二零二五寵物醫(yī)院獸醫(yī)職務聘任與培訓合同4篇
- 二零二五年度出院患者出院前評估協(xié)議書范本4篇
- 寒潮雨雪應急預案范文(2篇)
- 2024人教新目標(Go for it)八年級英語下冊【第1-10單元】全冊 知識點總結
- 垃圾車駕駛員聘用合同
- 2024年大宗貿易合作共贏協(xié)議書模板
- 變壓器搬遷施工方案
- 單位轉賬個人合同模板
- 八年級語文下冊 成語故事 第十五課 諱疾忌醫(yī) 第六課時 口語交際教案 新教版(漢語)
- 中考語文二輪復習:記敘文閱讀物象的作用(含練習題及答案)
- 2024年1月高考適應性測試“九省聯(lián)考”數學 試題(學生版+解析版)
- (正式版)JBT 11270-2024 立體倉庫組合式鋼結構貨架技術規(guī)范
- EPC項目采購階段質量保證措施
評論
0/150
提交評論