关于Android直连Sybase数据库 不支持Android吗?

sianaci 2017-01-08 12:56:37

JDBC3 已经正确加载 但是不能连接数据库


package com.example.administrator.a111;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import android.database.SQLException;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity {
private TextView mytext;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mytext = (TextView)this.findViewById(R.id.mytext);
Connection con = null;
try{

Class.forName("com.sybase.jdbc3.jdbc.SybDriver");
System.out.println("ok");

con = DriverManager.getConnection("jdbc:sybase:Tds:192.168.1.237:2638/mm", "dba", "dba");
if (con != null) {
// System.out.println(con);
android.util.Log.i("zas","con is open:"+con.isClosed());
testConnection(con);//测试数据库连接
}

}catch (Exception e){
// System.out.println(e);
e.printStackTrace();

}
/*try {
testConnection(con);//测试数据库连接
} catch (java.sql.SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();

}*/
}

public void testConnection(Connection con) throws java.sql.SQLException {

try {

String sql = "SELECT * FROM usermnt";//查询表名为“table_test”的所有内容
Statement stmt = con.createStatement();//创建Statement
ResultSet rs = stmt.executeQuery(sql);//ResultSet类似Cursor

String s = "result:\n";
while (rs.next()) {//<code>ResultSet</code>最初指向第一行
s += rs.getString("user_name")+"\n";//输出第n行,列名为“test_id”的值
}
this.mytext.setText(s);
rs.close();
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
// System.out.println(toString());
} finally {
if (con != null)
try {
con.close();
}
catch (SQLException e) {
}
}


}
}


报错:
W/System.err: android.os.NetworkOnMainThreadException
W/System.err: at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
W/System.err: at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
W/System.err: at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
W/System.err: at libcore.io.IoBridge.connect(IoBridge.java:112)
W/System.err: at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
W/System.err: at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
W/System.err: at java.net.Socket.startupSocket(Socket.java:567)
W/System.err: at java.net.Socket.tryAllAddresses(Socket.java:128)
W/System.err: at java.net.Socket.<init>(Socket.java:178)
W/System.err: at java.net.Socket.<init>(Socket.java:150)
W/System.err: at com.sybase.jdbc3.timedio.RawDbio.doConnect(Unknown Source)
W/System.err: at com.sybase.jdbc3.timedio.InStreamMgr.<init>(Unknown Source)
W/System.err: at com.sybase.jdbc3.tds.Tds.login(Unknown Source)
W/System.err: at com.sybase.jdbc3.jdbc.SybConnection.a(Unknown Source)
W/System.err: at com.sybase.jdbc3.jdbc.SybConnection.a(Unknown Source)
W/System.err: at com.sybase.jdbc3.jdbc.SybConnection.<init>(Unknown Source)
W/System.err: at com.sybase.jdbc3.jdbc.SybConnection.<init>(Unknown Source)
W/System.err: at com.sybase.jdbc3.jdbc.SybDriver.connect(Unknown Source)
W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:179)
W/System.err: at java.sql.DriverManager.getConnection(DriverManager.java:213)
W/System.err: at com.example.administrator.a111.MainActivity.onCreate(MainActivity.java:29)
W/System.err: at android.app.Activity.performCreate(Activity.java:5231)
W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
W/System.err: at android.app.ActivityThread.access$800(ActivityThread.java:135)
W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err: at android.os.Looper.loop(Looper.java:136)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5017)
W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err: at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
W/System.err: at dalvik.system.NativeStart.main(Native Method)
D/OpenGLRenderer: Enabling debug mode 0
...全文
688 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧