一、添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
二、基本CRUD
1.在Dao层创建接口
public interface LabelDao extends JpaRepository<Label, String>{
}
2.该接口继承了jpa,所以自带了基本增删改查功能
labelDao.findAll(); //查所有
labelDao.findById(id); //根据id查
labelDao.save(label);//如果在数据库中主键不存在,save方法会执行添加操作,如果主键在数据库中已存在,save方法会执行更新操作
labelDao.deleteById(id); //根据id删
三、创建pojo。其中的注解都在javax.persistence包下
@Entity
@Table(name = "tb_pl")
public class Pl implements Serializable {
@Id //联合主键
private String problemid;
@Id //联合主键
private String labelid;
public String getProblemid() {
return problemid;
}
public void setProblemid(String problemid) {
this.problemid = problemid;
}
public String getLabelid() {
return labelid;
}
public void setLabelid(String labelid) {
this.labelid = labelid;
}
}
五、原生使用sql操作数据库
/**
* 查询
*
* @param labelId
* @param pageable
* @return
*/
@Query(value = "select * from tb_problem p, tb_pl pl where p.id = pl.problemid and pl.labelid = ?1 order by p.updatetime desc", nativeQuery = true)
public Page<Problem> findNewProblemsByLabelId(String labelId, Pageable pageable);
其中1代表传入的第一个参数,以此类推
复制代码
/**
* 修改
*
* @param articleId
*/
@Modifying
@Query(value = "update tb_article set state = 1 where id = ?1", nativeQuery = true)
public void examine(String articleId);