[英]Database Insertion error due to query
I have a new database.I want to insert manual values and picking table name from a database. 我有一个新的数据库,我想从数据库中插入手动值并选择表名。 But it shows an error.The following code i use.My row values are first one is a
String
and following are Integers(here=fcltyname is the only String
) 但是它显示一个错误。我使用以下代码。我的行值是第一个是
String
,然后是Integers(这里= fcltyname是唯一的String
)
connection = (Connection) dbSource.getConnection();
String qry = "SELECT studentName From batcha ";
System.out.println(fcltyName);
stmt = (PreparedStatement) connection.prepareStatement(qry);
rs = stmt.executeQuery();
while (rs.next()) {
String check=new String(rs.getString(("studentName")));
String student = check.replaceAll("\\s","");
Class.forName("com.mysql.jdbc.Driver");
connection = (Connection) DriverManager.getConnection(DB_URL_table, USER, PASS);
String sql1 = "INSERT IGNORE INTO "+student+" (fcltyName,CommunicationOral,Communicationwritten,Leadership,AnalyticalAbilities,Interpersonalskills,DecisionMakingSkills,SelfConfidence,Creativity,Punctualityregularity,GeneralAwareness,Commitment,HardWork)VALUES("+fcltyName+",0,0,0,0,0,0,0,0,0,0,0,0)";
newStmt=(PreparedStatement) connection.prepareStatement(sql1);
newStmt.executeUpdate(sql1);
newStmt.close();
Error 错误
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0,0,0,0,0,0,0,0,0,0,0,0)' at line 1
Try this once 尝试一次
' '
try {
String insertTableSQL = "INSERT INTO DBUSER"+ "fcltyName,CommunicationOral,Communicationwritten,Leadership,AnalyticalAbilities,Interpersonalskills,DecisionMakingSkills,SelfConfidence,Creativity,Punctualityregularity,GeneralAwareness,Commitment,HardWork) VALUES"+ "(?,?,?,?,?,?,?,?,?,?,?,?,?)";
dbConnection = getDBConnection();
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setStringt(1, fcltyName);
preparedStatement.setInt(2, 0);
preparedStatement.setInt(3, 0);
preparedStatement.setInt(4,0);
preparedStatement.setInt(5, 0);
preparedStatement.setInt(6, 0);
preparedStatement.setInt(7,0);
preparedStatement.setInt(8, 0);
preparedStatement.setInt(9, 0);
preparedStatement.setInt(10,0);
preparedStatement.setInt(11, 0);
preparedStatement.setInt(12, 0);
preparedStatement.setInt(13,0);
// execute insert SQL stetement
preparedStatement.executeUpdate();}'
试试这个
String sql1 = "INSERT IGNORE INTO "+student+" (fcltyName,CommunicationOral,Communicationwritten,Leadership,AnalyticalAbilities,Interpersonalskills,DecisionMakingSkills,SelfConfidence,Creativity,Punctualityregularity,GeneralAwareness,Commitment,HardWork)VALUES('"+fcltyName+"',0,0,0,0,0,0,0,0,0,0,0,0)";
我认为fcltyName是varchar类型,因此您需要将其插入“ fcltyName”中
String sql1 = "INSERT IGNORE INTO "+student+" (fcltyName,CommunicationOral,Communicationwritten,Leadership,AnalyticalAbilities,Interpersonalskills,DecisionMakingSkills,SelfConfidence,Creativity,Punctualityregularity,GeneralAwareness,Commitment,HardWork)VALUES("+"'"+fcltyName+"'"+",0,0,0,0,0,0,0,0,0,0,0,0)";
Do not insert values directly in the query, use a preparedstatment and feed the values as arguments. 不要直接在查询中插入值,请使用preparestatment并将值作为参数输入。
See http://www.mkyong.com/jdbc/jdbc-preparestatement-example-insert-a-record/ for an example 有关示例,请参见http://www.mkyong.com/jdbc/jdbc-preparestatement-example-insert-a-record/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.