我正在尝试使用netbeans中的mysql数据库开发一个java学生注册应用程序,
答案 0 :(得分:1)
您的问题实际上是一个错误的 mental 模型。
将新学生添加到数据库完全没有与更新已存在数据库中的记录的某些“现有”学生的记录相同。
这是两个完全不同的活动;并且你的所有设计/代码应该非常清楚。
所以,即使在技术上可能有两个具有相同签名但返回类型不同的方法;在这里做这件事仍然没有意义。
因为你的两种不同的方法做了不同的事情,所以它们甚至不应该有相同的名字!您最好重命名两者,例如createStudent
和updateExistingStudent
。
答案 1 :(得分:0)
方法签名在类中必须是唯一的。要重载该方法,您必须更改其中一种方法的参数。更改返回类型不起作用。 你确定,你下面的sql中的`有效吗?
答案 2 :(得分:0)
在同一个类中,您不能拥有两个具有确切签名的方法,必须有所不同,否则编译器将无法知道您正在调用哪个方法。
如果要使用相同的方法更新和插入学生,则应使用一种方法检查该学生是否存在,然后在插入或更新之间进行选择。但是不要把它称为addStudent,你应该把它称为addOrUpdate,upsert(update + insert)或类似的东西。
答案 3 :(得分:0)
作为建议,您可以执行检查以查看您的数据库中是否已存在学生。如果学生存在,请更新他/她的记录,如果没有,请添加新记录。您可以使用该ID执行检查,因为它应该是唯一的。并尝试将数据库连接代码分离到按需提供连接的实用程序类(如果需要,我可以与您共享)。最后,我更喜欢PreparedStatement到Statement ...保持SQL Query和通用代码干净。祝你好运