Android studio 连接MySQL数据库

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数据库_第1张图片

你可能感兴趣的:(笔记,android,mysql,big,data)