Java中通过预处理语句插入数据时如何删除空格字符

Java中通过预处理语句插入数据时如何删除空格字符,java,sql-server,prepared-statement,sql-insert,Java,Sql Server,Prepared Statement,Sql Insert,我使用SQL Server作为数据库,希望通过Java应用程序将数据插入表中。它是成功的,但是当我检索刚刚插入的数据时,我发现单词后面有一些空白字符。 我调试了我的程序,但一切看起来都很好,即使在preparedStatement.executeUpdate()之前;没有空格字符。 我真的很困惑我的错误在哪里 public static void updateDatabase(Connection conn) throws SQLException{ for(ArrayList&

我使用SQL Server作为数据库,希望通过Java应用程序将数据插入表中。它是成功的,但是当我检索刚刚插入的数据时,我发现单词后面有一些空白字符。 我调试了我的程序,但一切看起来都很好,即使在preparedStatement.executeUpdate()之前;没有空格字符。 我真的很困惑我的错误在哪里

public static void updateDatabase(Connection conn) throws SQLException{
        for(ArrayList<String> bookData : bookDataList){
            if("newId".equalsIgnoreCase((String) bookData.get(0))){
                PreparedStatement insertPS = conn.prepareStatement("INSERT INTO Book (Title, Author, Quantity) VALUES (?,?,?)");
                insertPS.setString(1, bookData.get(1));
                insertPS.setString(2, bookData.get(2));
                insertPS.setInt(3, Integer.parseInt(bookData.get(3)));
                insertPS.executeUpdate();
                insertPS.close();
            }else{
                PreparedStatement updatePS = conn.prepareStatement("UPDATE Book SET Quantity = ? WHERE BookId = ?");
                updatePS.setInt(1, Integer.parseInt(bookData.get(3)));
                updatePS.setInt(2, Integer.parseInt(bookData.get(0)));
                updatePS.executeUpdate();
                updatePS.close();
            }
        }
        conn.close();
    }
公共静态void updateDatabase(连接连接)引发SQLException{
对于(ArrayList bookData:bookDataList){
if(“newId”.equalsIgnoreCase((字符串)bookData.get(0))){
PreparedStatement insertPS=conn.prepareStatement(“插入到书中(标题、作者、数量)值(?,?)”;
insertPS.setString(1,bookData.get(1));
insertPS.setString(2,bookData.get(2));
insertPS.setInt(3,Integer.parseInt(bookData.get(3));
insertPS.executeUpdate();
insertPS.close();
}否则{
PreparedStatement UpdateP=conn.prepareStatement(“更新账套数量=?其中BookId=?”;
updatePS.setInt(1,Integer.parseInt(bookData.get(3));
updatePS.setInt(2,Integer.parseInt(bookData.get(0));
updatePS.executeUpdate();
updatePS.close();
}
}
康涅狄格州关闭();
}

刚刚插入代码,数据字段是否有空白?标题,作者?…您是否尝试过这些的bookData.get().trim()?都是。我没有修剪它,但当我调试它时,大小是完全一样的。我刚刚试过,是的,仍然有空白。我调试了bookData.get(1).trim()上的值,没有空格。但是当我检查数据库时,有空白:(一个可能的空格填充原因是,
Title
Author
列被定义为
CHAR(99)
,而不是
VARCHAR(99)
,这将用空格填充任何插入的值,长度为99。代码刚刚插入到数据字段中是否/正在获取空白?标题,作者?…是否尝试过bookData.get().trim()获取这些?两者都是。我没有修剪,但调试时大小完全相同。我刚刚尝试过,是的,仍然存在空白。我调试了bookData.get(1.trim()上的值)但是当我检查数据库时,有空白:(一个可能的原因是,
Title
Author
列被定义为
CHAR(99)
,而不是
VARCHAR(99)
,这将用空格填充任何插入的值,长度为99。