小编Ari*_*ane的帖子

Spring JPA - 准备好的语句查询?

我正在构建一个 Spring REST 服务器应用程序,并且正在执行一些本机查询以从数据库中检索数据。从学校的教学来看,他们建议所有查询都准备好语句,以阻止用户在输入框中输入有害的SQL。

我尝试做一些研究,但还没有找到具体的答案。Spring默认使用准备好的语句吗?这是我想要清理的查询之一的片段:


   @Query(value = "DELETE FROM userMeds WHERE username = ?1 AND drug_id = ?2", nativeQuery = true)
    void deleteByIdentity(String username, int drug_id);
Run Code Online (Sandbox Code Playgroud)

如果这不使用准备好的语句,我怎样才能避免发生任何不好的事情?

先感谢您

mysql sql spring spring-data-jpa spring-boot

6
推荐指数
1
解决办法
2858
查看次数

Spring JPA - 如何使用复合键(EmbeddedID)保存对象

我正在构建一个 Spring 系统,其中涉及用户和他们正在服用的药物。我有一个包含表的数据库:用户,药物

我正在创建一个新的数据类型名称 UserMed,它由复合主键组成 - 药物的 ID 和用户的用户名(上表的主键)

以下是 UserMed 实体代码:

@Entity
@Table(name = "userMeds")
public class UserMed implements Serializable {

    @Id
    @EmbeddedId
    private UserMedId userMedId;


    public UserMed(int drugID, String username) {
        this.userMedId.drug_id = drugID;
        this.userMedId.username = username;

    }

    public UserMed() {
    }


    public String getUsername() {
        return this.userMedId.username;
    }

    public void setUsername(String username) {
        this.userMedId.username = username;
    }


}
Run Code Online (Sandbox Code Playgroud)

这是 EmbeddedID UserMedId 数据类型:

@RequiredArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@ToString
@EqualsAndHashCode
@Embeddable
public class UserMedId implements Serializable {

    @NonNull
    public …
Run Code Online (Sandbox Code Playgroud)

java spring spring-data-jpa spring-boot

5
推荐指数
1
解决办法
7403
查看次数

JPA & Hibernate - 带外键的复合主键

所以我有两个表,我想在 Spring 内存中查询。我已经成功地对名为 Medicine 的条目中的“药物”表进行了建模,但是现在需要对“药物交互”表进行建模 - 它将具有药物 ID(药物表中称为 id 的 PK)和药物交互中的药物名称的组合表,作为组合主键。

python中使用的模式:

cursor.execute("CREATE TABLE drugs(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), description TEXT, toxicity TEXT)")


cursor.execute("CREATE TABLE drugInteractions (drug_id INT NOT NULL, name VARCHAR(90), description TEXT, PRIMARY KEY(drug_id, name), FOREIGN KEY (drug_id) REFERENCES drugs (id))")

Run Code Online (Sandbox Code Playgroud)

DrugInteractions 表的一些示例数据:


drug_id     name       description

1       "Abciximab"         "The risk or severity of bleeding can be increased when Abciximab is combined with Lepirudin."
1       "Aceclofenac"        "The risk or severity of bleeding and hemorrhage can be increased …
Run Code Online (Sandbox Code Playgroud)

mysql spring hibernate spring-data-jpa spring-boot

4
推荐指数
1
解决办法
6889
查看次数

标签 统计

spring ×3

spring-boot ×3

spring-data-jpa ×3

mysql ×2

hibernate ×1

java ×1

sql ×1