【发布时间】:2018-06-22 18:41:43
【问题描述】:
我正在尝试创建一些东西,我可以在其中将锻炼插入到数据库中,其中包含在该锻炼中完成的练习。问题是我想同时创建它们并存储我使用链接表的练习。
此表名为 Workout_Excercise,因此我可以在每次锻炼时存储多个练习。
问题是希望能够同时创建这些,但锻炼锻炼需要尚未创建的锻炼ID。
我当前的代码插入了锻炼效果很好,现在我很好奇我如何能够插入练习。
用于插入锻炼的当前代码:
正面
$(".insertWorkout").on("click", function(){
if(localStorage.getItem('token') != null ) {
var token = localStorage.getItem('token');
}
else {
var token = null;
}
$.ajax({
url: '/project/restservices/workouts/insert',
type: 'POST',
beforeSend: function(xhr){
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
},
data: {
titel: $(".workoutTitel").val() ,
beschrijving: $(".workoutBeschrijving").val(),
categorie_id: $(".categorieSelect").val(),
persoon_id: 1
},
success: function(response) {
if(response){
$(".workoutTitel").val("");
$(".workoutBeschrijving").val("");
$(".messageSpanSucces").html("Oefening invoeren gelukt");
}
else {
$(".messageSpanFail").html("Oefening invoeren mislukt");
}
}
});
});
锻炼资源
@Path("insert")
@POST
@Produces("application/json")
@RolesAllowed("user")
public Response saveWorkout(@FormParam("titel") String titel, @FormParam("beschrijving") String beschrijving,
@FormParam("categorie_id") int categorie_id, @FormParam("persoon_id") int persoon_id) throws SQLException {
WorkoutService service = ServiceProvider.getWorkoutService();
boolean country = service.saveWorkout(titel, beschrijving, categorie_id, persoon_id);
return Response.ok(country).build();
}
锻炼服务
public boolean saveWorkout(String titel, String beschrijving, int categorie_id, int persoon_id) throws SQLException {
return WorkoutPostgresDao.saveWorkout(titel, beschrijving, categorie_id, persoon_id);
}
锻炼DAO
public boolean saveWorkout(String titel, String beschrijving, int categorie_id, int persoon_id) throws SQLException {
boolean result = false;
try (Connection con = super.getConnection()) {
String query = "INSERT INTO \"Workout\" VALUES(?,?,?,?)";
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1, titel);
pstmt.setString(2, beschrijving);
pstmt.setInt(3, persoon_id);
pstmt.setInt(4, categorie_id);
pstmt.executeUpdate();
result = true;
} catch (SQLException sqle) {
sqle.printStackTrace();
}
return result;
}
【问题讨论】:
-
你没有锻炼的实体吗?
-
锻炼ID是主键吗??
-
我确实有一个可以锻炼的实体!这包含标题和描述和东西。但该表是一个链接表,因此锻炼可以有多个练习。也是的,锻炼 ID 是主键
标签: java sql postgresql insert dao