KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > jdbc > xa > MICROSOFTXADataSource


1 /* JFox, the OpenSource J2EE Application Server
2  *
3  * Distributable under GNU LGPL license by gun.org
4  * more details please visit http://www.huihoo.org/jfox
5  */

6
7 package org.jfox.jdbc.xa;
8
9 import javax.sql.XADataSource JavaDoc;
10
11 import com.microsoft.jdbcx.sqlserver.SQLServerDataSource;
12
13 /**
14  * 支持 SQL Server JDBC 驱动
15  *
16  * @author <a HREF="mailto:young_yy@hotmail.com">Young Yang</a>
17  */

18
19 public class MICROSOFTXADataSource extends AbstractXADataSource {
20
21     public MICROSOFTXADataSource(String JavaDoc url) {
22         super(url);
23     }
24
25     public XADataSource JavaDoc init(String JavaDoc url) {
26         // url example: jdbc:microsoft:sqlserver://localhost:1433;user=x;password=y;databaseName=db;
27
try {
28             SQLServerDataSource sqlXaDS = new SQLServerDataSource();
29
30             URLProperties urlProp = parseSqlURL(url);
31
32             if(urlProp.containsKey("serverName")) {
33                 sqlXaDS.setServerName(urlProp.getProperty("serverName"));
34             }
35
36             if(urlProp.containsKey("portNumber")) {
37                 sqlXaDS.setPortNumber(Integer.parseInt(urlProp.getProperty("portNumber")));
38             }
39
40             if(urlProp.containsKey("databaseName")) {
41                 sqlXaDS.setDatabaseName(urlProp.getProperty("databaseName"));
42             }
43
44             if(urlProp.containsKey("embedded")) {
45                 sqlXaDS.setEmbedded(new Boolean JavaDoc(urlProp.getProperty("embedded")).booleanValue());
46             }
47
48             if(urlProp.containsKey("batchPerformanceWorkaround")) {
49                 sqlXaDS.setBatchPerformanceWorkaround(new Boolean JavaDoc(urlProp.getProperty("portNumber")).booleanValue());
50             }
51
52             if(urlProp.containsKey("selectMethod")) {
53                 sqlXaDS.setSelectMethod(urlProp.getProperty("selectMethod"));
54             }
55             else {
56                 // sqlserver 要使用 jta,必须设置 selectMethod=cursor
57
sqlXaDS.setSelectMethod("cursor");
58             }
59             return sqlXaDS;
60         }
61         catch(Exception JavaDoc e) {
62             e.printStackTrace();
63             return null;
64         }
65
66     }
67
68     public static void main(String JavaDoc[] args) {
69
70     }
71 }
Popular Tags