ORM
对从数据库中取出的零散数据进行封装管理
封装零散数据
在数据库中取出的数据用字符串变量保存,当再取出时会覆盖,进而之前的数据丢失,无法再调用。
这里将多个数据封装进一个对象里,再将多个对象放入一个集合里,方便后续使用
代码
testORM.java
package jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class testORM {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
List<register> list = new ArrayList<register>();
try {
connection = dbutils.GetConnection();
statement = connection.prepareStatement("select * from register");
resultSet = statement.executeQuery();
while(resultSet.next()) {
String str1 = resultSet.getString(1);
String str2 = resultSet.getString(2);
String str3 = resultSet.getString(3);
register register1 = new register(str1,str2,str3);
list.add(register1);
}
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
for (register register2 : list) {
System.out.println(register2);
}
dbutils.CloseAll(connection, statement, resultSet);
}
}
封装工具类 连接数据库,关闭相关对象:dbutils.java
package jdbc;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//重用性方案
import java.util.Properties;
public class dbutils {
private static final Properties PROPERTIES=new Properties();
static {//类加载,执行一次
InputStream is = dbutils.class.getResourceAsStream("/db.properties");
try {
PROPERTIES.load(is);
Class.forName(PROPERTIES.getProperty("driver"));
} catch (ClassNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
}
public static Connection GetConnection() {
Connection connection = null;
try {
connection = DriverManager.getConnection(
PROPERTIES.getProperty("url"),
PROPERTIES.getProperty("user"),
PROPERTIES.getProperty("password")
);
}
catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return connection;
}
public static void CloseAll(Connection connection, Statement statement,ResultSet resultSet) {
try {
if (resultSet!=null) {
resultSet.close();
}
if (statement!=null) {
statement.close();
}
if (connection!=null) {
connection.close();
}
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
参数配置文件:db.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/login
user=root
password=981002
数据封装类,要查询的表为register,register.java
package jdbc;
public class register {
private String id;
private String user;
private String password;
public register() {
}
public register(String id, String user, String password) {
super();
this.id = id;
this.user = user;
this.password = password;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "register [id=" + id + ", user=" + user + ", password=" + password + "]";
}
}