Android APP 连接电脑SQL Server数据库
1. 原理
首先要使APP连接到电脑的数据库就要明白为什么能连接以及该怎么连接。Android为什么一直说自己是一个平台呢,因为它没有自己的内核,不是一个完整的OS,它最开始是“借用”Linux实现的,然后就借用至今。这样看来手机就可以理解为一个微型电脑,所以电脑连接另一台电脑的数据库,肯定是可以实现的。说到这里肯定很多人还是不懂为啥能连接,嗯嗯其实我自己也不太懂反正我成功了,嘻嘻。
相信大家都听过一些连接数据库的接口,比如什么odbc、jdbc等等。这里我就使用的是在jdbc基础上封装的jtds,它的具体内容大家可以百度。
2.具体实现
首先在网上下载jtds的压缩包,我用的版本是jtds-1.2.7。下载好了后在自己新建的工程下新建一个文件夹命名为libs ,大致的位置是在app文件夹下。然后把下载的压缩包放入到新建的libs文件夹中。好了准备好了之后我们就可以开始尝试连接了。
我们首先封装一个getSQLConnection(String ip, String user, String pwd, String db)类型的函数,用于获取Connection对象。第一个参数ip是你的电脑当前连接的网络的ip地址(可以通过打开cmd然后输入ipconfig查看)。因为是远程连接数据库,所以要使用ip,不同于连接本地数据库。第二个参数user是你的数据库的用户名称,一般SQL Server默认的是sa,第三个参数则是你的登录数据库的密码,第四个是你要连接到的自己建立的数据库名称。详细代码如下:
public static Connection getSQLConnection(String ip, String user, String pwd, String db)
{
Connection con = null;
try
{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
//int t=1;
con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + ip + ":1433/" + db + ";useunicode=true;characterEncoding=UTF-8", user, pwd);
//加上 useunicode=true;characterEncoding=UTF-8 防止中文乱码
//int j=0;
} catch (ClassNotFoundException e)
{
e.printStackTrace();
} catch (SQLException e)
{
e.printStackTrace();
}
return con;
}
现在我们就可以写一个testSQL()函数来测试是否可以连接。代码如下:
public static String testSQL()
{
String result = "字段1 - 字段2\n";
try
{
Connection conn = getSQLConnection("你的ip", "数据库登录名", "数据库登录密码", "数据库名");//远程连接的端口一定要查看电脑的,而不是手机的
String sql = "select * from 数据库中的表名";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next())
{
// ResultSet
此时我们可以写一个main函数来看看是否可以连接成功。
public static void main(String[] args)
{
String result = testSQL();
System.out.println(result);
}
可以看到输出结果为:
与数据库中存储的信息一致。这里只是一个查询相关的示例,如果大家要执行插入、删除的操作可以在网上查查,这种有很多教程。
今天就写这么多,下一篇是加载百度地图实现定位。