我在PHP中看到了很多关于此的解释。我想在Java中使用JavaFX来支持我的GUI。我将包括我的登录方法和在扩展坞上显示用户名。
因此,假设我的数据库和用户login_id = 5
日志中有10个用户,这意味着我想在某些地方获取有关他的所有信息(即名字,姓氏,e-邮件等。)。
LoginFXMLController
@FXML
private boolean loginSuccessful() throws SQLException{
connection = MySQL.Connect();
String sql = "SELECT * FROM login WHERE username = ? and password = ?";
pst = connection.prepareStatement(sql);
pst.setString(1, tfUsername.getText());
pst.setString(2, tfPassword.getText());
rs = pst.executeQuery();
return (rs.next());
}
DockFXMLController
@FXML
public void showName()
{
try {
// Just getting info from login_id column, and not by specific user,
// and I'd like to change that
String sql = "SELECT * FROM Login WHERE login_id = 1";
pst = connection.prepareStatement(sql);
rs = pst.executeQuery();
if(rs.next())
{
lblName.setText(rs.getString("first_name") + " " + rs.getString("last_name"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
上面的代码可以显示它应该显示的内容 - 第一行的第一个名字,所以我已经正确地初始化了我需要的所有内容。
答案 0 :(得分:0)
不知道哪个类对象“pst”实际上是。 以下是java tutorial about database on java2s.com的快照。
我认为问题是你应该调用方法createStatement()。
我希望这对你有所帮助。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class Main {
public static void main(String[] argv) throws Exception {
String driverName = "com.jnetdirect.jsql.JSQLDriver";
Class.forName(driverName);
String serverName = "127.0.0.1";
String portNumber = "1433";
String mydatabase = serverName + ":" + portNumber;
String url = "jdbc:JSQLConnect://" + mydatabase;
String username = "username";
String password = "password";
Connection connection = DriverManager.getConnection(url, username, password);
Statement stmt = connection.createStatement();
String sql = "UPDATE my_table SET col_string='a new string' WHERE col_string = 'a string'";
int updateCount = stmt.executeUpdate(sql);
}
}