android jdbc:jtds连接问题 懂得看看谢谢

pismall? 2016-05-02 08:13:29
搞了好久弄不出,麻烦帮忙看一看,谢谢
下面贴了代码,
问题:
1、con = DriverManager.getConnection(url,"papi","xy123456");//con不能输出显示
2、Statement stmt = con.createStatement();//这句后面不能运行了。。
package com.example.test;

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

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

private TextView textView00;
private TextView textView01;
private TextView textView02;
private TextView textView03;
private String str03="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView00 = (TextView)this.findViewById(R.id.TextView00);
textView01 = (TextView)this.findViewById(R.id.TextView01);
textView02 = (TextView)this.findViewById(R.id.TextView02);
textView03 = (TextView)this.findViewById(R.id.TextView03);
MyRunnable mr1 = new MyRunnable();
Thread t1 = new Thread(mr1);
t1.start();
}

class MyRunnable implements Runnable {
@Override
public void run() {
Connection con = null;
try {
String driver="net.sourceforge.jtds.jdbc.Driver";
String url="jdbc:jtds:sqlserver://115.198.192.133:3322/cat";
Class.forName(driver).newInstance();
textView00.setText(" 连接开始。。。。。。");
long starttime = System.currentTimeMillis();
Log.e("TAG", "------------->>before getConnection ");
con = DriverManager.getConnection(url,"papi","xy123456");
textView03.setText("111" + con);
Log.e("TAG", "------------->>after getConnection ");
long endtime = System.currentTimeMillis();
textView01.setText(" 连接成功 !Lost time:" + (endtime - starttime) * 10 + "秒");
Log.e("TAG", "------------->>after 连接成功 ");
con.close();
} catch(Exception e) {
e.printStackTrace();
} finally{
try {
if(null != con){
con.close();
Log.e("TAG", "------------->>con close ");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
testConnection(con);
} catch (SQLException e) {
e.printStackTrace();
}
}
}

public void testConnection(Connection con) throws java.sql.SQLException {
try {
String sql = "SELECT * FROM info";//查询表名为“table_test”的所有内容
Log.e("TAG", "------------->>after string sql ");
Statement stmt = con.createStatement();//创建Statement
Log.e("TAG", "------------->>before ResultSet ");
ResultSet rs = stmt.executeQuery(sql);//ResultSet类似Cursor
while (rs.next()) {//<code>ResultSet</code>最初指向第一行
str03 += rs.getString("school");
textView02.setText(str03);
}
rs.close();
stmt.close();
} catch (SQLException e) {
System.out.println(e.getMessage().toString());
} finally {
if (con != null)
try {
con.close();
} catch (SQLException e) {
}
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
下面是LogCAT:
05-02 08:23:05.503: E/TAG(1747): ------------->>before getConnection
05-02 08:23:07.753: I/Choreographer(1747): Skipped 140 frames! The application may be doing too much work on its main thread.
05-02 08:23:08.283: D/gralloc_goldfish(1747): Emulator without GPU emulation detected.
05-02 08:23:11.523: D/dalvikvm(1747): GC_FOR_ALLOC freed 247K, 12% free 2768K/3136K, paused 131ms, total 143ms
05-02 08:23:14.323: W/System.err(1747): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
05-02 08:23:14.533: W/System.err(1747): at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:5908)
05-02 08:23:14.564: W/System.err(1747): at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:837)
05-02 08:23:14.564: W/System.err(1747): at android.view.View.requestLayout(View.java:15792)
05-02 08:23:14.623: W/System.err(1747): at android.view.View.requestLayout(View.java:15792)
05-02 08:23:14.623: W/System.err(1747): at android.view.View.requestLayout(View.java:15792)
05-02 08:23:14.623: W/System.err(1747): at android.view.View.requestLayout(View.java:15792)
05-02 08:23:14.623: W/System.err(1747): at android.view.View.requestLayout(View.java:15792)
05-02 08:23:14.623: W/System.err(1747): at android.widget.TextView.checkForRelayout(TextView.java:6510)
05-02 08:23:14.643: W/System.err(1747): at android.widget.TextView.setText(TextView.java:3764)
05-02 08:23:14.643: W/System.err(1747): at android.widget.TextView.setText(TextView.java:3622)
05-02 08:23:14.643: W/System.err(1747): at android.widget.TextView.setText(TextView.java:3597)
05-02 08:23:14.657: W/System.err(1747): at com.example.test.MainActivity$MyRunnable.run(MainActivity.java:47)
05-02 08:23:14.676: W/System.err(1747): at java.lang.Thread.run(Thread.java:841)
05-02 08:23:14.684: E/TAG(1747): ------------->>con close
05-02 08:23:14.694: E/TAG(1747): ------------->>after string sql
05-02 08:23:14.702: I/System.out(1747): Invalid state, the Connection object is closed.

求大神解决解决!!
...全文
249 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pismall? 2016-05-04
  • 打赏
  • 举报
回复
引用 8 楼 u014027694 的回复:
[quote=引用 1 楼 phover 的回复:] 代码没变 但是con可以显示出来了。。
报错信息大概的意思是你在子线程中去操作了控件,操作控件要放到主线程中,你这个确定没改代码么,如果没改的话你的代码运行到textView00.setText(" 连接开始。。。。。。");就会抛异常了[/quote] 这个logcat确实如你所说,感谢!! 问题也解决了,是con.close();重复关闭了。。真气人。。
pismall? 2016-05-03
  • 打赏
  • 举报
回复
引用
4
有些试了,我再看看其他的。。
pismall? 2016-05-03
  • 打赏
  • 举报
回复
那个logcat具体表现的什么意思不明白 麻烦有经验的前辈看看。。感谢!!
LongRui888 2016-05-03
  • 打赏
  • 举报
回复
引用 3 楼 phover 的回复:
怎么转?找谁? 我新手。。
你试试设置一个断点调试一下,看一下当connect时,各种变量,状态是什么,是否有问题 话说,最近打算学点android,不过现在还没空学。。。
朱培 2016-05-03
  • 打赏
  • 举报
回复
我擦,原来还可以直接用安卓连外部数据库的
节操在此 2016-05-03
  • 打赏
  • 举报
回复
引用 1 楼 phover 的回复:
代码没变 但是con可以显示出来了。。
报错信息大概的意思是你在子线程中去操作了控件,操作控件要放到主线程中,你这个确定没改代码么,如果没改的话你的代码运行到textView00.setText(" 连接开始。。。。。。");就会抛异常了
pismall? 2016-05-03
  • 打赏
  • 举报
回复
是不是不能直接用连接sqlserver2000的? 我真的是两眼瞎、、都没法试、、
pismall? 2016-05-02
  • 打赏
  • 举报
回复
怎么转?找谁? 我新手。。
卖水果的net 2016-05-02
  • 打赏
  • 举报
回复
让小版给你转到 Android 专区吧;
pismall? 2016-05-02
  • 打赏
  • 举报
回复

代码没变 但是con可以显示出来了。。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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