Android屏蔽数据库驱动,使用JDBC驱动程序和android进行Sql数据库连接

我正在尝试使用android应用中的JDBC连接到SQL Server。我将sqljdbc4.jar导入到我的应用程序中,但是当我进入

conn = DriverManager.getConnection(connString);

我得到以下错误:连接字符串是

jdbc:sqlserver://xxx.xxx.xxx.xxx:1433; encrypt = fasle; user = username;

password = password;

谁能告诉我怎么了?如果我将相同的代码放入常规的Java应用程序中,它将运行良好。

基本的Java

public class Test {

public void dbConnect(String db_connect_string, String db_userid,

String db_password) {

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Connection conn = DriverManager.getConnection(db_connect_string,

db_userid, db_password);

System.out.println("connected");

Statement statement = conn.createStatement();

String queryString = "select * from sysobjects where type='u'";

ResultSet rs = statement.executeQuery(queryString);

while (rs.next()) {

System.out.println(rs.getString(1));

}

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

Test connServer = new Test();

connServer.dbConnect("jdbc:sqlserver://Serverlocalip:1433", "sa",

"sqlserver");

}

}

Android代码:

public List dbConnect(String Host, String Port, String db_userid,

String db_password) {

List Db_list = new ArrayList();

try {

// String ConnectionString = "jdbc:sqlserver://" + Host + ":" +

// Port;

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Connection conn = DriverManager.getConnection(

"jdbc:sqlserver://Serverlocalip:1433", db_userid,

db_password);

System.out.println("connected");

Statement statement = conn.createStatement();

String queryString = "select * from sysobjects where type='u'";

ResultSet rs = statement.executeQuery(queryString);

while (rs.next()) {

System.out.println(rs.getString(1));

Db_list.add(rs.getString(1));

}

} catch (Exception e) {

Db_list.add("Error");

e.printStackTrace();

}

return Db_list;

}

错误

07-24 17:25:02.058: W/System.err(22227): com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "Socket closed".

07-24 17:25:02.228: W/System.err(22227): at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1352)

07-24 17:25:02.228: W/System.err(22227): at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1466)

07-24 17:25:02.228: W/System.err(22227): at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1042)

07-24 17:25:02.228: W/System.err(22227): at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)

07-24 17:25:02.228: W/System.err(22227): at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)

07-24 17:25:02.228: W/System.err(22227): at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)

07-24 17:25:02.228: W/System.err(22227): at java.sql.DriverManager.getConnection(DriverManager.java:175)

07-24 17:25:02.238: W/System.err(22227): at java.sql.DriverManager.getConnection(DriverManager.java:209)

07-24 17:25:02.238: W/System.err(22227): at com.example.sqlserverconnector.MainActivity.dbConnect(MainActivity.java:87)

07-24 17:25:02.238: W/System.err(22227): at com.example.sqlserverconnector.MainActivity$1.onClick(MainActivity.java:39)

07-24 17:25:02.238: W/System.err(22227): at android.view.View.performClick(View.java:3574)

07-24 17:25:02.238: W/System.err(22227): at android.view.View$PerformClick.run(View.java:14293)

07-24 17:25:02.238: W/System.err(22227): at android.os.Handler.handleCallback(Handler.java:605)

07-24 17:25:02.248: W/System.err(22227): at android.os.Handler.dispatchMessage(Handler.java:92)

07-24 17:25:02.248: W/System.err(22227): at android.os.Looper.loop(Looper.java:137)

07-24 17:25:02.248: W/System.err(22227): at android.app.ActivityThread.main(ActivityThread.java:4448)

07-24 17:25:02.248: W/System.err(22227): at java.lang.reflect.Method.invokeNative(Native Method)

07-24 17:25:02.248: W/System.err(22227): at java.lang.reflect.Method.invoke(Method.java:511)

07-24 17:25:02.248: W/System.err(22227): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)

07-24 17:25:02.248: W/System.err(22227): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)

07-24 17:25:02.258: W/System.err(22227): at dalvik.system.NativeStart.main(Native Method)

07-24 17:25:02.258: W/System.err(22227): Caused by: java.net.SocketException: Socket closed

07-24 17:25:02.318: W/System.err(22227): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)

07-24 17:25:02.318: W/System.err(22227): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:410)

07-24 17:25:02.318: W/System.err(22227): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:257)

07-24 17:25:02.318: W/System.err(22227): at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1433)

任何帮助将是巨大的,在此先感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值