使用插入和更新重载函数

时间:2016-12-13 12:42:18

标签: java

我正在尝试使用netbeans中的mysql数据库开发一个java学生注册应用程序,

4 个答案:

答案 0 :(得分:1)

您的问题实际上是一个错误的 mental 模型。

学生添加到数据库完全没有与更新已存在数据库中的记录的某些“现有”学生的记录相同。

这是两个完全不同的活动;并且你的所有设计/代码应该非常清楚。

所以,即使在技术上可能有两个具有相同签名但返回类型不同的方法;在这里做这件事仍然没有意义。

因为你的两种不同的方法做了不同的事情,所以它们甚至不应该有相同的名字!您最好重命名两者,例如createStudentupdateExistingStudent

答案 1 :(得分:0)

方法签名在类中必须是唯一的。要重载该方法,您必须更改其中一种方法的参数。更改返回类型不起作用。 你确定,你下面的sql中的`有效吗?

答案 2 :(得分:0)

在同一个类中,您不能拥有两个具有确切签名的方法,必须有所不同,否则编译器将无法知道您正在调用哪个方法。

如果要使用相同的方法更新和插入学生,则应使用一种方法检查该学生是否存在,然后在插入或更新之间进行选择。但是不要把它称为addStudent,你应该把它称为addOrUpdate,upsert(update + insert)或类似的东西。

答案 3 :(得分:0)

作为建议,您可以执行检查以查看您的数据库中是否已存在学生。如果学生存在,请更新他/她的记录,如果没有,请添加新记录。您可以使用该ID执行检查,因为它应该是唯一的。并尝试将数据库连接代码分离到按需提供连接的实用程序类(如果需要,我可以与您共享)。最后,我更喜欢PreparedStatement到Statement ...保持SQL Query和通用代码干净。祝你好运