2016-10-11 41 views
1

我正在为大型程序编写一些SQL。最初我使用的SQL原始查询(工作),然后我切换到准备报表安全和整齐。Java准备好的语句不能输入数据并碰到catch

不幸的是,这些语句没有执行我的插入或任何其他SQL函数,并且我一直在我的try catch块中打钩。它给出的消息是查询不返回结果但是我明白,这个消息本身并不一定表示错误。

这里是我的代码,任何的帮助深表感谢

public User createNewUser(String email, String publicKey, int balance, String privateKey, int units, String type) 
{ 

    try (Connection conn = DriverManager.getConnection(connectionString);) 
    { 
     //create new user in the db 
     String query = "INSERT INTO " + USER_TABLE_NAME + " (email, publicKey, privateKey, balance) " + 
       "Values(?, ?, ?, ?)"; 

     PreparedStatement makeNewUser = conn.prepareStatement(query); 
     makeNewUser.setString(1, email); 
     makeNewUser.setString(2, publicKey); 
     makeNewUser.setString(3, privateKey); 
     makeNewUser.setInt(4, balance) 

     ResultSet newUser = makeNewUser.executeQuery(); 
     newUser.next(); 
    } 
    catch(SQLException e) 
    { 
     System.out.println("EPIC FAIL " + e.getMessage()); 
     return null; 
    } 

,这里是为用户的表模式:

static String createUserTable = "CREATE TABLE IF NOT EXISTS " + USER_TABLE_NAME + "(\n" 
     + " id integer PRIMARY KEY AUTOINCREMENT,\n" 
     + " email text UNIQUE NOT NULL,\n" 
     + " publicKey Text UNIQUE NOT NULL, \n" 
     + " privateKey Text UNIQUE NOT NULL, \n" 
     + " balance INTEGER NOT NULL \n" 
     + ");"; 

回答