android 通过jdbc访问mysql数据库--(含android studio 配置)通过测试

一、android studio version 3.1.2安装配置

下载android studio安装,对于android sdk建议通过sdk manager设置代理进行下载不要用as下,因为很大,我下载了有100多个G.

下载完毕android sdk后可以保存到任意目录,然后再android studio 启动界面(未打开任何项目)中,选择configer-project defaults-project structer中设置sdk目录,指定到自己下载目录。jdk目录也在这里进行设置。

配置完毕后,新建项目可能还是不能运行,这里有两个地方需要设置:

a.下载需要的gradle压缩包,把下载后的压缩包(不要解压)复制到C:\Users\你的用户名\.gradle\wrapper\dists\gradle-*.*-all\随机值\中(我的gradle目录C:\Users\win7\.gradle\wrapper\dists\gradle-4.1-all\bzyivzo6n839fup2jbap0tjew),这里gradle版本就是项目中gradle-wrapper.properties中指定的版本

b.点击:文件-setting 选择build-gradle-android studio后再右侧勾选Enabled embedded Maven repository

二、访问mysql

(一)导入mysql-coonector-java包

安装mysql后,下载mysql-connector-java-5.1.39-bin.jar,把它复制到项目的libs目录(项目目录\app\libs),然后把这个jar包添加到android studio的项目中,方法如下:

点击工具栏中的project structer按钮,或者选择文件-project structer菜单,进入设置界面,然后切换右侧选项卡到dependencies中,点击绿色加号,出现快捷菜单后,选择第二个,jar dependency然后选择libs下的jar包,确定。最后一步不要忘了,导入后在相应的包下(project方式查看)右键,选择as a library,最后这步忘了肯定报错。

(二)写入访问mysql的代码,与java类似

import android.util.Log;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DBConnection {
    private static final String DBDRIVER = "com.mysql.jdbc.Driver";
    private static final String DBURL = "jdbc:mysql://ip地址:3306/数据库名称?useSSL=FALSE";
    private static final String DBUSER = "用户名";
    private static final String DBPASSWORD = "密码";

    public static boolean linkMysql() {
        Connection conn=null;
        PreparedStatement stmt=null;
        try {
            Class.forName(DBDRIVER).newInstance();
        }
        catch (Exception e){
            e.printStackTrace();
            return false;
        }
        try{
            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
            String sql = "SELECT * from 表名";
            stmt= conn.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                String sUser = rs.getString("userName");
                Log.i("temp", sUser);
            }
            rs.close();
            stmt.close();;
            conn.close();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        finally {
            if(conn!=null){
                try {
                    conn.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }

        }

    }
}

(三)以线程形式访问数据库(我费了两天才弄明白)

必须以线程形式访问,否则报错。

btn1= super.findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        new Thread(new Runnable(){
            public void run(){
              
                DBConnection.linkMysql();
              

            }
        }).start();

    }
});

(四)AndroidManifest配置

添加:

<uses-permission android:name="android.permission.INTERNET" />

整个配置文件类似于:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hzy.ghhf.helloandroid">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

总结:新学android ,太多的坑,因为有墙,很多资源不好访问。再有对于工具十分不熟,这是我第一个博客,不知道怎么传图,有不明白的百度之。

 

  • 22
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值