gpt4 book ai didi

java - 如何转换字符串类型(java)并存储在mysql中的日期数据类型?

转载 作者:行者123 更新时间:2023-12-01 19:05:58 26 4
gpt4 key购买 nike

从表单插入值时收到错误消息。错误是列计数与原始 1 处的值计数不匹配。我的第 5 个字符串值必须在 sql 中存储为 date 数据类型。

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 注入(inject)攻击,并且不必担心如何将字符串调整为特定数据库 date 列所需的格式。给定一个 java.sql.Date 对象,JDBC 驱动程序将为您处理该问题。

关于java - 如何转换字符串类型(java)并存储在mysql中的日期数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10099291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com