gpt4 book ai didi

java - 不同类中的通用接口(interface)

转载 作者:行者123 更新时间:2023-11-30 02:00:41 25 4
gpt4 key购买 nike

在我的项目中,我必须经常使用数据库,我决定创建一个接口(interface),然后在不同的类中实现它,因为它们都将使用相同的方法。

public interface Project<E> {

void createTable();

void insert(E obj);

E select(int id);

void delete(int id);

void update(E obj, int id);

}

我尝试在我的一个类(class)中实现它,如下所示:

public class Person implements Project {

//createTable method
//select method
//delete method

public void insert(Person p) {
Connection connection = null;
PreparedStatement ppStm = null;

try {
connection = ConnectionConfiguration.getConnection();
ppStm = connection.prepareStatement("INSERT INTO person (first_name, last_name)"
+ "VALUES (?,?,?)");
ppStm.setString(1, p.getName());
ppStm.setString(2, p.getLname());
ppStm.executeUpdate();

} catch(Exception e) {
e.printStackTrace();
} finally {

if (ppStm != null){
try {
ppStm.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

//update method similar to insert();

}

问题是,当我尝试重写 insert() 和 update() 方法时,它会显示一条错误消息“该方法必须重写或实现父类(super class)型方法”。我使用泛型是因为我认为它可以在我的代码中工作,因为我有不同类的不同对象来实现它,但我不理解我猜的正确实现。我想知道如何更改我的接口(interface)或其在类中的实现,以便它可以工作。此外,当我删除 @Override 时,它​​会删除错误,但仍然显示我没有实现所有方法。预先感谢您。

最佳答案

您可以使用DAO pattern

public interface DAO<T> {

void createTable();

void insert(T t);

T select(int id);

void delete(int id);

void update(T t, int id);
}

实现

class PersonDAO implements DAO<Person> {

@Override
public void createTable() {}

@Override
public void insert(Person person) {
/// Connection connection = null;
/// PreparedStatement ppStm = null;
// Detailed implementation
//// .............
}

@Override
public Person select(int id) {
return null;
}

@Override
public void delete(int id) {}

@Override
public void update(Person person, int id) {}
}

关于java - 不同类中的通用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com