黑马程序员技术交流社区
标题:
发个帖子
[打印本页]
作者:
冯超
时间:
2013-4-2 12:43
标题:
发个帖子
今天复习一下以前学的jdbc,发现了一个关于静态方法能访问非静态成员的疑惑。
package dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mysql.jdbc.Connection;
import jdbc.JdbcUtils;
public class test {
/**
* @param args
* @throws SQLException
*/
static Connection conn = null;
Statement st = null;
ResultSet rs = null;
static String sql = "select * from user";
public static void main(String[] args) {
// TODO Auto-generated method stub
//2.创建连接
try {
//2.创建连接
conn = (Connection) JdbcUtils.getConnection();
//3.创建语句
Statement st = conn.createStatement();
//4.执行sql语句
ResultSet rs = st.executeQuery(sql);
} catch (SQLException e) {
} finally {
}
}
}
复制代码
Statement st = null;
ResultSet rs = null;
这两句我并没有定义为静态的,但是却在testMain函数中,居然没报错,我以为是对象的原因。但是我写了一个person类,在进行的类似的测试时候,发现依然不行,所以想在论坛中问问为什么Statement ,ResultSet ,为什么可以定义为默认的而可以被静态方法可以访问。
作者:
王洪宇
时间:
2013-4-14 18:32
package dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mysql.jdbc.Connection;
import jdbc.JdbcUtils;
public class test {
/**
* @param args
* @throws SQLException
*/
static Connection conn = null;
Statement st = null;
ResultSet rs = null;
static String sql = "select * from user";
public static void main(String[] args) {
// TODO Auto-generated method stub
//2.创建连接
try {
//2.创建连接
conn = (Connection) JdbcUtils.getConnection();
//3.创建语句,这里重新声明了一个st,不是类成员的st,你把Statement去掉看看报不报错
Statement st = conn.createStatement();
//4.执行sql语句,同上。
ResultSet rs = st.executeQuery(sql);
} catch (SQLException e) {
} finally {
}
}
}
复制代码
我在代码中添加了注释,请楼主测试一下是不是这个问题。
作者:
黄玉昆
时间:
2013-4-14 22:36
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2