首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android Studio通过JDBC访问MYSQL

Android Studio通过JDBC访问MYSQL
EN

Stack Overflow用户
提问于 2015-05-07 10:17:47
回答 3查看 10.5K关注 0票数 1

我尝试使用JDBC连接MYSQL已经有一段时间了,但一直没有成功。我已经设置了包含一些信息的数据库,并在libs文件夹中添加了mysql-connector-java-5.1.35-bin库。清单中还添加了访问Internet和网络的权限。我在Windows7中运行Android Studio。到目前为止,它没有语法错误,但在我的模拟器中,我收到了这样的消息:

用户‘Error:java.sql.SQLException:Access’@‘192.168.56.101’的测试根被拒绝(使用密码:NO)

我的工作哪一部分错了?!我已经在下面附上了我的代码。

代码语言:javascript
复制
public class MainActivity extends Activity {
 //private static final String url = "jdbc:mysql://<server>:<port>/<database>";
    public static final String LISTEN_ACTIVITY = "listenActivity";


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        testDB();
    }

    public void testDB() {

        TextView tv = (TextView)this.findViewById(R.id.txtv);

        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            Log.i("Android", " MySQL Connection ok");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/k_sql1", "root", "");
 //         System.out.println("Database connection success");
          Log.d("Android2","Line 2");
            String result = ("");
            Log.d("Android3", " Line 3");
            Statement st = con.createStatement();

            ResultSet rs = st.executeQuery("select * from kpeople");

            ResultSetMetaData rsmd = rs.getMetaData();

            while (rs.next()) {
                result += rsmd.getColumnName(1) + ": " + rs.getInt(1) + "\n";
                result += rsmd.getColumnName(2) + ": " + rs.getString(2) + "\n";
                result += rsmd.getColumnName(3) + ": " + rs.getString(3) + "\n";
            }

            tv.setText(result);

        } catch (Exception e) {
            e.printStackTrace();
            tv.setText("Test Error:"+e.toString());
            Log.w("Android-system","system get connection");
        }
    }
 }

这里有很多专家,请帮我解决一下。谢谢你们。

EN

回答 3

Stack Overflow用户

发布于 2015-05-07 10:21:39

这不是客户的错。您的android设备ip为192.168.56.101。默认情况下,MySQL服务器根帐户可以通过本地主机进行访问。您应该更改根用户访问权限或在MySQL中创建另一个帐户。

票数 0
EN

Stack Overflow用户

发布于 2015-05-25 13:17:06

事实上有两个问题,一个是MYSQL权限的问题,不允许我访问数据库,另一个是编码问题。在我的代码中,字符串result = ("");的存在是没有意义的,通过从代码中删除它,连接也没有问题。在这里会出现的问题是如何让我的代码有一个自动更新,意味着任何新的数据进入我的数据库,它也会自动出现在我的应用程序中,有没有自动更新的想法…

票数 0
EN

Stack Overflow用户

发布于 2016-02-09 01:07:20

在您的MySQL中,为应用程序创建一个范围为'%‘的用户,例如

创建由‘password’标识的用户'androidapp'@'%‘;

这意味着,它可以从任何地方'%‘登录,如果你只使用'localhost’,它不能

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30090829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档