我正在为我的“最后一年”项目创建一个简单的薪资系统。我遇到了向员工添加休假的问题。如果我添加休假,它将添加到该公司的所有员工中。但是我无法完成我尝试执行的任务,所以我在代码下面编写了代码。 举个例子 如果我选择休假为20天。它在列表中添加了所有员工编号。
员工表
离开餐桌
我尝试过的代码
String cas = txtcas.getValue().toString();
String anu = txtanu.getValue().toString();
String med = txtmed.getValue().toString();
String year = txtyear.getText();
try {
int c;
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/spay","root","");
PreparedStatement pst1 = con.prepareStatement("select empno from employee");
ResultSet rs = pst1.executeQuery();
ArrayList<String> empnos = new ArrayList<>();
while (rs.next()) {
empnos.add(rs.getString(1));
pst = con.prepareStatement("insert into leaves(empno,casual,annual,address,medical,year)values(?,?,?,?,?)");
pst.setString(1,) ); // employee no how to give here
pst.setString(2, cas);
pst.setString(3, anu);
pst.setString(4, med);
pst.setString(5, year);
pst.executeUpdate();
JOptionPane.showMessageDialog(null,"Leave Insertedddddd");
}
数据库输出看起来像这样
答案 0 :(得分:2)
//这是从表中为特定列获取数据的代码。
String empNoValue;
while (rs.next()) {
empNoValue = rs.getString("empno"); // empno is the column name
}
在此之前,
1,您需要添加一些WHERE条件,以在查询pst1中获取特定员工。
否则,
1您需要从上一页为该员工设置session
值或hidden
值。
1.1之后,您从数据中添加了特定员工(从hidden
或session
值中获取数据)。
String employeeValue = hidden or session value // from privious page
然后将employeeValue添加到插入查询中,如下所示
pst.setString(1, employeeValue); // employeeValue is the your specific empno get from privious page
答案 1 :(得分:0)
我假设pst1在代码的较早位置和位置声明了
ResultSet rs = pst.executeQuery();
您实际上是在叫pst1而不是pst
对于所需的输出,您需要对结果集进行迭代,像这样
PreparedStatement pst1 = con.prepareStatement("select empno from employee");
ResultSet rs = pst1.executeQuery();
List<String> empnos = new ArrayList<>();
while (rs.next()) {
empnos.add(rs.getString(1));
}
,然后将arraylist用于您的用例
请阅读有关在互联网上获取结果集值的信息,这将帮助您解决以后的问题