你好,我是初學者,有個問題請教,用Android Studio 4.0連接Sqlserver2008r2,資料庫時,卡在
DriverManager.getConnection("jdbc:jtds:sqlserver://xxx.xxx.xxx.xxx:1433/db;charset=utf8", "sa", "111111111");這行上了沒有回傳值,現在編譯后,也不能連接到資料庫。(已經在網上找了很長時間沒有解決,特發此貼),謝謝先,截圖如下:

MainActivity.java,內容:
package com.example.h2sqlserverconnect;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.SQLException;
public class MainActivity extends AppCompatActivity {
TextView textView2;
EditText editTextTextPersonName;
EditText editTextTextPersonName2;
Button button;
Button buton2;
Button button3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView2=findViewById(R.id.textView2);
editTextTextPersonName=findViewById(R.id.editTextTextPersonName);
editTextTextPersonName2=findViewById(R.id.editTextTextPersonName2);
button=findViewById(R.id.button);
buton2=findViewById(R.id.button2);
button3=findViewById(R.id.button3);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String zh=editTextTextPersonName.getText().toString();
Intent intent=new Intent();
intent.setClass(MainActivity.this,MainActivity2.class);
intent.putExtra("data",zh);
startActivity(intent);
}
});
buton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Statement stmt = null;
Connection con = null;
try {
//SQL server注冊驅動
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
Toast.makeText(MainActivity.this,"JDBC連接例外",0).show();
}
// Toast.makeText(MainActivity.this,"開始了2,sqlserver注冊驅動成功",0).show(); pass
try {
//獲取資料庫連接
Toast.makeText(MainActivity.this,"開始了31,進入獲取資料庫連接 ",0).show();
con = DriverManager.getConnection("jdbc:jtds:sqlserver://xxx.xxx.xxx.xxx:1433/xxdb;charset=utf8", "sa", "111111");
// con = DriverManager.getConnection("jdbc:sqlserver://xxx.xxx.xxx.xxx:1433;DatabaseName=xxdb", "sa", "111111);
// con = DriverManager.getConnection("jdbc:jtds:sqlserver://xxx.xxx.xxx.xxx:1433/xxdb","sa","111111");
// con = DriverManager.getConnection("jdbc:microsoft:sqlserver://xxx.xxx.xxx.xxx:1433;DatabaseName=xxdb","sa","111111");
Toast.makeText(MainActivity.this,"開始了3,con= "+con,0).show(); //卡這了
//創建Statement物件
stmt = con.createStatement();
//資料插入(洗掉,更新,DML語言都可操作)
String sql = "insert into t_casu (casu_id,casu_name,casu_pw,casu_grant) values('3333','sa','111111','11111111111111111111111111111111111111')";
//資料查詢
String sqll = "select * from t_rm_casu";
//遍歷結果集
ResultSet rs = stmt.executeQuery(sqll);
while (rs.next()) {//獲取字符
Toast.makeText(MainActivity.this,"casu_id= " +rs.getString("casu_id"),0).show();
Toast.makeText(MainActivity.this,"sql= "+sql,0).show();
Toast.makeText(MainActivity.this,"sqll= "+sqll,0).show();
}
//執行sql陳述句
stmt.executeUpdate(sql);
} catch (SQLException e) {
Toast.makeText(MainActivity.this,"開始了4,sqlException e",0).show();
e.printStackTrace();
}finally {
if(stmt!=null)
try {
stmt.close();
} catch (SQLException e) {
Toast.makeText(MainActivity.this,"stmt關閉例外",0).show();
}
if(con!=null)
try {
con.close();
} catch (SQLException e) {
Toast.makeText(MainActivity.this,"con關閉例外",0).show();
}
}
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
}
uj5u.com熱心網友回復:
看一下錯誤的具體資訊uj5u.com熱心網友回復:
我用的是JTDS驅動,測驗通過的,你參考一下。不過,你的好像是微軟SQL驅動,
public static Connection getSQLConnection() {
Connection conn = null;
try {
IP_port = "192.168.0.157:1433";// 手機和SQL服務器要在同一個局域網
//IP_port = "10.0.2.2:1433";// 模擬器上用這個
Class.forName("net.sourceforge.jtds.jdbc.Driver");
conn = DriverManager.getConnection( //加上useunicode防止中文亂碼
"jdbc:jtds:sqlserver://" + IP_port + "/xxdb;"+
"useunicode=true;characterEncoding=UTF-8", "sa", "111111");
} catch (ClassNotFoundException e) {
System.out.println("111...ClassNotFoundException");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("222...SQLException");
e.printStackTrace();
}
uj5u.com熱心網友回復:
你的Jar包驅動是不是有問題? 重新百度一個Jar包驅動uj5u.com熱心網友回復:
例外貼出來,放在子執行緒連接轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/56159.html
標籤:Android
