Java 我正在计算加班时间,从表中得到结果,然后用等式来计算
我试图计算一段时间后的加班时间,将其添加到工资中。加班时间存储在考勤表中,工资存储在其他表中,包含总的基本小时工资 我想从这两个表中得到结果,在java中显示它们,在另一个表中的另一个存储中显示它们,以供将来参考Java 我正在计算加班时间,从表中得到结果,然后用等式来计算,java,mysql,jdbc,Java,Mysql,Jdbc,我试图计算一段时间后的加班时间,将其添加到工资中。加班时间存储在考勤表中,工资存储在其他表中,包含总的基本小时工资 我想从这两个表中得到结果,在java中显示它们,在另一个表中的另一个存储中显示它们,以供将来参考 int Eid = Integer.parseInt(jTextField2.getText()); try{ Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getCon
int Eid = Integer.parseInt(jTextField2.getText());
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/hr","root","adam");
String query="SELECT * FROM sallary where Eid ="+Eid +";"
java.sql.PreparedStatement preparedStatement = null;
preparedStatement = con.prepareStatement(query);
String select="select 83 *((time_to_sec(sum(overtime)) /60)/60)from att where Eid="+Eid +";";
java.sql.PreparedStatement preparedStatement2 = null;
preparedStatement2 = con.prepareStatement(select);
int eid;
double basic ,total,hourly;
ResultSet rs2 = preparedStatement2.executeQuery();
ResultSet rs = preparedStatement.executeQuery();
double overtime=rs2.getDouble(1);
// I tried this on MySQL command line it worked, however on java its error:
// the right syntax to use near 'sum(overtime)' at line 2
eid =rs.getInt("Eid");
basic =rs.getDouble("basic");
total=rs.getDouble("total");
hourly=rs.getDouble("hourly");
Object[] row = {eid,basic,total,hourly,overtime};
model = (DefaultTableModel) st.getModel();
model.addRow(row);
} catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(payroll.class.getName()).log(Level.SEVERE, null, ex);
}
您得到的实际错误消息类似于请参阅MySQL版本手册,以了解第2行“sumovertime”附近使用的正确语法。此错误消息准确地告诉您需要执行的操作 查看手册: 您可以看到SELECT语句语法的末尾没有分号 分号是一个语句分隔符,在控制台上给出多个语句时非常有用。JDBC查询一次只有一条语句,因此分号毫无意义,是一个语法错误
顺便说一下,您应该省去Class.forNamecom.mysql.jdbc.Driver;语句;。根本没有必要这样做。它在早期版本中是需要的,但在过去15年左右的时间里一直是不必要的。错误是什么?sql语法错误在第2行的“sumovertime”附近使用正确的语法