JDBC查询就错了 新手

沉迷沉迷出来 发布于 2016/08/08 22:21
阅读 478
收藏 0
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'id' in 'field list'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at ······


Tets类

package ConsultSet;



import java.sql.ResultSet;
import java.util.Date;
import org.junit.Test;


import com.mysql.jdbc.Connection;


public class JdbcTest {
/**

* ResultSet: 结果集。封装了使用JDBC进行查询的结果
* 1.调用Statement 对象的executequery(SQL) 可以得到结果集
* 2.Result 返回的实际上就是一张数据表,有一个指针指向数据表的第一行的前面
* 可以调用next()方法检测下一行是否有效,若有效该方法返回true,且指针下移
* 相当于Iterator 对象的hasNext() 和next()方法的结合体
* 3. 当指针对位到一行时,可以调用getXxx(index)或getXxx(columnName)
* 获取每一列的值,例如: getInt(1), getString("name")
*4. ResultSet 当然也需要进行关闭
*
*/
@Test
public void testResultSet() {
//获取 id = 4  的 customers 数据包的记录,并打印
Connection conn = null;
java.sql.Statement statement = null;
ResultSet rs = null;
try {
//1.  Connection
conn = JdbcTools.testDriver();
//2. 获取Statement
statement = conn.createStatement();

//3.准备SQL
String sql = "SELECT id, name, email, birth" +
 "FROM customers";
//4. 执行查询得到ResultSet
rs = statement.executeQuery(sql);
//5 出来ResultSet
while(rs.next()) {
int id = rs.getInt(1);
String name = rs.getString("name");
   String email = rs.getString(3);
   Date birth = rs.getDate(4);

System.out.println(id);
System.out.println(name);
System.out.println(email);
System.out.println(birth);
}

//6. 关闭数据库资源

} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcTools.release(rs, statement, conn);
}


}


工具类

package ConsultSet;


import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;


import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Driver;


public class JdbcTools {

public static void release(ResultSet rs,java.sql.Statement statement, Connection conn) {
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement != null){
try {
statement.cancel();
} catch (Exception e) {
e.printStackTrace();
}
}
if(conn != null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

public static Connection testDriver() throws SQLException {
//1.创建一个Driver实现类的对象
Driver driver = new com.mysql.jdbc.Driver();

//2.准备连接数据库的基本信息:url,user,password
String url = "jdbc:mysql://localhost:3306/jiancheng1";
Properties info = new Properties();
info.put("user", "root");
info.put("password", "1234");

//3.调用Driver接口的connect(url, info) 获取数据库连接
   Connection connection = (Connection) driver.connect(url, info);
   return connection;


}



}


加载中
0
Eric_林
Eric_林

 Unknown column 'id' in 'field list'

这种问题搜索一下,答案不要太多了

Eric_林
Eric_林
回复 @沉迷沉迷出来 : 初学jdbc,建议先将sql语句在客户端里执行一遍,没问题了再写代码,减少很多问题
沉迷沉迷出来
沉迷沉迷出来
谢谢你的回答 找到问题了 from前面需要空格 :-(
0
西门向东
西门向东
很明显的错误,数据库表中没有id这个字段!
0
j
java_oschina

Unknown column 'id' in 'field list'

未知的列 id    就是没有id啦....

0
lyle_luo
lyle_luo
是不是从哪抄下来的,表结构不相同?
0
zhinanzhen
zhinanzhen
在第三步准备sql中的链接“+”有问题,用个空格隔开 
0
李巨侠
customers表中没有id这个字段
0
金武飞扬
金武飞扬
注意下小细节就好了
0
颓废的幻想者
颓废的幻想者
遇到这种问题都懒得回答。上网查一下吧,建议你以后职业道路能自己搞定的简单的常识问题就不要提问,这样对你有好处,不然你没有解决问题的能力,不利于你以后的发展,和能力提升,这里没有贬低楼主的意思。
返回顶部
顶部