android,app通过jdbc连接mysql
16lz
2021-01-26
java.sql.SQLException: Access denied for user '192.168.1.101'@'root' (using password: YES),
以前试了一次,调试了很久,还是以失败而告终,最近因为项目需要又重新调试了一次,终于把他拿下,
GRANTALLPRIVILEGESON数据库名.*TOroot@'%'IDENTIFIEDBY'密码'WITHGRANTOPTION;
在mysql的cmd下运行这句话就行了
MainActivity.java
package com.example.db_test_1;import com.dao.Manipulate;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {private Handler handler;Manipulate manipulate = new Manipulate();Button btn_insert, btn_select;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn_insert = (Button) findViewById(R.id.btn_insert);btn_select = (Button) findViewById(R.id.btn_select);btn_insert.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO 自动生成的方法存根// manipulate.insertData();// Toast.makeText(MainActivity.this, "插入完成", Toast.LENGTH_SHORT)// .show();// ;fun_insert();}});btn_select.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO 自动生成的方法存根// manipulate.selectData();// Toast.makeText(MainActivity.this, "查询完成", Toast.LENGTH_SHORT)// .show();fun_select();}});handler = new Handler() {@Overridepublic void handleMessage(Message msg) {// TODO 自动生成的方法存根// super.handleMessage(msg);switch (msg.what) {case 1: // //插入manipulate.insertData();Toast.makeText(MainActivity.this, "插入完成",Toast.LENGTH_SHORT).show();;break;case 2: // /查询manipulate.selectData();Toast.makeText(MainActivity.this, "查询完成",Toast.LENGTH_SHORT).show();;break;}}};}// //onCreatepublic void fun_insert() {new Thread(new Runnable() {@Overridepublic void run() {// TODO 自动生成的方法存根manipulate.insertData();Message m = new Message();m.what = 1;// handler.sendMessage(m);}}).start();}// //fun_insertpublic void fun_select() {new Thread(new Runnable() {@Overridepublic void run() {// TODO 自动生成的方法存根manipulate.selectData();Message m = new Message();m.what = 2;// handler.sendMessage(m);}}).start();}}Manipulate.java
package com.dao;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Connection;import java.sql.Statement;import java.text.SimpleDateFormat;import java.util.Date;import android.util.Log;public class Manipulate {static Connection con; // 声明Connection对象static Statement sql; // 声明Statement对象static ResultSet res;public static StringBuilder sb = new StringBuilder();SimpleDateFormat sdf = new SimpleDateFormat();String date_str = sdf.format(new Date());public Connection getConnection() { // 连接数据库方法try {Class.forName("org.gjt.mm.mysql.Driver");con = DriverManager.getConnection("jdbc:mysql://192.168.1.102:3306/db_11", "root", "0000");// con = DriverManager.getConnection(// "jdbc:mysql://192.168.0.154:3306/test", "root", "YES"); /////报错} catch (Exception e) {e.printStackTrace();}return con; // 返回Connection对象}// ///////////////public static void insertData() {Manipulate c = new Manipulate();con = c.getConnection();try {sql = con.createStatement();sql.executeUpdate(" insert into stu values(1,'Shara' ) ;");Log.i("插入信息", "(1,'Shara' )");} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}// /insertdata// ////////////////////public static void selectData() {Manipulate c = new Manipulate();con = c.getConnection();try {sql = con.createStatement();res = sql.executeQuery("select * from stu;");while (res.next()) {// System.out.println(res.getString("id"));// System.out.println(res.getString("name"));// System.out.println("-------------------\n"); /////均正确sb.append(res.getString("id") + " " + res.getString("name")+ "\n"); // /////////均正确Log.i("查询信息", sb.toString());}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}// /Test
<uses-permission android:name="android.permission.还需要添加权限和mysql的jdbc(可自行下载)。前提是手机和电脑连接的都是同一个wifi
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/btn_insert" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="插入" /> <Button android:id="@+id/btn_select" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="查询" /></LinearLayout>
更多相关文章
- Android(安卓)创建activity流程-基于api28
- Android资源加载机制
- ActivityThread-activity启动分析
- android 铃声设置流程讲解
- Android(安卓)Studio重写方法时参数显示异常的解决方法
- android通过usb读取U盘的方法
- Android手机亮屏流程分析
- Android(安卓)Studio 解析XML的三种方法
- Android(安卓)判断应用是否安装