我一直在尝试理解 DAO 模式,但现在我没有成功。可能是因为我无法将我在互联网上找到的内容应用于我尝试解决的问题。我想封装数据库,把事情做好。
到目前为止我已经这样做了,但我觉得它非常没用。
我的 DTO 课程:
public class PersonDTO{
final public static String TABLE = "PEOPLE";
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我的“道”
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
public class PersonDAO {
private Connection connection;
private DTO dto;
private Statement stmt = null;
private String tableName;
private Integer id;
public PersonDAO() {
}
public PersonDTO getPerson(int id) {
connection = ConnectionFactory.getInstance();
PersonDTO person = new PersonDTO();
try {
stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM " + PersonDTO.TABLE +" WHERE ID = '"+id+"'");
person.setId(rs.getInt("id"));
person.setName(rs.getString("age"));
} catch (SQLException e) {
e.printStackTrace();
}
closeConnection();
return person;
}
public void save() {
throw new UnsupportedOperationException(); //not implemented yet
}
public void update() {
throw new UnsupportedOperationException(); //not implemented yet
}
public void delete() {
throw new UnsupportedOperationException(); //not implemented yet
}
public List<DTO> getDTO(String filter) {
return null;
}
protected void closeConnection() {
try {
connection.close();
connection = null;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
我无法得到:
- 应该是DTO类和DAO类的关系。
- DAO 类必须具有从数据库中获取信息的方法吗?
- 什么是 DTO 类,为什么不使用“Person”类呢?
这很令人沮丧。如有任何帮助,我将不胜感激。