005使用jpa實現資料庫的增刪改查操作
阿新 • • 發佈:2022-03-26
001 檔案對應的位置
002 DAO中的OperatorLog.java
package com.imooc.springboot.Dao; import com.imooc.springboot.entity.admin.OperatorLog; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; /* * 後臺操作日誌類資料庫操作層 * 可以在裡面自定義方法 * */ @Repository public interface OperatorLogDao extends JpaRepository<OperatorLog,Long> { @Query("select ol from OperatorLog ol where id = :aaa") OperatorLog find(@Param("aaa") Long id); }
003 Service中的OperatorLogService.java
package com.imooc.springboot.service.admin; import com.imooc.springboot.Dao.OperatorLogDao; import com.imooc.springboot.entity.admin.OperatorLog; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /* * 後臺操作類資料庫操作service * */ @Service public class OperatorLogService { @Autowired private OperatorLogDao operatorLogDao; /* * 新增/修改操作日誌,當id不為空時,修改,當id為空時,自動新增一條記錄 * */ public OperatorLog save(OperatorLog operatorLog){ return operatorLogDao.save(operatorLog); } /* * 根據id查詢單條資料 * */ public OperatorLog findById(Long id){ return operatorLogDao.find(id); } /* * 查詢所有資料 * */ public List<OperatorLog> findAll(){ return operatorLogDao.findAll(); } //刪除單挑資料 public void delete(Long id){ operatorLogDao.deleteById(id); } /* * 清空整張表 * */ public void deleteAll(){ operatorLogDao.deleteAll(); } }
004 Controller中的SystemController.java
package com.imooc.springboot.controller.admin; import com.imooc.springboot.config.siteConfig; import com.imooc.springboot.entity.admin.OperatorLog; import com.imooc.springboot.service.admin.OperatorLogService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.Date; import java.util.List; /* * * 系統控制器 * * */ @RequestMapping("/system") @Controller public class SystemController { @Autowired private siteConfig siteConfig; //使用operatorLogService @Autowired private OperatorLogService operatorLogService; private Logger logger = LoggerFactory.getLogger(SystemController.class); @RequestMapping(value="/index") public String index(String name, Model model){ OperatorLog operatorLog = new OperatorLog(); operatorLog.setOperator("猿來入此"); operatorLog.setContent("猿來入此的網址是:https://yuanlrc.com"); model.addAttribute("operator",operatorLog); model.addAttribute("date",new Date()); List<OperatorLog> operatorLogs = new ArrayList<OperatorLog>(); OperatorLog ol1 = new OperatorLog(); ol1.setOperator("猿來入此01"); ol1.setContent("猿來入此01 的網址是:https://yuanlrc.com0"); operatorLogs.add(ol1); OperatorLog ol2 = new OperatorLog(); ol2.setOperator("猿來入此02"); ol2.setContent("猿來入此02 的網址是:https://yuanlrc.com0"); operatorLogs.add(ol2); OperatorLog ol3 = new OperatorLog(); ol3.setOperator("猿來入此03"); ol3.setContent("猿來入此03 的網址是:https://yuanlrc.com0"); operatorLogs.add(ol3); model.addAttribute("name",siteConfig.getSiteName()); model.addAttribute("url",siteConfig.getSiteUrl()); logger.info("siteName =" + siteConfig.getSiteName()); logger.info("siteUrl =" + siteConfig.getSiteUrl()); //資料庫操作 operatorLog.setCreateTime(new Date());//建立時間 operatorLog.setUpdateTime(new Date());//更新時間 operatorLog.setId(Long.valueOf(5));//加上id,是修改id=5下的資料;如果沒有,則是新增該條資料 operatorLog.setOperator("[猿來入此beta]"); operatorLogService.save(operatorLog); /** ol1.setCreateTime(new Date()); ol1.setUpdateTime(new Date()); operatorLogService.save(ol1); ol2.setCreateTime(new Date()); ol2.setUpdateTime(new Date()); operatorLogService.save(ol2); ol3.setCreateTime(new Date()); ol3.setUpdateTime(new Date()); operatorLogService.save(ol3);*/ return "index"; }
*/ //查詢單條資料 /* @RequestMapping(value="/test") @ResponseBody public OperatorLog index(Long id){ OperatorLog findById = operatorLogService.findById(id); if(findById != null){ OperatorLog operatorLog = new OperatorLog(); operatorLog.setOperator(findById.getOperator()); operatorLog.setContent(findById.getContent()); operatorLog.setCreateTime(findById.getCreateTime()); operatorLog.setUpdateTime(findById.getUpdateTime()); operatorLog.setId(findById.getId()); return operatorLog; } return operatorLogService.findById(id); }
*/ /* 查詢所有的資料 @RequestMapping(value="/test01") @ResponseBody public List<OperatorLog> index(Long id){ return operatorLogService.findAll(); }*/ @RequestMapping(value="/test01") @ResponseBody public Boolean index(Long id){ OperatorLog operatorLog = new OperatorLog(); operatorLog.setOperator("[猿來入此Beta]"); operatorLog.setContent("猿來入此的網址是:https://yuanlrc.com"); operatorLog.setId(id); operatorLog.setCreateTime(operatorLogService.findById(id).getCreateTime()); operatorLogService.save(operatorLog); // operatorLogService.deleteAll();//刪除所有資料 return true; } }
005 entity中的公共實體(baseEntity.java)和OperatorLog.java
baseEntity.java
package com.imooc.springboot.entity.admin; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.*; import java.io.Serializable; import java.util.Date; /* * 基礎實體公共屬性 * Serializable:實現序列化的介面 * */ @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public class baseEntity implements Serializable{ @Column(name="id", nullable = false, length = 11) @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;//唯一id //@CreatedDate 儲存建立的時間 @Column(name = "create_time",nullable = false) @CreatedDate private Date createTime;//操作時間 //@LastModifiedDate 儲存上次的時間 @Column(name = "update_time",nullable = false) @LastModifiedDate private Date updateTime;//更新時間 public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } }
OperatorLog.java
package com.imooc.springboot.entity.admin; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityListeners; import javax.persistence.Table; /* * 後臺操作日誌記錄表 * */ @Entity @Table(name="yuanlrc_operator_log") @EntityListeners(AuditingEntityListener.class) public class OperatorLog extends baseEntity{ private static final long serialVersionUID = 1L;//新增一個序列化id @Column(name="operator", nullable = false, length = 18) private String operator; //操作者 @Column(name = "content", nullable = false, length = 128) private String content;//操作內容 public String getOperator() { return operator; } public void setOperator(String operator) { this.operator = operator; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }