Android通过JDBC连接MySql数据库
android中联网访问权限的添加
- AndroidManifest文件中要添加权限
...
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
关闭Windows防火墙
- (点击控制面板, 进入之后在控制面板中找到Windows防火墙, 点进去之后全部选择关闭就行了)
找到自己的Ip地址
之所以要找到自己的Ip地址是因为App实在虚拟机中运行的,所以localhost指虚拟机,并不是当前电脑,所以需要当前电脑的ip地址链接MYSQL数据库。
* 右击 网络 -> 属性, 进入之后看到这个画面
点击红线那里进入到下图
之后点击详细信息就可以看到IP地址了
数据库增删改查
数据库的增删改查我给放到了一个.class文件中,用来方便以后其他的程序调用
//链接数据库的函数
public static Connection openConnection(String url, String user,
String password) {
Connection conn = null;
try {
final String DRIVER_NAME = "com.mysql.jdbc.Driver";
//动态加载MySQL驱动
Class.forName(DRIVER_NAME);
//获取MySql数据库的连接对象
conn = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
conn = null;
} catch (SQLException e) {
conn = null;
}
return conn;
}
//执行查询,插入,更新动作的函数,此处返回了一个ArrayList类型的引用对象,方便app调用数据
public static ArrayList<Detail> query(Connection conn, String sql) {
ArrayList<Detail> detailArray = new ArrayList<Detail>();
if (conn == null) {
return null;
}
Statement statement = null;
ResultSet result = null;
try {
//从数据库连接对象中获取一个用来传递SQL语句的对象
statement = conn.createStatement();
result = statement.executeQuery(sql);
if (result != null && result.first()) {
while (!result.isAfterLast()) {
//getXXX("columnIndex")方法用来获取数据表中该列的数据并返回
int idColumnIndex = result.getInt("id");
String titleColumnIndex = result.getString("title");
String contentColumnIndex = result.getString("Content");