Statement sta=con.createStatement();
ResultSet result=sta.executeQuery("Select * from class");1.上面的这段代码中Statement是一个接口,为什么可以直接调用它的方法executeQuery?
2.而sta.executeQuery("Select * from class");返回的是一个ResultSet,那么ResultSet result=sta.executeQuery("Select * from class");是不是就意味着实例化了一个ResultSet??
3.接口中的方法不都是abstract的吗?为什么不实现这些方法就可以直接调用呢??希望大家能详细地说说,3Q先!!!!!!!!!!!!!
ResultSet result=sta.executeQuery("Select * from class");1.上面的这段代码中Statement是一个接口,为什么可以直接调用它的方法executeQuery?
2.而sta.executeQuery("Select * from class");返回的是一个ResultSet,那么ResultSet result=sta.executeQuery("Select * from class");是不是就意味着实例化了一个ResultSet??
3.接口中的方法不都是abstract的吗?为什么不实现这些方法就可以直接调用呢??希望大家能详细地说说,3Q先!!!!!!!!!!!!!
解决方案 »
- 我想问下,(在solaris下)如何使用java程序调出dos窗口来实现ping ip的功能?(注意,要弹出dos窗口显示ping信息)。谢谢。
- 怎样从子线程当中得到值?
- String 类的getBytes()方法问题
- 小弟一个JAVA批量生成文件的小问题,请各位给个思路
- java中使用Runtime.getRuntime().exec调用mysqldump的问题
- 为什么我的程序中calendar.get(Calendar.YEAR)得到的年份总是错误的啊!
- JAVA里面有用到win32API吗?
- JFrame和JPanel是两个什么样的类,有什么区别!
- 第一个进来给100分!哈哈,高兴!!
- 怎么样判断一个类是否已经被实例化,并关闭这个实例,而且保证系统不退出(详情见内)
- jsp写入sql server乱码问题
- Java将中文转成unicode存入到文本文件
那么就可以用接口Statement调用在内部类里实现的方法拉。
如果能用接口类定义并用其子类来实现对象尽量这样做,
因为这样安全些,你调用该对象时人家根本就不知道你是怎么实现的,当然有些方法接口中没有
必须强制转换成子类对象.
createStatement
Statement createStatement()
throws SQLException创建一个 Statement 对象来将 SQL 语句发送到数据库。没有参数的 SQL 语句通常使用 Statement 对象执行。如果多次执行相同的 SQL 语句,使用 PreparedStatement 对象可能更有效。
使用返回的 Statement 对象创建的结果集在默认情况下类型为 TYPE_FORWARD_ONLY,并带有 CONCUR_READ_ONLY 并发级别。
返回:
一个新的默认 Statement 对象
抛出:
SQLException - 如果发生数据库访问错误
//javadoc:语句返回单个 ResultSet 对象。
executeQuery
ResultSet executeQuery(String sql)
throws SQLException执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。 参数:
sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句
返回:
包含给定查询所生成数据的 ResultSet 对象;永远不能为 null
抛出:
SQLException - 如果发生数据库访问错误或者给定 SQL 语句生成单个 ResultSet 对象之外的任何其他内容
打开jdbc驱动可以找到
public class org.postgresql.jdbc2Connection extends org.postgresql.jdbc2.AbstractJdbc2Connection implements java.sql.Connection {
...
}
其他几个接口的实现也可以相应的找到,明白了??!