2016-09-19 8 views
0

モデルからテーブルに挿入しようとしていますが、次のエラーが発生しています。ここでスプリングブートでモデルからテーブルへのデータの挿入方法

There was an unexpected error (type=Internal Server Error, status=500). 
StatementCallback; bad SQL grammar [INSERT INTO user_sample(user_id) VALUES(?); sampleid]; nested exception is java.sql.BatchUpdateException: 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 'sampleid' at line 

は私のコードです:

public class UserInfo { 

    private String id; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

} 

は、テーブルを作成しました:ここ

CREATE TABLE `user_sample` (
    `user_partner_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
    `user_id` bigint(20) unsigned NOT NULL, 
    PRIMARY KEY (`user_partner_id`) 
) ENGINE=InnoDB AUTO_INCREMENT=77182 DEFAULT CHARSET=utf8; 

は、テーブルにデータを挿入するためのコードです。

public void insertValues(@ModelAttribute USerInfo userInfo){ 
    jdbcTemplate.batchUpdate("INSERT INTO user_sample(user_id) VALUES(?)", userInfo.getId()); 
    } 

モデルからデータを挿入するために使用するステートメントは何ですか?あなたはそれを私はあなたが使用することをお勧めの方法のようなものをしたい場合はNamedParameterJdbcTemplate は例があるhttps://spring.io/guides/gs/accessing-data-jpa/

答えて

1

あなたはそれがいかに簡単かを見ることができます:

import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; 
... 

@Autowired 
private NamedParameterJdbcTemplate jdbcTmpl; 
.... 

public void insertValues(@ModelAttribute USerInfo userInfo){ 
    StringBuilder sql = new StringBuilder(); 
    sql.append("INSERT INTO user_sample(user_id) "); 
    sql.append("VALUES(:userId) "); 

    Map<String, Object> params = new HashMap<String, Object>(); 
    params.put("userId", userInfo.getId()); 

    jdbcTmpl.update(sql.toString(), params); 
} 
0

:あなただけのJPAのパワーを活用し、あなたの挿入manuallyを記述する必要はありません春ブートによる

関連する問題