朋友开始学JAVA,刚学到JDBC,找我写个例子给他看看。心想这容易,可是打开eclispe却下不了手——居然只记得有个DataSource、有个ResultSet,然后……然后就没有了。查了Java doc才又想起。唉,看来这些零零散散的东西还是需要记下来才行。
顺便提一下,在JDBC中对于如int,long,boolean等值的返回是不会返回null的。如getInt(),如果数据库中值为NULL,则返回的时候是0。这样我们就 不知道到底数据库中存的是NULL还是0。怎么办呢?幸好JDBC还提供给我们这么一个函数——getObject()。是的,它返回的是一个Object对象,这样我们就可以对这个Object对象进行判空,从而获悉数据库中此值是NULL还是0了。
我们获取这些有可能为NULL的值的时候,可以这么写:
(完)
java 代码
- // 载入驱动
- Class.forName("com.mysql.jdbc.Driver");
- // 建立连接
- Connection con = DriverManager.getConnection(
- "jdbc:mysql://localhost:3306/demo", "test", "test");
- // 创建状态
- Statement stmt = con.createStatement();
- // 执行SQL语句,返回结果集
- ResultSet rs = stmt.executeQuery("SELECT * FROM person");
- // 对结果集进行处理
- while (rs.next()) {
- int id = rs.getInt("id");
- String name = rs.getString("name");
- Integer age = rs.getObject("age") == null ? null : rs.getInt("age");
- System.out.println(id + ": " + name + " " + age);
- }
- // 释放资源
- stmt.close();
- con.close();
顺便提一下,在JDBC中对于如int,long,boolean等值的返回是不会返回null的。如getInt(),如果数据库中值为NULL,则返回的时候是0。这样我们就 不知道到底数据库中存的是NULL还是0。怎么办呢?幸好JDBC还提供给我们这么一个函数——getObject()。是的,它返回的是一个Object对象,这样我们就可以对这个Object对象进行判空,从而获悉数据库中此值是NULL还是0了。
我们获取这些有可能为NULL的值的时候,可以这么写:
java 代码
- Integer age = rs.getObject("age") == null ? null : rs.getInt("age");
(完)