android APP连接本地数据库,真机上我没弄成,就是ip问题,只能在模拟器上运行。假如你使用过java连接成功过,那么步骤很简单,只需要把localhost替换成10.0.2.2,这是用模拟器用的访问地址

接下要讲的就是可能出现的问题:

相信这个问题困扰你很久,你也百度了很多,但没有一个确定的说法;
现在我告诉你,这个是你引入jdbc.jar包有问题,这是因为版本号,或者机型什么的,具体我也不是特别清楚,但我真真实实试过,有可能你在Myeclipse上直接连接数据库就能行,但那个jar包不一定能在android上使用,就像我的电脑,Myeclipse用一个jdbc.jar ,但android 编译器又得用另外一个jdbc.jar。你试一下就知道了。

这个问题和上面有点像,只有后面的serverException不一样,这个问题我也不是特别清楚,我自己是把AndroidManifest里面的<uses-sdk>删掉了,它就能运行了。
另外一个就是:你的数据库要用混合登陆方式和服务的TCP/IP协议端口1433是开的,具体你可以看我的另外一篇博客
package com.example.warehouse;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import android.util.Log;
/**
* @author memory_coder
* @version 2017-4-6 下午2:17:02
* @application
* 数据库操作类
*/
public class Dao
{
//这句是默认SQL server 驱动语句,照打就行
private static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//这句1433是连接端口,一般是打开的。智能花盆就是数据库名字
private static String dbUrl= "jdbc:sqlserver://10.0.2.2:1433;DatabaseName=智能花盆";
private static String dbUser = "sa"; //数据库用户名
private static String dbPassword = "123456";// 数据库密码
private static Connection conn = null; // 定义一个数据库连接
public String sql = "select * from 花信息"; //花信息为表名
public Dao()
{
if(conn==null) // 如果连接为空,
{
try // 捕获数据库异常
{
Class.forName(dbClassName);
Log.i("set", "加载驱动");// 加载JDBC SQL Server 驱动
conn = DriverManager.getConnection(dbUrl, dbUser, dbPassword);//连接数据库
Log.i("set", "获得链接");
} catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
return; // 如果连接不为空即返回
}
public static ResultSet executeQuery(String sql)
{
try
{
if(conn==null)
{
new Dao();
}
Log.i("set", "套接字");
return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE).executeQuery(sql);
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public static int executUpdate(String sql)
{
try
{
if(conn==null)
{
new Dao();
}
return conn.createStatement().executeUpdate(sql);
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return -1;
}
}
public static void close()
{
try
{
conn.close();
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
conn = null;
}
}
}