java.sql.SQLException: Access denied for user '192.168.1.101'@'root' (using password: YES),
以前试了一次,调试了很久,还是以失败而告终,最近因为项目需要又重新调试了一次,终于把他拿下,
GRANT ALL PRIVILEGES ON 数据库名.* TO root@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
在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; @Override protected 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() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 // manipulate.insertData(); // Toast.makeText(MainActivity.this, "插入完成", Toast.LENGTH_SHORT) // .show(); // ; fun_insert(); } }); btn_select.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 // manipulate.selectData(); // Toast.makeText(MainActivity.this, "查询完成", Toast.LENGTH_SHORT) // .show(); fun_select(); } }); handler = new Handler() { @Override public 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; } } }; }// //onCreate public void fun_insert() { new Thread(new Runnable() { @Override public void run() { // TODO 自动生成的方法存根 manipulate.insertData(); Message m = new Message(); m.what = 1; // handler.sendMessage(m); } }).start(); }// //fun_insert public void fun_select() { new Thread(new Runnable() { @Override public 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 block e.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 block e.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>