【问题标题】:String index out of range. Java Spring Boot字符串索引超出范围。 Java 春季启动
【发布时间】:2021-01-07 06:11:43
【问题描述】:

我正在尝试使用 Spring 应用程序中的数据访问对象运行查询,但我收到 String index out of range 错误。

这是我的 DAO

public class UserDao {

   private JdbcTemplate jdbcTemplate;

   public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
       this.jdbcTemplate = jdbcTemplate;
   }

   public int saveUser(User u){
    
     String query = "INSERT INTO `users` VALUES('"+u.getFirstName()+"','"+u.getLastName()+"','"
         +u.getEmail()+"','"+u.getCreatedAt()+"','"+u.getCreatedBy()+"','"+u.getUpdatedAt()+"','"+u.getUpdatedBy()+"')";
 
    return jdbcTemplate.update(query);
  }

}

这是错误

这是我的数据库表结构

即使我用实际值替换 getter 方法,我仍然会收到错误

【问题讨论】:

标签: java mysql spring jdbc


【解决方案1】:

尝试使用如下语法:

String.format("INSERT INTO USERS(first_name, last_name, etc...) VALUES(%s, %s, etc...);

它将返回一个由String.format()方法动态创建的字符串。

因为如果未定义列名,则必须保持值的顺序,这可能会很糟糕,因为您缺少 id 列。

附: %d - 代表数字,%s - 代表字符串

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2012-01-15
    • 2014-06-12
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    相关资源
    最近更新 更多