Android studio 连接MySQL数据库
1、打开project项目结构,找到app->libs目录,把自己的 mysql-connector-java-5.1.47-bin.jar 包引入进去(适合自己的版本)
并右键 Add ad Library
2、在AndroidManifest.xml 中加入以下权限代码
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
3、新建一个工具类 DBUtils 用于连接数据库
-
注意,Android连接MySQL数据库 需要 本机的ip地址,而不是localhost(127.0.0.1)
-
win+R 输入cmd 打开黑窗口 输入 ipconfig 回车查看本机 ipv4地址
-
private final static String url = "jdbc:mysql://本机ipv4地址/需要连接的数据库名?useUnicode=true&characterEncoding=UTF-8&useSSL=false";
public class DBUtils {
private final static String driver = "com.mysql.jdbc.Driver";
private final static String url = "jdbc:mysql://10.8.186.95:3306/journey_reform?useUnicode=true&characterEncoding=UTF-8&useSSL=false";
private final static String username = "root";
private final static String password = "123456";
Connection conn=null;
Statement st=null;
ResultSet rs=null;
static {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
System.out.println("加载驱动错误");
}
}
//2. 获取连接
public static Connection getConnect() throws Exception {
return DriverManager.getConnection(url, username, password);
}
//3. 释放连接资源
public static void release(Connection conn, Statement st, ResultSet rs) throws Exception {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (conn != null) {
conn.close();
}
}
}
4、新建类 UserDao 用于 对用户数据进行操作.
public class UserDao {
//查询用户的方法
public boolean select(String table) throws Exception {
Connection conn = null;
Statement state = null;
ResultSet rs = null;
try {
conn = DBUtils.getConnect();
state = conn.createStatement();
String sql = "select * from " + table;
rs = state.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getString(1) + " " + rs.getString(2));//就是输出第一列和第二列的值
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtils.release(conn, state, rs);
}
return true;
}
}
5、测试:在 ManActivity.java 中的Oncreate()方法中调用该方法,在控制台查看输出
在其他地方调用也行,我们主要是为了测试,使该界面一加载就执行我们的方法,就能在控制台看见输出
userDao=new UserDao();
try {
userDao.select("journey_user");
} catch (Exception e) {
e.printStackTrace();
}
此时会报错 : Caused by: android.os.NetworkOnMainThreadException
查阅资料了解到,在Android 4.0以上,网络连接不能放在主线程上,不然就会报错android.os.NetworkOnMainThreadException。但是4.0下版本可以不会报错。
解决此问题有两种解决的方法:
1.可以再Activity的onCreate()方法中加入这样一段代码,适用于网络请求数据量很小的话,如下
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
2.启动一条子线程进行你的网络请求,推荐使用这种
// Android 4.0 之后不能在主线程中请求HTTP请求
new Thread(new Runnable(){
@Override
public void run() {
cachedImage = asyncImageLoader.loadDrawable(imageUrl, position);
imageView.setImageDrawable(cachedImage);
}
}).start();
6、测试成功:

本文介绍了如何在Android Studio项目中连接MySQL数据库,包括引入mysql-connector-java库,设置AndroidManifest.xml权限,创建DBUtils工具类,UserDao操作类,以及解决Android 4.0以上版本的NetworkOnMainThreadException异常的方法。
1万+

被折叠的 条评论
为什么被折叠?



