[英]How to convert string type (java) and store in date data type in mysql?
[英]How to convert string type (java) and store in date data type in mysql?
從表單中插入值時收到錯誤消息。 錯誤是Column count doesn't match value count at raw 1 。 我的第 5 個字符串值必須作為日期數據類型存儲在 sql 中。
String s1=this.txtUsername.getText();
String s2=this.txtPassword.getText();
String s3=this.txtName.getText();
String s4=this.txtAddress.getText();
String s5=this.txtContractEndDetails.getText();
connection getcon = new connection();
Connection conn;
try{
conn=getcon.creatConnection();
Statement stmt=conn.createStatement();
stmt.executeUpdate("insert into TravelGuide(username,password,name,address,contract_end_date)values ('"+s1+"','"+s2+"','"+s3+"','"+s4+"'+'"+s5+"')");
}
catch(Exception ex){
JOptionPane.showMessageDialog(PanelTG, ex.getMessage(),"Error Occured",2);
}
這是我的 SQL 查詢的相關表。
create table TravelGuide(
username char(20),
password char(20),
name varchar(100),
address varchar(150),
contract_end_date date,
constraint TravelGuide_PK primary key(username)
);
已編輯
我很困惑
preparedStatement("insert into TravelGuide (username,password,name,address,contract_end_date) values (?, ?, ?, ?, ?)");
你能進一步解釋一下嗎..
這是正確的嗎? ** 標記內的代碼給出錯誤表達式的非法開始並且找不到符號..請幫助我..
try {
conn=getcon.creatConnection();
**String sql="insert into TravelGuide("+"username,"+"password,,"+,"name,"+"address,"+"contract_end_date)"+"values(?,?,?,?,?)";**
PreparedStatement stmt = conn.**preparedStatement**(sql);
java.sql.Date dtValue = java.sql.Date.valueOf(s5);
stmt.setString(1, s1);
stmt.setString(2, s2);
stmt.setString(3, s3);
stmt.setString(4, s4);
stmt.setDate(5, dtValue);
stmt.executeUpdate();
}
在try
中,改為執行以下操作:
conn = getconn.creatConnection();
PreparedStatement stmt = conn.prepareStatement("insert into TravelGuide (username,password,name,address,contract_end_date) values (?, ?, ?, ?, ?)");
java.sql.Date date = someFunctionToConvertYourDateStringToADate(s5);
stmt.setString(1, s1);
stmt.setString(2, s2);
stmt.setString(3, s3);
stmt.setString(4, s4);
stmt.setDate(5, date);
stmt.executeUpdate();
[and so on]
這樣你就可以免受 SQL 注入攻擊,你不必擔心如何將你的字符串轉換成特定數據庫需要的date
列格式。 JDBC 驅動程序將為您處理,給定java.sql.Date
object。
stmt.executeUpdate("insert into TravelGuide(username,password,name,address,contract_end_date)values ('"+s1+"','"+s2+"','"+s3+"','"+s4+"'**+**'"+s5+"')");
為什么+,我想我應該,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.