老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

Springboot2+jpa+thymeleaf如何實現增刪改查

這篇文章主要講解了Spring boot2+jpa+thymeleaf如何實現增刪改查,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

創新互聯長期為千余家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為魏縣企業提供專業的成都做網站、網站制作、成都外貿網站建設魏縣網站改版等技術服務。擁有10余年豐富建站經驗和眾多成功案例,為您定制開發。

一、pom.xml引入相關模塊web、jpa、thymeleaf、oracle:


        org.springframework.boot
        spring-boot-starter-web
     

    
      org.springframework.boot
      spring-boot-starter-thymeleaf
    
    
    
      org.springframework.boot
      spring-boot-starter-data-jpa
    

     
      com.oracle 
      ojdbc8 
      12.2.0.1     
    

二、application.properties配置

server.port = 9001

spring.datasource.driver-class-name = oracle.jdbc.driver.OracleDriver
spring.datasource.url = jdbc:oracle:thin:@127.0.0.1:1521:testdb
spring.datasource.username = dev
spring.datasource.password = dev

spring.jpa.hibernate.ddl-auto = update
spring.jpa.show-sql = true

spring.thymeleaf.cache = false

說明:

1、由于本機的8080已經被使用,修改一下端口號為9001。

2、hibernate.hbm2ddl.auto參數有四個值:

create: 每次加載hibernate時都會刪除上一次的生成的表,然后根據你的model類再重新來生成新表,哪怕兩次沒有任何改變也要
這樣執行,這就是導致數據庫表數據丟失的一個重要原因。

create-drop :每次加載hibernate時根據model類生成表,但是sessionFactory一關閉,表就自動刪除。

update:最常用的屬性,第一次加載hibernate時根據model類會自動建立起表的結構(前提是先建立好數據庫),以后加載
hibernate時根據 model類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到服務器后,表結構是不會被馬上建立起來的,是要等 應用第一次運行起來后才會。
validate :每次加載hibernate時,驗證創建數據庫表結構,只會和數據庫中的表進行比較,不會創建新表,但是會插入新值。

3、show-sql 是否打印出自動生產的SQL,方便調試的時候查看

4、propertiesspring.thymeleaf.cache=false是關閉thymeleaf的緩存,不然在開發過程中修改頁面不會立刻生效需要重啟,生產
可配置為true。

三、啟動類需要添加Servlet的支持

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {

  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(DemoApplication.class);
  }
  
  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }
}

四、數據庫層代碼

1、實體類映射數據庫表

package com.example.demo.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;

import org.hibernate.validator.constraints.Length;

@Entity
@Table(name = "userinfo")
public class User {
  @Id
  @GeneratedValue
  private long id;
  
  @Column(nullable = false, unique = true)
  @NotEmpty(message="用戶名不能為空")
  private String userName;
  
  @Column(nullable = false)
  @NotEmpty(message="密碼不能為空")
  @Length(min=6, message="密碼長度不能少于6位")
  private String password;
  
  @Column(nullable = false)
  private int age;

  //必須有構造
   public User() {
   }
     
  public long getId() {
    return id;
  }

  public User setId(long id) {
    this.id = id;
    return this;
  }

  public String getUserName() {
    return userName;
  }

  public User setUserName(String userName) {
    this.userName = userName;
    return this;
  }

  public String getPassword() {
    return password;
  }

  public User setPassword(String password) {
    this.password = password;
    return this;
  }

  public int getAge() {
    return age;
  }

  public User setAge(int age) {
    this.age = age;
    return this;
  }
}

2、繼承JpaRepository類會自動實現很多內置的方法

package com.example.demo.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.entity.User;

public interface UserRepository extends JpaRepository {
  User findById(long id);
  void deleteById(Long id);
}

五、業務層

service調用jpa實現相關的增刪改查,實際項目中service層處理具體的業務代碼。

1、UserService.java

package com.example.demo.service;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import com.example.demo.entity.User;
public interface UserService {
  
  public Page getUserPage(Pageable pageable);  
  public List getUserList();
  public User findUserById(long id);
  public void save(User user);
  public void edit(User user);
  public void delete(long id);
}

2、UserServiceImpl.java

package com.example.demo.service.impl;

import java.util.List;
import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

import com.example.demo.entity.User;
import com.example.demo.repository.UserRepository;
import com.example.demo.service.UserService;

@Service
public class UserServiceImpl implements UserService {
  
  @Autowired
  private UserRepository userRepository;

  @Override
  public Page getUserPage(Pageable pageable) {
    return userRepository.findAll(pageable);
  }
  
  @Override
  public List getUserList() {
    return userRepository.findAll();
  }

  @Override
  public User findUserById(long id) {
    return userRepository.findById(id) ;
  }

  @Override
  public void save(User user) {
    userRepository.save(user);
  }

  @Override
  public void edit(User user) {
    userRepository.save(user);
  }

  @Override
  public void delete(long id) {
    userRepository.deleteById(id);
  }

}

六、控制層

package com.example.demo.web.controller;

import java.util.List;

import javax.annotation.Resource;
import javax.validation.Valid;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;

@Controller
public class UserController {
  
  @Resource
  UserService userService;

  @RequestMapping("/")
  public String index() {
    return "redirect:/list";
  }

  @RequestMapping("/list")
  public String list(Model model) {
    List users=userService.getUserList();
    model.addAttribute("users", users);
    
    /*int page=1,size=2;
    Sort sort = new Sort(Direction.DESC, "id");
    Pageable pageable = PageRequest.of(page, size, sort);
    model.addAttribute("users", pageable);*/
    
    return "user/list";
  }

  @RequestMapping("/toAdd")
  public String toAdd() {
    return "user/userAdd";
  }

  @RequestMapping("/add")
  public @ResponseBody User add(@Valid User user, BindingResult result) {
    if (result.hasErrors()) {
      List list = result.getAllErrors();
      for (ObjectError error : list) {
        System.out.println(error.getDefaultMessage());
      }
      return null;
    }
    userService.save(user);
    return user;    
  }

  @RequestMapping("/toEdit")
  public String toEdit(Model model,Long id) {
    User user=userService.findUserById(id);
    model.addAttribute("user", user);
    return "user/userEdit";
  }

  @RequestMapping("/edit")
  public String edit(User user) {
    userService.edit(user);
    return "redirect:/list";
  }

  @RequestMapping("/delete")
  public String delete(Long id) {
    userService.delete(id);
    return "redirect:/list";
  }
}

七、頁面

1、列表頁 list.hmtl



  
  userList
  



用戶列表



# User Name Password Age Edit Delete
1 neo Otto 6 edit delete
add

Spring boot2+jpa+thymeleaf如何實現增刪改查

2、新增頁 userAdd.html



  
  user
  



添加用戶



     

Spring boot2+jpa+thymeleaf如何實現增刪改查

3、修改頁 userEdit.html



  
  user
  



修改用戶



      Back

看完上述內容,是不是對Spring boot2+jpa+thymeleaf如何實現增刪改查有進一步的了解,如果還想學習更多內容,歡迎關注創新互聯行業資訊頻道。


網站欄目:Springboot2+jpa+thymeleaf如何實現增刪改查
URL標題:http://www.xueling.net.cn/article/pcjjpj.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产日韩在线观看视频 | 91免费看`日韩一区二区 | 一本大道一卡二大卡三卡免费 | 亚洲国产精品无码久久久久久曰 | 天天躁夜夜躁狠狠久久成人网 | 99久久这里只有精品 | AV无码久久久久不卡网站蜜桃 | 夜夜爱夜夜操 | 全国最大成人免费视频 | 91精品久久久久久久久久另类 | 无套内谢孕妇毛片免费看看 | 最新国产中文字幕 | 日本大人吃奶视频xxxx | 国产成人?合一区二区三区 国产人成一区二区三区影院 | 国产乱人伦偷精品视频不卡 | AV狠狠色超碰丁香婷婷综合久久 | 久久精品国产精品亚洲综合 | 亚洲va欧美va国产综合久久 | 天天躁日日躁狠狠躁AV | 看黄色录像一级片 | 日本高清视频www在线观看 | 少妇SPA推油被扣高潮在线观看 | 日本三级日本三级日本三级极 | 亚洲国产精品一区二区九九 | 9久9久9久女女女九九九一九 | 亚洲第一在线综合网站 | 香蕉久久夜色精品国产更新时间 | 日本韩国一区二区三区视频 | 91www在线观看 | 免费无码在线播放av | 国内精品久久久久久久久久 | 日本中文字幕中出在线 | 老色批av在线精品 | 永久免费a片在线观看全网站 | 亚洲熟妇无码爱V在线观看 日韩艹逼 | 日本a一区 | 大JI巴好深好爽又大又粗视频 | 欧美一区二区在线视频 | 国产一区二区二 | 亚洲国产精品高清久久久 | 久久亚洲精品无码AV红樱桃 |