【发布时间】:2016-10-16 07:00:58
【问题描述】:
我正在为一个项目制作一个在线食品订购系统,但我还是 Java 新手。我有两节课。 Signin.java 和其他的是 mextable.java。我正在尝试访问一个文本字段(signin.java 的一部分),从 Mextable.java 读取 that 值并将该值插入到 MexTable.java 内的表中。
我能够从signin.java 中的JTextField 读取值。我还能够获取该数据并将其插入到同一类 signin.java 中的表login 中。
所以我的问题是 我如何在不同的班级做同样的事情?意味着读取用户名(在signin.java 中输入JTextField)并将其插入到表orders(它是Mextable.java 的一部分)?
Signin.java 代码(我只添加了代码的主要行):
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 的类中的表中。 -
先生,我现在把它加粗了,所以很容易区分
-
问题是什么?如何从
JTextField中检索数据?如何将变量从 A 类传递到 B 类?如何将其写入数据库?你能用一个简洁的问题发minimal reproducible example 吗? -
我已经进行了编辑。我添加了一个屏幕截图以获得更好的想法,并将我的问题变成了一个单一的形式。我的问题用粗体表示。