当前位置:  技术问答>java相关

JDBC连接MYSQL,可以进行插入操作,但查询却不能进行

    来源: 互联网  发布时间:2017-03-29

    本文导语:  用的MYSQL版本是3.23.52, 驱动装的是mysql-connector-java-3.0.2-beta-bin.jar。 连接应该是没有问题的,因为用INSERT可以写入数据库。 但用 String queryString = " SELECT ID,Name FROM test"却不能检索数据表。 具体代码如下: public ...

用的MYSQL版本是3.23.52,
驱动装的是mysql-connector-java-3.0.2-beta-bin.jar。
连接应该是没有问题的,因为用INSERT可以写入数据库。
但用 String queryString = " SELECT ID,Name FROM test"却不能检索数据表。

具体代码如下:

public class JDBCTest {
  private static final String DRIVER_NAME = "org.gjt.mm.mysql.Driver";

  private static final String DB_URL="jdbc:mysql://localhost/kelvin?user=root&password=666666";

  private static final String QUERY= "SELECT ID,Name FROM test";
  private static final String insertSql= "insert into test values(133,'aaa')";

  public static void main(String[] args) {

      try {
        try {
          Class.forName("com.mysql.jdbc.Driver");
        }
       catch (ClassNotFoundException ex) {ex.printStackTrace();
        }
        Connection conn = DriverManager.getConnection(DB_URL);
        Statement stmt = conn.createStatement();
        stmt.execute(insertSql);
        ResultSet rslt = stmt.executeQuery(QUERY);

        while (rslt.next() ) {
          String name = rslt.getString("Name");
          int id = rslt.getInt("ID");
          System.out.println(id+"1111  " +name);
        }
        rslt.close();
        stmt.close();
        conn.close();
        System.out.println("Success ! Connected to database");
      }
      catch (SQLException ex) {
        ex.printStackTrace();
      }
  }
}


运行报错:
java.sql.SQLException: Column 'Name' not found.

at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:2862)

at com.mysql.jdbc.ResultSet.getString(ResultSet.java:1990)

at com.kelvin.security.installtest.JDBCTest.main(JDBCTest.java:50)


若是用   (50)  String name = rslt.getString(2);
         (51)   int id = rslt.getInt(1);
则出现:
java.sql.SQLException: Invalid value for getInt() - 'qpp'

at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:1323)

at com.kelvin.security.installtest.JDBCTest.main(JDBCTest.java:51)

我很奇怪为什么写数据库可以,而读却不行?insertSql= "insert into test values(133,'aaa')"这条语句可以执行。select时也检索到了记录条数,但我就是得不到响应的列。


|
如果字段已经存在,则把是数据库关键字的"Name"用[]括起来,如上

|
大哥,注意一下大小写!!

Column 'Name' not found.明白告诉你没有这个列。
能把你的数据库表结构贴上来吗??

|
Statement stmt = conn.createStatement();
有问题:
 因为创建默认语句句柄时,所产生结果集仅支持向前滚动,所以呢你的创建这样的语句句柄(支持可滚动(两个方向)和可更新的结果集)
改为:Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
你试试看!!!!!


|
不妨这样试一下:
  你在创建两个语句句柄:一个插入行的语句句柄,一个是检索结果的语句句柄
代码如下:
  public class JDBCTest {
  private static final String DRIVER_NAME = "org.gjt.mm.mysql.Driver";

  private static final String DB_URL="jdbc:mysql://localhost/kelvin?user=root&password=666666";

  private static final String QUERY= "SELECT ID,Name FROM test";
  private static final String insertSql= "insert into test values(133,'aaa')";

  public static void main(String[] args) {

      try {
        try {
          Class.forName("com.mysql.jdbc.Driver");
        }
       catch (ClassNotFoundException ex) {ex.printStackTrace();
        }
        Connection conn = DriverManager.getConnection(DB_URL);
        Statement stmt_insert = conn.createStatement();
        stmt_insert.execute(insertSql);
        Statement stmt_query = conn.createStatement   (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

        ResultSet rslt = stmt_query.executeQuery(QUERY);

        while (rslt.next() ) {
          String name = rslt.getString("Name");
          int id = rslt.getInt("ID");
          System.out.println(id+"1111  " +name);
        }
        rslt.close();
        stmt_insert.close();
        stm_qurey.close();
        conn.close();
        System.out.println("Success ! Connected to database");
      }
      catch (SQLException ex) {
        ex.printStackTrace();
      }
  }
}


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 请问连接本机数据库的JDBC,和连接远程的JDBC有没有区别?
  • mysql jdbc连接mysql数据库步骤及常见参数详解
  • 请问JDBC和JDBC-ODBC有什么区别?是不是连接的时候也有所不同。
  • jdbc 连接sybase11.9时出错,错误提示:JZ0D5: 装载协议 com.sybase.jdbc2.tds.tds 时出错
  • java开发数据库,一般是用JDBC-ODBC桥,还是JDBC驱动程序连接数据库呢?
  • 通过JDBC连接数据库,执行抄作后,关闭了连接,数据服务器端的进程还在,怎麽处理?
  • 怎么直接通过JDBC连接oracle?
  • 请问通过纯jdbc能否联 sqlserver7.0,注意不是通过jdbc-odbc桥,如果能的话,driver在哪里下载?连接的语句怎么写?
  • 急,jsp如何使用jdbc连接DB2,解决就结贴
  • 请教: Javaswing 和 Oracle JDBC thin 连接的问题
  • 要用jdbc连接两个用户怎么办?
  • jsp连接sql server2000数据库,用odbc、jdbc那种方案比较好!
  • Linux下,jdbc怎么连接Sybase数据库啊?
  • 不想通过jdbc-odbc桥,连接数据库,该怎么做?
  • 如何用SQLServer2k-JDBC连接数据库?
  • JDBC连接局域网中SQLserver怎么写?
  • 哪儿可以下载到连接Interbase 的JDBC驱动程序?
  • 用jdbc连接数据库是如何配置odbc
  • 关于用jdbc连接sqlserver2000的问题(在线)
  • jdbc连接sql server 2000 出现
  • 高性能JDBC驱动 DataDirect JDBC Drivers
  • 关于JDBC-ODBC和JDBC的区别
  • JDBC驱动代理 HA-JDBC
  • 访问MS SQL能不能直接用JDBC,如果能相应的JDBC Driver从哪里得到?
  • easy question:jdbc与jdk需要分别安装吗。如何设置jdbc的classpath
  • JDBC 工具包 Midao JDBC
  • JDBC 驱动程序 Drizzle-JDBC
  • JDBC执行日志 JDBC Logger
  • OLAP数据源的JDBC驱动 Jdbc4Olap
  • 讨论:纯java的JDBC与JDBC-ODBC桥的比较?那种效率高、快?(面向服务端)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3