Java和SQL代码中Null的含义

Java和SQL代码中Null的含义,java,Java,嗨,我对这段代码有点困惑,我只是想知道为什么objectConnection,ResultSet和PreparedStatement的值是null?有人能帮我解释一下下面每个代码的功能吗?为什么它们是空的 public class loginForm extends javax.swing.JFrame { Connection conn=null; ResultSet rs=null; PreparedStatement pst=null; public

嗨,我对这段代码有点困惑,我只是想知道为什么object
Connection
ResultSet
PreparedStatement
的值是
null
?有人能帮我解释一下下面每个代码的功能吗?为什么它们是空的

public class loginForm extends javax.swing.JFrame {

    Connection conn=null;

    ResultSet rs=null;

    PreparedStatement pst=null;

    public loginForm() {
        initComponents();
        conn = SqlConnnector.ConnectDb();
    }
}

它们被设置为null以显式显示。另一种方法是这样声明它们:

Connection conn;
ResultSet rs;
PreparedStatement pst;
所有这些语句所做的任何一种方式都是在内存中为该对象分配一个空间。稍后,它们将按照以下行进行初始化:

conn = SqlConnector.ConnectDb();

您希望在类的各种方法中访问类级别的变量;所以按照惯例,您将初始值设置为null。在这种情况下,这将是最好的解决方案,因为除非您硬编码创建到数据库的连接所需的信息,否则无法将它们设置为任何有用的值


您可以使用包含
连接
对象的
conn
变量创建
PreparedStatement
对象以存储在变量
pst
中,然后使用该
pst
创建存储在变量
rs
中的结果集对象。然后,您可以循环通过
rs
对象来获取数据。

连接、ResultSet和PreparedStatement是实例变量如果您更熟悉术语“指针”,那么它们是什么,并为它们指定空值就像说这个指针不指向对象(实例)到目前为止。

显然
SqlConnector.ConnectDb()
用于获取数据库连接对象。除了
null
,没有其他字段被设置为任何其他字段,这就是为什么它们是
null
。这里也没有SQL代码。顺便说一句,
LoginForm
中与数据库相关的元素没有任何关系;)它们实际上是实例变量,而不是类(那些是静态的)。这些变量隐式设置为null,无需初始化为null。任务是多余的。是的,你是对的;我忘了正确的术语。谢谢你的更正。对null的赋值是多余的,但我想提醒大家它们是null。