Android連線資料庫sqlserver
Android studio 要先引入 jtds-1.2.7.jar
幫助類
package com.example.util;
import android.util.Log;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class SqlServerDBUtil {
private static String driver = "net.sourceforge.jtds.jdbc.Driver";//sqlserver 驅動
private static String url = "jdbc:jtds:sqlserver://118.124.8.100:3303;DatabaseName=databasename;useunicode=true;characterEncoding=UTF-8";//MYSQL資料庫連線Url
//;useunicode=true;characterEncoding=UTF-8
private static String user = "root";//使用者名稱
private static String password = "root";//密碼
private static Connection getConn(){
Connection connection = null;
try{
Class.forName(driver);// 動態載入類
// 嘗試建立到給定資料庫URL的連線
connection = DriverManager.getConnection(url ,user, password);
Log.e("sqlDBUtils","載入驅動成功");
}catch (Exception e){
Log.e("sqlDBUtils","載入驅動失敗");
e.printStackTrace();
}
return connection;
}
public int logo(String sql){
int num = 0;
System.out.println(sql);
Connection connection=getConn();
try {
if(connection!=null){
Statement stmt = connection.createStatement();//
if(stmt!=null){
// 執行sql查詢語句並返回結果集
ResultSet result =stmt.executeQuery(sql);
if (!result.next()) {
num = 0;
} else {
num = 1;
}
connection.close();
stmt.close();
result.close();
}else{
return num;
}
}else{
return num;
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
System.out.println(num);
return num;
}
public static List select(String sql){
HashMap<String, Object> map = new HashMap<>();
List list=new ArrayList<>();
// 根據資料庫名稱,建立連線
Connection connection = getConn();
try {
// mysql簡單的查詢語句。這裡是根據MD_CHARGER表的NAME欄位來查詢某條記錄
sql = "select * from clienter";
if (connection != null){// connection不為null表示與資料庫建立了連線
Log.e("sqlDBUtils","成功");
PreparedStatement ps = connection.prepareStatement(sql);
if (ps != null){
// 設定上面的sql語句中的?的值為name
// ps.setString(1, name);
// 執行sql查詢語句並返回結果集
ResultSet rs = ps.executeQuery();
if (rs != null){
int count = rs.getMetaData().getColumnCount();
Log.e("sqlDBUtils","列總數:" + count);
while (rs.next()){
System.out.println("sched_name:"+rs.getString("sched_name"));
System.out.println("lock_name:"+rs.getString("lock_name"));
list.add(rs.getString("sched_name")+" " + rs.getString("lock_name"));
// 注意:下標是從1開始的
for (int i = 1;i <= count;i++){
String field = rs.getMetaData().getColumnName(i);
map.put(field, field);
}
}
connection.close();
ps.close();
return list;
}else {
Log.e("sqlDBUtils","讀取失敗");
return null;
}
}else {
Log.e("sqlDBUtils","查詢失敗");
return null;
}
}else {
Log.e("sqlDBUtils","連線失敗");
return null;
}
}catch (Exception e){
e.printStackTrace();
Log.e("sqlDBUtils","異常:" + e.getMessage());
return null;
}
}
}
因為Android連線資料需要重新開執行緒,不能在原執行緒中連線資料庫
所以
在要連線的Activity中新增以下程式碼
//頂部訊息
@SuppressLint("HandlerLeak")
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 0x11:
//跳轉頁面
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
break;
case 0x12:
Toast.makeText(LoginActivity.this, "賬戶密碼錯誤,重新輸入!", Toast.LENGTH_LONG).show();
break;
}
}
};
// 建立一個執行緒來連線資料庫並獲取資料庫中對應表的資料
public void lianjie(){
new Thread(new Runnable() {
@Override
public void run() {
Message message = handler.obtainMessage();
//呼叫連線資料庫幫助類
SqlServerDBUtil sqlServerDBUtil=new SqlServerDBUtil();
//自定義查詢語句sql,並接收返回值
int logo = sqlServerDBUtil.logo("select * from operationer where bh="+username+" and password = "+userpwd);
if(logo>0){
message.what = 0x11;//登入成功,表示有資料
}else{
message.what = 0x12;
}
// 發訊息通知主執行緒更新UI
handler.sendMessage(message);
}
}).start();
}
相關文章
- ThinkPHP連線sqlserver資料庫PHPSQLServer資料庫
- jmeter 連線 sqlserver 資料庫JMeterSQLServer資料庫
- JDBC之連線sqlserver資料庫JDBCSQLServer資料庫
- 不能建立sqlserver資料庫連線SQLServer資料庫
- Unity3d連線SQLServer資料庫Unity3DSQLServer資料庫
- Android 連線資料庫Android資料庫
- SQLServer埠更改後的資料庫連線方式(轉)SQLServer資料庫
- 用c#建立與資料庫的連線 c#連sqlserverC#資料庫SQLServer
- Ado.net中SQLServer資料庫連線池(轉)SQLServer資料庫
- sql清除資料庫的連線(for sqlserver2000)SQL資料庫Server
- 使用EF 連線 資料庫 SQLserver、MySql 實現 CodeFirst資料庫ServerMySql
- Power Designer 連線SqlServer 資料庫 匯出表結構SQLServer資料庫
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 連線資料庫資料庫
- 資料庫連線資料庫
- Android連線網路資料庫的方式Android資料庫
- JDBC連線自定義sqlserver資料庫例項名(多個例項)JDBCSQLServer資料庫
- Sqlserver2008 資料庫映象會話的初始連線SQLServer資料庫會話
- 在JBuilder中使用com.microsoft.jdbc.sqlserver.SQLServerDriver連線sql資料庫UIROSJDBCSQLServer資料庫
- JDBC連線資料庫JDBC資料庫
- java連線資料庫Java資料庫
- Mybatis連線資料庫MyBatis資料庫
- Mongodb資料庫連線MongoDB資料庫
- mysqli連線資料庫MySql資料庫
- 資料庫的連線資料庫
- 連線mysql資料庫MySql資料庫
- 資料庫連線池資料庫
- 資料庫連線==odbc資料庫
- 資料庫連線字串資料庫字串
- jmeter連線資料庫JMeter資料庫
- 連線資料庫-mysql資料庫MySql
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- (轉)PHP連線資料庫之PHP連線MYSQL資料庫程式碼PHP資料庫MySql
- 資料來源連線資料庫資料庫
- [資料庫連線字串] Access 連線字串(轉)資料庫字串
- [資料庫連線字串]Access連線字串(轉)資料庫字串
- 各種連線資料庫的連線字串資料庫字串