本人初学java,现在学到jdbc的内容,有问题向大家请教:Class.forName("com.mysql.jdbc.Driver").newInstance();经查API文档,这句是创造了一个com.mysql.jdbc.Driver的实例,后面也可以调用,我的问题是这个实例创造在了什么位置,为什么没有名字亦可以调用呢?conn = DriverManager.getConnection("jdbc:mysql://localhost/menagerie?user=root&password=root");这句就是成功调用的语句。Statement stmt = null;
ResultSet rs = null;然后这里的问题是 Statement 和 ResultSet 都是接口,是不能实例化的。这里怎么看怎么像是实例化了,望明白人指点。stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM pet");
if (stmt.execute("SELECT * FROM pet")) {
rs = stmt.getResultSet();
}这里基本上明白,就是有一点:如何能够显示出表pet里面的所有内容呢?查API不得。自己写的是这样的:
System.out.println(rs);当然是不对的。望高人指点。
上面的代码来源于mysql的文档,原来是有try catch的,为了简洁 ,我去掉了,最后一句是我自己写的。
ResultSet rs = null;然后这里的问题是 Statement 和 ResultSet 都是接口,是不能实例化的。这里怎么看怎么像是实例化了,望明白人指点。stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM pet");
if (stmt.execute("SELECT * FROM pet")) {
rs = stmt.getResultSet();
}这里基本上明白,就是有一点:如何能够显示出表pet里面的所有内容呢?查API不得。自己写的是这样的:
System.out.println(rs);当然是不对的。望高人指点。
上面的代码来源于mysql的文档,原来是有try catch的,为了简洁 ,我去掉了,最后一句是我自己写的。
去网上查一下吧,挺简单。
这句话也可以理解成装载对mysql数据库访问的驱动吧, 当然记住就行,
然后这里的问题是 Statement 和 ResultSet 都是接口,是不能实例化的。这里怎么看怎么像是实例化了,望明白人指点。 查API
用于执行静态 SQL 语句并返回它所生成结果的对象。 这就是API里面的解释啊,没理解上去哈!!!还是希望有高手明说一下!
要想了解一个东西具体是什么样的,问不是办法,真正的办法的去看源码,或者弄一个有源码的驱动,然后自己去DEBUG
等你明白了反射,和接口编程,上面问题就明白了!
String username=rs.getString("username");
String password=rs.getString("password");
}
实例化 是 new Statement();这里只声明了一个接口,然后指向了它的一个可用实现而已。
int numberOfColumns = rsmd.getColumnCount();
while(rs.next()){
for(int i = 1 ;i<=numberOfColumns ;i++){
System.out.print(rs.getString(i));
}
System.out.println();
}
其实很简单的,楼主网上查查就行了,或者多看看API,当然上面的代码不是很好,为了方便理解就这样写了。