jdbc-安卓新手用JDBC连接mysql时一直报错

问题描述

安卓新手用JDBC连接mysql时一直报错

抛出异常在logcat提示:驱动连接成功,数据库连接失败Could not find class 'javax.naming.StringRefAddr', referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.storeTo。求大神帮忙,错误围绕好长时间了

连接代码

 //连接数据库
 public static Connection getCon()
 {
  Connection conn = null;
  try {
   Class.forName("org.gjt.mm.mysql.Driver");
   System.out.println("驱动连接成功");
  } catch (ClassNotFoundException e1) {
   // TODO Auto-generated catch block
   System.out.println("驱动连接失败");
  }
     String dbUrl = "jdbc:mysql://localhost:3306/student";
     String username = "root";
     String psw = "1234";
  try {
   conn = DriverManager.getConnection(dbUrl,username,psw);
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   System.out.println("数据库连接失败"+e);
  }
  return conn;
 }

解决方案

参考Connecting to MySQL from Android with JDBC
把数据库的部分放到AsyncTask或者Thread里面

public void mysql() {

    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    thrd1 = new Thread(new Runnable() {
        public void run() {
            while (!Thread.interrupted()) {
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e1) {

                }
                if (con == null) {
                    try {
                        con = DriverManager.getConnection("jdbc:mysql://192.168.1.45:3306/deneme", "ali", "12345");
                    } catch (SQLException e) {
                        e.printStackTrace();
                        con = null;
                    }

                    if ((thrd2 != null) && (!thrd2.isAlive()))
                        thrd2.start();
                }
            }
        }
    });
    if ((thrd1 != null) && (!thrd1.isAlive())) thrd1.start();

    thrd2 = new Thread(new Runnable() {
        public void run() {
            while (!Thread.interrupted()) {

                if (con != null) {
                    try {
                     //   con = DriverManager.getConnection("jdbc:mysql://192.168.1.45:3306/deneme", "ali", "12345");
                        Statement st = con.createStatement();
                        String ali = "'fff'";
                        st.execute("INSERT INTO deneme (name) VALUES(" + ali + ")");
                      //  ResultSet rs = st.executeQuery("select * from deneme");
                      //  ResultSetMetaData rsmd = rs.getMetaData();
                      //  String result = new String();

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

                    } catch (SQLException e) {
                        e.printStackTrace();
                        con = null;
                    }

                    try {
                        Thread.sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                } else {
                    try {
                        Thread.sleep(300);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    });
}
时间: 2024-11-03 14:39:37

jdbc-安卓新手用JDBC连接mysql时一直报错的相关文章

连接MySql超时断开报错问题

  使用Mysql数据库时,最让人头疼的一个问题就是不定时会出现连接报错异常Exception,类似的Exception如下(Hibernate为例): ? 1 2 3 4 5 6 7 8 9 10 org.hibernate.util.JDBCExceptionReporter - SQL Error:0, SQLState: 08S01 org.hibernate.util.JDBCExceptionReporter - The last packet successfully receiv

mysql jsp-jsp连接mysql时运行sql语句失败

问题描述 jsp连接mysql时运行sql语句失败 四月 01, 2016 12:51:30 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [jsp] in context with path [/Test] threw exception [An exception occurred processing JSP page /register.jsp at li

使用工具连接mysql时的错误提示

今天,同事在使用工具连接mysql时,发现了一个错误提示,如下 有问题,就看错误日志,同样发现了一条错误信息,如下 [ERROR] Incorrect definition of table mysql.proc: expected column 'comment'at position 15to have type text, found type char(64). 说是mysql.proc这个表的comment字段类型应该为text,但是却是char(64). 按照错误信息的提示,只要将c

mysql-在Windows32进行自定义环境搭建测试PHP连接MySQL时总是提示Fatal error: Call to undefined function

问题描述 在Windows32进行自定义环境搭建测试PHP连接MySQL时总是提示Fatal error: Call to undefined function 已经打开extension=PHP_mysql和extension=PHP_mysqli用phpmyadmin测试显示PHP配置错误 可是找不到错误 解决方案 PHP连接Mysql数据库报错:Fatal error: Call to undefined function mysql_connect()Fatal error: Call

jdbc连接-我用JDBC连接数据库的时候,添加修改数据时候报错。

问题描述 我用JDBC连接数据库的时候,添加修改数据时候报错. 解决方案 你看第一行提示的信息是不支持Object类型:你可以定义一个字符串数组然后将需要的参数放到这个数组里的:而且你下面的pre.setObject(i+1o[i]);//假如你的数据是一个整型的那Object就不是它了你可以说它是Object的但是Object不是它: 如果回答对您有帮助请采纳 解决方案二: 很明显 jdbc不支持执行object数据操作 解决方案三: 错误为不支持java类型 object,应该是你的类型 p

创建sftp连接时报错-sftp连接时,报错invalid server's version string

问题描述 sftp连接时,报错invalid server's version string 连接方法,我看了一下和网上一样.但这种错误在网上没有搜索到.有遇到这个错误的,给点提示,谢谢.public ChannelSftp connect(String host int port String usernameString password) {ChannelSftp sftp = null;try {JSch jsch = new JSch();jsch.getSession(usernam

使用mysql monitor 登录时总是报错1064, 我输入的命令哪里不对么?

问题描述 使用mysql monitor 登录时总是报错1064, 我输入的命令哪里不对么? 解决方案 直接命令行开始的时候 mysql -u root -p

.net 连接阿里云上的mysql数据库一直报错

问题描述 .net 连接阿里云上的mysql数据库一直报错 代码如下: using MySql.Data; using MySql.Data.MySqlClient; static void Main(string[] args) { string str = "Database=chu;Data Source=rdsja29d3bs0j0z1jg55.mysql.rds.aliyuncs.com;Port=3306;User Id=XXX;Password=XXX;Charset=utf8&q

c++-为什么连接成.exe文件时老报错?

问题描述 为什么连接成.exe文件时老报错? 大神,我按照网上说的那样做了,为什么还老是报错,改怎么办? 解决方案 贴代码比较好,拍照不方便,连行号都看不到 解决方案二: 真的想解决问题就把截图发上来,拍照不会有人看的= =