我在java页面中有一个小程序来为我的应用程序创建数据库。这是代码。数据库在mysql.But对我不起作用。我认为我的代码是正确的。
private DataBaseSource dbSource = new DataBaseSourceImpl();
private Connection connection = null;
private Statement statement = null;
private PreparedStatement preparedStatement = null;
private ResultSet resultSet = null;
/** Creates new form LoginScreen */
public LoginScreen() {
initComponents();
Container c =this.getContentPane();
c.setBackground(Color.WHITE);
connection = (Connection) dbSource.getConnection();
signInBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String uname = usrNameTxt.getText();
char[] pword = pwordTxt.getPassword();
String password = new String(pword);
if(uname.equals("")&& password.equals("")){
Util.showErrorMessageDialog("Please fill all the fields.");
}else{
if(uname.equals("") || uname.equals(" ")&& ! password.equals("")){
Util.showErrorMessageDialog("Login ID left blank");
}else{
if (password.equals("") || password.equals(" ")&& uname.equals("")) {
Util.showErrorMessageDialog("Password left blank.");
}else{
authenticateLogin();
}
}
}
}
});
}
public void authenticateLogin() {
try {
preparedStatement = (PreparedStatement) connection.prepareStatement("CREATE DATABASE IF NOT EXIST macfast");
preparedStatement.executeQuery();
} catch (SQLException ex) {
Logger.getLogger(LoginScreen.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new LoginScreen().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JPanel jPanel2;
private javax.swing.JPasswordField pwordTxt;
private javax.swing.JButton signInBtn;
private javax.swing.JTextField usrNameTxt;
// End of variables declaration
}
这是我的代码示例。但它没有创建名为macfast的数据库...如上例所示。我的计划发生了什么事。任何人请帮帮我
答案 0 :(得分:2)
您需要使用executeUpdate
代替executeQuery
。
Statement st = connection.createStatement();
st.executeUpdate("CREATE DATABASE IF NOT EXISTS macfast");
st.close();
答案 1 :(得分:0)
提供DataBaseSourceImpl()的代码。在尝试获得相同的内容时,您试图通过什么值。为什么不直接使用DataSource。您将不得不尝试编写一个更简单的程序来测试您的应用程序是否能够连接到数据库。
目前你有什么错误。