首先第一步:我们需要下载一个jtds驱动让Android连接数据库
jtds下载地址:http://sourceforge.net/projects/jtds/files/
第二步:数据库连接和测试类DataBaseUtil.java
private static Connection getSQLConnection(String ip, String user,
String pwd, String db) {
Connection con = null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + ip
+ ":1433/" + db + ";charset=utf8", user, pwd);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
// 更新数据
public static String testSQL(String s) {
String result = "字段1 - 字段2\n";
try {
Connection conn = getSQLConnection(IP地址, 用户名,
密码, "数据库库名");
if (conn == null) {
LogUtil.e("服务器正在忙,请稍后");
// toast.show(context, "服务器正在忙,请稍后连接");
} else {
LogUtil.e("连接成功");
String sql = s;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String s1 = rs.getString("CardId");
// String s2 = rs.getString("Id");
// result += s1 + " - " + s2 + "\n";
result = s1;
// System.out.println(s1 + " - " + s2);
System.out.println(s1);
}
rs.close();
stmt.close();
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
result += "查询数据异常!" + e.getMessage();
}
return result;
}
// 查询数据
public static String testSQL(String s, String column) {
String result = "字段1 - 字段2\n";
try {
Connection conn = getSQLConnection(IP地址, 用户名,
密码, "数据库库名");
if (conn == null) {
LogUtil.e("服务器正在忙,请稍后");
// toast.show(context, "服务器正在忙,请稍后连接");
} else {
LogUtil.e("连接成功");
String sql = s;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String s1 = rs.getString(column);
// String s2 = rs.getString("Id");
// result += s1 + " - " + s2 + "\n";
result = s1;
// System.out.println(s1 + " - " + s2);
System.out.println(s1);
}
rs.close();
stmt.close();
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
result = "查询数据异常!" + e.getMessage();
}
return result;
}
// 查询数据
public static ArrayList<String> testSQL1(String s, String column) {
String result = "字段1 - 字段2\n";
ArrayList<String> lists = new ArrayList<String>();
try {
Connection conn = getSQLConnection(IP地址, 用户名,
密码, "数据库库名");
if (conn == null) {
LogUtil.e("服务器正在忙,请稍后");
// toast.show(context, "服务器正在忙,请稍后连接");
} else {
LogUtil.e("连接成功");
String sql = s;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String s1 = rs.getString(column);
// String s2 = rs.getString("Id");
// result += s1 + " - " + s2 + "\n";
result = s1;
lists.add(result);
// System.out.println(s1 + " - " + s2);
System.out.println(s1);
}
rs.close();
stmt.close();
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
result = "查询数据异常!" + e.getMessage();
}
return lists;
}
public static void main(String[] args) {
testSQL(args.toString());
}
}
获取ip地址方法:window-cmd-ipconfig
MainActivity中主要代码
private void test() {
Runnable run = new Runnable() {
@Override
public void run() {
// 2.对卡号进行查询订单编号
String payorderno = "select ChargeOrderNo from ChargeRecord WHERE CardNo = 10000001";
ArrayList<String> order_No = DataBaseUtil.testSQL1(payorderno,
"ChargeOrderNo");
LogUtil.e(order_No+"");
// 3.根据卡号查询支付状态
String remark = "select MemberName from Member PhoneNum CardNo = 15868449932";
String name = DataBaseUtil.testSQL(remark,
"MemberName");
Message msg = new Message();
/**
* 代表全部
*/
msg.what = 1001;
Bundle data = new Bundle();
// data.putString("order_no", order_number);
data.putStringArrayList("order_no", order_No);
data.putString("order_remark", name);
msg.setData(data);
mHandler.sendMessage(msg);
}
};
new Thread(run).start();
}
Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 1001:
ArrayList<String> order_No2 = msg.getData().getStringArrayList(
"order_no");
String name = msg.getData().getString("order_remark");
Log.e("MainActivity", name);
default:
break;
}
};
};
项目下载地址:https://github.com/RangersEZ/connect-to-sqlserver-external-database.git