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

activity_main.xml

<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>





更多相关文章

  1. Android(安卓)创建activity流程-基于api28
  2. Android资源加载机制
  3. ActivityThread-activity启动分析
  4. android 铃声设置流程讲解
  5. Android(安卓)Studio重写方法时参数显示异常的解决方法
  6. android通过usb读取U盘的方法
  7. Android手机亮屏流程分析
  8. Android(安卓)Studio 解析XML的三种方法
  9. Android(安卓)判断应用是否安装

随机推荐

  1. Android(安卓)进程回收之LowMemoryKiller
  2. Android(安卓)SDK Manager 和 AVD Manage
  3. 最简单的基于FFmpeg的移动端例子附件:Andr
  4. Android(安卓)Tab 选项卡的简单实现
  5. 漫谈Android安全框架
  6. 使用adb工具访问sqlite数据库
  7. android 应用程序数据共享shareuserid篇+
  8. android 打开/关闭 移动网络
  9. android studio 在xp/win8上安装,亲测
  10. TextView的XML属性说明全析 ---Android基