将整数值从一个类传递到另一个类时出现问题。我创建了2个MYSQL表,一个用于存储学生信息,另一个用于“柜台表”。学生表的目的是存储信息,“柜台表”是存储我们拥有多少学生的数量。之后,我创建了一个方法来从“计数器表”中获取整数值,并且想要发送到另一个类方法以将值增加1以便在注册时插入学生表中的新行。例如,我的学生表有5个学生,因此我的计数器表格将具有值5.当学生想要注册新帐户时,他或她只能填写STD_NAME,STD_TEL,并且NO将来自方法从表“计数器表”中得到整数值并发送给另一个方法以加1。因此,新学生在学生表中将没有6行。将一个整数从一个类传递到一个类
CLASS FOR COUNTER TABLE
public CounterTable(){
}
public int getCurrentNumber(Connection conn, String table_name){
int current_no = 0;
String QUERY = "SELECT * FROM counter_table WHERE TABLE_NAME='" + table_name + "'";
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(QUERY);
rs.next();
current_no = rs.getInt("TABLE_NO");
}
catch(SQLException ex){
ex.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}
finally{
try{
stmt.close();
rs.close();
}
catch(Exception ex){
ex.printStackTrace();
ex.getMessage();
}
}
return current_no;
}
public void updateCounterNumber(Connection conn, String table_name){
int current_no = 0;
String QUERY = "UPDATE table_no WHERE TABLE_NAME='" + table_name + "'";
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(QUERY);
rs.next();
}
catch(SQLException ex){
ex.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}
finally{
try{
stmt.close();
rs.close();
}
catch(Exception ex){
ex.printStackTrace();
ex.getMessage();
}
}
}
}
CLASS FOR STUDENT REGISTER
String std_name = "";
String std_icno = "";
String std_mobile = "";
String std_tel = "";
String std_address = "";
String std_gender = "";
String no = "";
String table_name = "";
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void InsertData(){
Connection conn = new Database().getConnection();
PreparedStatement pstmt = null;
//ResultSet rs = null;
try {
String student ="";
conn = new Database().getConnection();
String query = "INSERT INTO student(NO, STD_NAME, STD_ICNO, STD_MOBILE, STD_TEL, STD_ADDRESS, STD_GENDER) values(?,?,?,?,?,?,?)";
SetNewNumberPlusOne(conn, student, no);
pstmt = conn.prepareStatement(query);
pstmt.setString(1, no);
pstmt.setString(2, std_name);
pstmt.setString(3, std_icno);
pstmt.setString(4, std_mobile);
pstmt.setString(5, std_tel);
pstmt.setString(6, std_address);
pstmt.setString(7, std_gender);
pstmt.executeUpdate();
updateCounterNumber(conn, student, no);
}
catch(SQLException ex){
ex.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}
finally{
try{
pstmt.close();
if(conn != null){
conn.close();
}
}
catch(SQLException ex){
ex.printStackTrace();
ex.getMessage();
}
}
}
public void SetNewNumberPlusOne(Connection conn, String student, String no){
}
private void updateCounterNumber(Connection conn, String student, String no2){
}
}
我从柜台表传递current_no值SetNewNumberPlusOne的方法,在课堂上学生的问题登记
哪里在学生注册中调用getCurrentNumber? – 2014-09-05 07:10:01
不是数据库,您使用的数据库支持'SELECT COUNT(id)FROM Student'查询吗?这可以简单地给你提供这种效果,为此你创建了一个新的表格来跟踪已经注册的学生人数。 – 2014-09-05 07:48:55