這裏的Java查詢問題 我使用NetBeans和MySQL的最新版本 我使用的位(1)字段類型在MySQL在我的應用程序來管理布爾類型用了setString無法插入位類型
當在數據庫中存儲的數據,如果我用這個代碼一切正常
PreparedStatement st = con.prepareStatement("INSERT INTO `postetransfo`.`utilisateur`"
+ " (`dbLogin`, `dbMDP`, `dbNom`, `dbPrenom`, `dbAjPoste`, `dbModPoste`, `dbMajPoste`, `dbAjMesure`,"
+ " `dbModMesure`, `dbDroitAdmin`, `dbTracerAdmin`) VALUES (?,?,?,?,b'0',b'0',b'0',b'0',b'0',b'0',?)");
st.setString(1, login);
st.setString(2, "changemoi");
st.setString(3, nom);
st.setString(4, prenom);
//st.setString(5, "b'0'");
//st.setString(5, "b'0'");
// st.setString(6, "b'0'");
// st.setString(7, "b'0'");
// st.setString(8, "b'0'");
// st.setString(9, "b'0'");
st.setString(5, "TEST");
但是,當我要讓所有查詢動態我得到下面的異常
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'dbAjPoste' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4118)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2815)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1379)
好像你正在試圖把進入該領域的數據'dbAjPoste'不匹配架構中的實際數據類型的大小。 – NilsH 2013-05-08 11:42:42
你可以嘗試st.setBoolean() - 但我不確定它會工作 – DaveH 2013-05-08 11:43:31