프로젝트의 온라인 음식 주문 시스템을 만들고 있지만 아직 Java를 처음 사용하고 있습니다. 두 클래스가 있습니다. Signin.java 및 기타는 mextable.java입니다. 나는 텍스트 필드 (signin.java의 일부)에 접근하려고 시도하고 있는데, 을 읽고 Mextable.java에서 값을 읽고 그 값을 MexTable.java의 테이블에 삽입한다.클래스 A의 JTextField 입력에서 클래스 B의 데이터베이스에 값을 삽입하는 방법
signin.java의 JTextField
에서 값을 읽을 수 있습니다. 나는 또한 그 데이터를 가져 와서 같은 클래스 인 signin.java에있는 login
테이블에 삽입 할 수있다.
내 질문에 정확히 다른 클래스에서 어떻게합니까? 사용자 이름 (signin.java에 JTextField
에 입력 된)을 읽은 다음 테이블 orders
(Mextable.java의 일부 임)에 삽입하십시오.
Signin.java 코드
(I 코드 단지 메인 라인 추가) public class signin extends javax.swing.JFrame {
Connection conn;
OracleResultSet rs = null;
OraclePreparedStatement pst;
public signin() {
initComponents();
connect();
}
public void connect()
{
// connection with database
}
private void loginActionPerformed(java.awt.event.ActionEvent evt) {
protected static javax.swing.JTexfield userTF;
try{
String pass = passTF.getText().trim();
String user = userTF.getText().trim();
String sql = "select uname,pass"
+ " from login "
+ "where uname = '"+user+"' "
+ "AND pass = '"+pass+"'";
pst = (OraclePreparedStatement) conn.prepareStatement(sql);
rs = (OracleResultSet) pst.executeQuery(sql);
// remaining code
}
//catch block
}
을 Mextable.java :
에 액세스 중 그 값이 삽입되지 않기 때문에 Signin.java의 userTF 텍스트 필드의 구성 요소 값이 작동하지 않는 것 같습니다. 이 값 대신 NULL이 삽입됩니다. 이 삽입 쿼리의 나머지 값은 orders
테이블에 삽입됩니다.
private void ConOrd2ActionPerformed(java.awt.event.ActionEvent evt) {
try{
signin l = new signin();
l.getComponent(0).getName();
int rows = jTable23.getRowCount();
String user4 = l.userTF.getText().trim();
String sqli = "insert into orders"
+ "(o_id,item_id, order_name, uname)"
+ " values (ord_seq.nextval,?,?,'"+user4+"')";
//o_id,item_id,order_name is inserted and uname value is added as
//Null instead of the username value in the JTextfield in the Signin page.
pst = (OraclePreparedStatement) conn.prepareStatement(sqli);
for(int row =0; row < rows; row++)
{
String item2= (String)jTable23.getValueAt(row, 0);
String fooname2= (String)jTable23.getValueAt(row, 1);
pst.setString(1, item2);
pst.setString(2, fooname2);
pst.execute();
}
pst.executeUpdate();
conn.commit();
}
catch(Exception e)
{
System.out.println(e);
}
}
}
한 번에 한 가지 질문을하십시오. 너는 무엇을 요구하고 있는가? Signin.java에 대한 코드는 어디에 있습니까? 이 수업이 효과가 없다고 불평 한 이후로 어떻게 도와 드릴까요? –
이미 코드를 추가했습니다. Signin.java의 코드는 코드 블록의 첫 번째 섹션입니다. 나는 값에 접근하는 것이 작동하지 않고 값이 삽입되지 않는다고 말했다. 나머지는입니다. 수업이 잘 진행되고 있습니다. 거기에는 문제가 없습니다. 단지 입력 된'JTexfield' 값 (Signin.java로부터)은 다른 클래스의 MexTable.java에있는 테이블에 삽입되지 않습니다. – nikiii
선생님, 저는 그것을 대담하게 만들었으므로 쉽게 구분할 수 있습니다. – nikiii