📜  JDBC 使用模型对象和单例类(1)

📅  最后修改于: 2023-12-03 14:43:05.557000             🧑  作者: Mango

JDBC 使用模型对象和单例类

JDBC(Java Database Connectivity)是一个Java API,用于与各种关系型数据库进行通信和操作。在JDBC中,使用模型对象和单例类可以提高代码复用性和可维护性。

模型对象

在JDBC中,模型对象用于封装与数据库表中行对应的Java对象。模型对象包含了表中各个字段的成员变量以及对应的getter和setter方法。以下是一个示例:

public class User {

    private int id;
    private String firstName;
    private String lastName;
    private String email;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

}

在使用JDBC进行数据库操作时,我们可以将结果集中的每一行数据封装到一个模型对象中。

单例类

在JDBC中,单例类用于提供数据库连接和关闭等公共方法。单例类只能有一个实例,这样可以确保所有的数据库连接都是同一个。

以下是一个示例:

public class JDBCUtils {

    private static Connection conn = null;

    private JDBCUtils() {}

    public static Connection getConnection() {
        if (conn == null) {
            try {
                Class.forName("com.mysql.jdbc.Driver");
                String url = "jdbc:mysql://localhost:3306/test";
                String username = "root";
                String password = "root";
                conn = DriverManager.getConnection(url, username, password);
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }
        }
        return conn;
    }

    public static void closeConnection() {
        if (conn != null) {
            try {
                conn.close();
                conn = null;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

在JDBCUtils类中,getConnection方法用于获取数据库连接,closeConnection方法用于关闭数据库连接。在获取数据库连接时,使用了懒加载的方式,确保只有在需要使用连接时才会创建连接。

使用模型对象和单例类进行数据库操作

在JDBC中,使用模型对象和单例类进行数据库操作非常简单。首先获取数据库连接,然后执行SQL语句并将结果封装到模型对象中,最后关闭数据库连接。

以下是一个示例:

public class UserDao {

    public List<User> getAllUsers() {
        Connection conn = JDBCUtils.getConnection();
        List<User> users = new ArrayList<>();
        try {
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM user");
            while (rs.next()) {
                User user = new User();
                user.setId(rs.getInt("id"));
                user.setFirstName(rs.getString("first_name"));
                user.setLastName(rs.getString("last_name"));
                user.setEmail(rs.getString("email"));
                users.add(user);
            }
            rs.close();
            stmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeConnection();
        }
        return users;
    }

}

在UserDao类中,我们使用JDBCUtils类获取了数据库连接,然后执行SQL语句查询所有用户信息,并将结果封装到User对象中。最后关闭数据库连接。这样,我们就可以在整个应用中复用这些代码了。

以上就是JDBC使用模型对象和单例类的介绍。使用模型对象和单例类可以提高代码复用性和可维护性。