27.SPRINGBOOT 整合 THYMELEAF 做增删改查 CRUD和分页


运行 Application.java ,然后访问地址:
 
http://127.0.0.1:8080/thymeleaf/listCategory
 
先运行,看到效果,再学习
 步骤 3 : 

表结构和数据

1
2
3
4
5
6
7
create database how2java;
use how2java;
CREATE TABLE category_ (
   id int(11) NOT NULL AUTO_INCREMENT,
   name varchar(30),
   PRIMARY KEY (id)
) DEFAULT CHARSET=UTF8;
 步骤 5 : 

application.properties

增加数据库相关配置
 
#数据库
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#thymeleaf 配置
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
#缓存设置为false, 这样修改之后马上生效,便于调试
spring.thymeleaf.cache=false
#上下文
server.context-path=/thymeleaf
 
#数据库
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
 步骤 6 : 

pom.xml

修改pom.xml, 增加 jdbc,mybatis, pageHelper 的jar包
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<? xml  version = "1.0"  encoding = "UTF-8" ?>
< project  xmlns = "http://maven.apache.org/POM/4.0.0"  xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
     < modelVersion >4.0.0</ modelVersion >
 
   < groupId >com.how2java</ groupId >
   < artifactId >thymeleaf</ artifactId >
   < version >0.0.1-SNAPSHOT</ version >
   < name >thymeleaf</ name >
   < description >thymeleaf</ description >
   < packaging >war</ packaging >
   
     < parent >
         < groupId >org.springframework.boot</ groupId >
         < artifactId >spring-boot-starter-parent</ artifactId >
         < version >1.5.9.RELEASE</ version >
     </ parent >
 
     < dependencies >
         < dependency >
             < groupId >org.springframework.boot</ groupId >
             < artifactId >spring-boot-starter-web</ artifactId >
         </ dependency >
         < dependency >
           < groupId >org.springframework.boot</ groupId >
           < artifactId >spring-boot-starter-thymeleaf</ artifactId >
         </ dependency >
         < dependency >
             < groupId >org.springframework.boot</ groupId >
             < artifactId >spring-boot-starter-tomcat</ artifactId >
             
         </ dependency >
         < dependency >
               < groupId >junit</ groupId >
               < artifactId >junit</ artifactId >
               < version >3.8.1</ version >
               < scope >test</ scope >
         </ dependency >
         <!-- servlet依赖. -->
         < dependency >
               < groupId >javax.servlet</ groupId >
               < artifactId >javax.servlet-api</ artifactId >
               
         </ dependency >
               < dependency >
                      < groupId >javax.servlet</ groupId >
                      < artifactId >jstl</ artifactId >
               </ dependency >
         <!-- tomcat的支持.-->
         < dependency >
                < groupId >org.apache.tomcat.embed</ groupId >
                < artifactId >tomcat-embed-jasper</ artifactId >
                
         </ dependency >    
         < dependency >
             < groupId >org.springframework.boot</ groupId >
             < artifactId >spring-boot-devtools</ artifactId >
             < optional >true</ optional <!-- 这个需要为 true 热部署才有效 -->
         </ dependency >   
         <!-- mybatis -->
         < dependency >
             < groupId >org.mybatis.spring.boot</ groupId >
             < artifactId >mybatis-spring-boot-starter</ artifactId >
             < version >1.1.1</ version >
         </ dependency >
         <!-- mysql -->
         < dependency >
             < groupId >mysql</ groupId >
             < artifactId >mysql-connector-java</ artifactId >
             < version >5.1.21</ version >
         </ dependency >    
         <!-- pageHelper -->
         < dependency >
             < groupId >com.github.pagehelper</ groupId >
             < artifactId >pagehelper</ artifactId >
             < version >4.1.6</ version >
         </ dependency >
     </ dependencies >
 
     < properties >
         < java.version >1.8</ java.version >
     </ properties >
 
     < build >
         < plugins >
             < plugin >
                 < groupId >org.springframework.boot</ groupId >
                 < artifactId >spring-boot-maven-plugin</ artifactId >
             </ plugin >
         </ plugins >
     </ build >
 
</ project >
 步骤 7 : 

Category

增加实体类
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package  com.how2java.springboot.pojo;
  
public  class  Category {
   
     private  int  id;
       
     private  String name;
     public  int  getId() {
         return  id;
     }
     public  void  setId( int  id) {
         this .id = id;
     }
     public  String getName() {
         return  name;
     }
     public  void  setName(String name) {
         this .name = name;
     }
       
}
 步骤 8 : 

CategoryMapper

增加Mapper类
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package  com.how2java.springboot.mapper;
  
import  java.util.List;
  
import  org.apache.ibatis.annotations.Delete;
import  org.apache.ibatis.annotations.Insert;
import  org.apache.ibatis.annotations.Mapper;
import  org.apache.ibatis.annotations.Select;
import  org.apache.ibatis.annotations.Update;
  
import  com.how2java.springboot.pojo.Category;
  
@Mapper
public  interface  CategoryMapper {
  
     @Select ( "select * from category_ " )
     List<Category> findAll();
      
     @Insert ( " insert into category_ ( name ) values (#{name}) " )
     public  int  save(Category category);
      
     @Delete ( " delete from category_ where id= #{id} " )
     public  void  delete( int  id);
          
     @Select ( "select * from category_ where id= #{id} " )
     public  Category get( int  id);
        
     @Update ( "update category_ set name=#{name} where id=#{id} " )
     public  int  update(Category category);
  
}
 步骤 9 : 

CategoryController

增加控制类
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package  com.how2java.springboot.web;
import  java.util.List;
 
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.RequestParam;
 
import  com.github.pagehelper.PageHelper;
import  com.github.pagehelper.PageInfo;
import  com.how2java.springboot.mapper.CategoryMapper;
import  com.how2java.springboot.pojo.Category;
    
@Controller
public  class  CategoryController {
     @Autowired  CategoryMapper categoryMapper;
       
     @RequestMapping ( "/addCategory" )
     public  String listCategory(Category c)  throws  Exception {
         categoryMapper.save(c);
         return  "redirect:listCategory" ;
     }
     @RequestMapping ( "/deleteCategory" )
     public  String deleteCategory(Category c)  throws  Exception {
         categoryMapper.delete(c.getId());
         return  "redirect:listCategory" ;
     }
     @RequestMapping ( "/updateCategory" )
     public  String updateCategory(Category c)  throws  Exception {
         categoryMapper.update(c);
         return  "redirect:listCategory" ;
     }
     @RequestMapping ( "/editCategory" )
     public  String listCategory( int  id,Model m)  throws  Exception {
         Category c= categoryMapper.get(id);
         m.addAttribute( "c" , c);
         return  "editCategory" ;
     }
      
     @RequestMapping ( "/listCategory" )
     public  String listCategory(Model m, @RequestParam (value =  "start" , defaultValue =  "0" int start, @RequestParam (value =  "size" , defaultValue =  "5" int  size)  throws  Exception {
         PageHelper.startPage(start,size, "id desc" );
         List<Category> cs=categoryMapper.findAll();
         PageInfo<Category> page =  new  PageInfo<>(cs);
         m.addAttribute( "page" , page);       
         return  "listCategory" ;
     }
      
}
 步骤 10 : 

PageHelperConfig

配置 PageHealper
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package  com.how2java.springboot.config;
  
import  java.util.Properties;
  
import  org.springframework.context.annotation.Bean;
import  org.springframework.context.annotation.Configuration;
  
import  com.github.pagehelper.PageHelper;
  
@Configuration
public  class  PageHelperConfig {
  
     @Bean
     public  PageHelper pageHelper() {
         PageHelper pageHelper =  new  PageHelper();
         Properties p =  new  Properties();
         p.setProperty( "offsetAsPageNum" "true" );
         p.setProperty( "rowBoundsWithCount" "true" );
         p.setProperty( "reasonable" "true" );
         pageHelper.setProperties(p);
         return  pageHelper;
     }
}
 步骤 11 : 

listCategory.html

增加和查询的页面 listCategory.html
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!DOCTYPE HTML>
< html  xmlns:th = "http://www.thymeleaf.org" >
< head >
     < title >hello</ title >
     < meta  http-equiv = "Content-Type"  content = "text/html; charset=UTF-8"  />
</ head >
< body >
 
< div  style = "width:500px;margin:20px auto;text-align: center" >
     < table  align = 'center'  border = '1'  cellspacing = '0' >
         < tr >
             < td >id</ td >
             < td >name</ td >
             < td >编辑</ td >
             < td >删除</ td >
         </ tr >
         < tr  th:each = "c:${page.list}" >
             < td  th:text = "${c.id}" ></ td >
             < td  th:text = "${c.name}" ></ td >
             < td >< a  th:href = "@{/editCategory(id=${c.id})}" >编辑</ a ></ td >
             < td >< a  th:href = "@{/deleteCategory(id=${c.id})}" >删除</ a ></ td >
         </ tr >
     </ table >
     < br />
     < div >
             < a  th:href = "@{/listCategory(start=0)}" >[首  页]</ a >
             < a  th:href = "@{/listCategory(start=${page.pageNum-1})}" >[上一页]</ a >
             < a  th:href = "@{/listCategory(start=${page.pageNum+1})}" >[下一页]</ a >
             < a  th:href = "@{/listCategory(start=${page.pages})}" >[末  页]</ a >
     </ div >
     < br />   
     < form  action = "addCategory"  method = "post" >
       
     name: < input  name = "name" /> < br />
     < button  type = "submit" >提交</ button >
       
     </ form >
</ div >
 
</ body >
</ html >
 步骤 12 : 

editCategory.html

修改页面
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE HTML>
< html  xmlns:th = "http://www.thymeleaf.org" >
< head >
     < title >hello</ title >
     < meta  http-equiv = "Content-Type"  content = "text/html; charset=UTF-8"  />
</ head >
< body >
< div  style = "margin:0px auto; width:500px" >
   
     < form  action = "updateCategory"  method = "post" >
       
     name: < input  name = "name"  th:value = "${c.name}" /> < br />
       
     < input  name = "id"  type = "hidden"  th:value = "${c.id}" />
     < button  type = "submit" >提交</ button >
       
     </ form >
</ div >
</ body >
 
</ html
 步骤 13 : 

重启测试

重新运行 Application.java 然后访问地址:
 
http://127.0.0.1:8080/thymeleaf/listCategory
 
下载地址:  http://download.how2j.cn/1779/thymeleaf.rar


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM