springboot demo1

demo功能:学生信息增删改查

项目目录

 

1.springboot启动类

spring boot 的启动器的位置:在controler这样一些包的外面,不能同级

package com.coymaple.bootdemo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;


@MapperScan("com.coymaple.bootdemo.mapper")
@SpringBootApplication
@EnableCaching
public class SpringBootDemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootDemoApplication.class, args);
	}
}

springboot整合mybatis需要加MapperScan注解扫描包

2.缓存功能

service层

@Override
	@Cacheable(value="student")
	public PageInfo<Student> findPage(int pageNum, int pageSize) {
		// TODO Auto-generated method stub
		PageHelper.startPage(pageNum,pageSize);
		List<Student> list=studentMapper.findAll();
		PageInfo<Student> pageinfo=new PageInfo<>(list);
		return pageinfo;
	}

使用注解开启缓存,但是当进行完添加或者修改之后该缓存不会改变,所以需要在添加和修改方法上面清除缓存记录

@Override
	@CacheEvict(value="student",allEntries=true)
	public int update(Student stu) {
		// TODO Auto-generated method stub
		return studentMapper.updateByPrimaryKeySelective(stu);
	}

 

3.分页功能实现

application.properties配置

# pagehelper分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
pagehelper.row-bounds-with-count=true

分页前端使用的jquery的分页插件 jqPaginator.js

mybatis的分页插件pagehelper

引入依赖

<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.2.3</version>
		</dependency>

controller类接受分页参数,在第一页的时候不会向controller传参,需要设置默认值

@RequestMapping("/listPage")
	public ResultBean listPage(@RequestParam(name = "pageNum",required=false,defaultValue="1") int pageNum,@RequestParam(name = "pageSize",required=false,defaultValue="5") int pageSize){
		
		PageInfo<Student> pageinfo=studentService.findPage(pageNum, pageSize);
		ResultBean result=new ResultBean();
		if(pageinfo!=null){
			result.setCode(0);
			result.setData(pageinfo);
			result.setMsg("success");
		}else{
			result.setCode(1);
			result.setMsg("fail");
		}
		return result;
	}

分页的功能要在service层实现,因为使用了缓存,使用ehcache缓存需要ehcaceh.xml文件,并且在启动类中添加注解,如果在controller层添加缓存无法实现分页

分页前台实现:首页显示不会向后台传递参数,所以需要在controller设置默认参数 

$.jqPaginator('#pagination2', {
			        totalPages: data.pages,
			        visiblePages: 5<data.pages?5:data.pages,
			        currentPage: data.pageNum,
			        prev: '<li class="prev"><a href="javascript:;">上一页</a></li>',
			        next: '<li class="next"><a href="javascript:;">下一页</a></li>',
			        page: '<li class="page"><a href="javascript:;">{{page}}</a></li>', 
			        onPageChange: function (pageNum, type) {
			        	
			            //$('#p2').text(type + ':' + pageNum);
			            if(type=="change"){
			            	changePageData(pageNum);
			            }
			            
			        }
			    });

点击上下页触发函数
 

function changePageData(pageNum){
	//查询全部
	$.ajax({
		   type: "post",
		   url: '/student/listPage',
		   data: {"pageNum":pageNum},
		   success: function(result){
		     if(result.code == 0){
		    	 var data = result.data;
		    	 if(data){
		    		 
		    		 $('#pagination2').jqPaginator('option', {
		    			    currentPage: data.pageNum
		    			});
		    		 
		    		 $("#studentList").children("tbody").empty();
		    		 $.each(data.list,function(i,n){
		    			 var $row = $("#rowTemplate").clone();
		    			 
		    			 dataBindToElement($row,n);
		    			 
		    			 $("#studentList").children("tbody").append($row);
		    		 });
		    		 
		    	 }
		    	 else{
		    		 
		    	 }
		     }
		     else{
		    	 if(result.returnCode == -1){
		    		 alert(result.message);
		    	 }
		    	 else{
		    		 alert("Unknow error!")
		    	 }
		     }
		   }
		});
	
}

添加功能:

页面使用html加ajax方式,后台接受数据类型为json类型,所以需要将表单数据转化成json数据格式,传递数据为json类型时需要在ajax参数中添加:contentType : 'application/json;charset=UTF-8',

var DataDeal = {
				//将从form中通过$('#refer').serialize()获取的值转成json
				formToJson : function(data) {
					data = data.replace(/&/g, "\",\"");
					data = data.replace(/=/g, "\":\"");
					data = "{\"" + data + "\"}";
					return data;
				}
			};
			var dataCollect = $('#form').serialize();
			dataCollect = decodeURIComponent(dataCollect, true);//防止中文乱码
			var jsondata = DataDeal.formToJson(dataCollect);//转化为json

修改功能:

html携带参数跳转,在另一个html中获得url中携带的参数

function oneValues() {
		var result;
		var url = window.location.search; //获取url中"?"符后的字串  
		if (url.indexOf("?") != -1) {
			result = url.substr(url.indexOf("=") + 1);
		}
		return result;
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Nacos SpringBoot Demo 是一个基于 SpringBoot 框架的演示项目,主要演示了如何在 SpringBoot 项目使用 Nacos 进行服务注册和发现。 Nacos 是一个开源的服务发现和配置管理平台,它提供了服务注册、服务发现、服务健康监测、动态配置等功能,可以帮助开发人员更好地管理和监控微服务架构的各个服务。 在 Nacos SpringBoot Demo ,我们可以看到如何在 SpringBoot 项目引入 Nacos 的依赖,配置 Nacos 的相关信息,以及使用 Nacos 提供的 API 进行服务的注册和发现。 首先,我们需要在 SpringBoot 项目的 pom.xml 文件添加 Nacos 相关的依赖,然后在 application.properties 或 application.yml 文件配置 Nacos 的服务器地址、命名空间、端口等信息。 接下来,我们可以通过在代码使用 @EnableDiscoveryClient 注解来启用服务的注册和发现功能,在需要注册的服务上使用 @Service 注解,然后应用启动时,该服务会自动注册到 Nacos 服务器上。当其他服务需要调用该服务时,可以使用 @Autowired 注解自动注入该服务,并使用该服务的方法进行调用。 除了服务注册和发现,Nacos SpringBoot Demo 还演示了如何使用 Nacos 进行动态配置。我们可以在 Nacos 的管理界面为不同的服务或项目添加动态配置,然后在代码使用 @Value 注解读取这些配置,并在代码实时使用这些配置。 总之,Nacos SpringBoot Demo 展示了如何使用 Nacos 实现微服务架构的服务注册、发现和动态配置等功能,帮助开发人员更方便地构建和管理微服务应用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值