当前位置: 首页 > news >正文

网站知识介绍建设部监理网站官网

网站知识介绍,建设部监理网站官网,wordpress同标题关键字,初一下电脑课书做网站一:前言 这个就是用springboot实现后台管理(CRUD)的小demo,相比于SSM的配置地狱#xff0c;springboot的自动配置确实很牛#xff0c;tomcat都内置#xff0c;我们想要修改相关的信息只要在yaml配置文件修改就行了#xff0c;关于Dao层#xff0c;这个mybatis-plus,quo实…一:前言 这个就是用springboot实现后台管理(CRUD)的小demo,相比于SSM的配置地狱springboot的自动配置确实很牛tomcat都内置我们想要修改相关的信息只要在yaml配置文件修改就行了关于Dao层这个mybatis-plus,quo实是很牛逼这个连sql都是省略了,但也仅限于单表的sql,复杂的sql语句还得靠mapper.xml中进行书写。总之一句话你不学SSM,springboot里面很多原理不理解但是学了springboot,SSM配置起来是真麻烦。 二:用到的相关技术 spingboot(2.6.3)Mybatis-PlusMaventhmeleafMysql 环境是JDK1.8maven是3.4.1mysql5.7 三:实现功能流程 在springboot官方文档中找到对应的 场景启动器starter分析其–xxxautoConfigration然后找到xxxxProperties绑定了配置文件有哪些。哪些需要修改 还是自定义 四:功能展示 1:登录首页 2:主页面 3:展示表单select 4:删除一条记录delete 点击删除 会自动删除同时的话在那页删除还会自动回到那页这里就是点击删除 发送这个请求的时候把当前页的信息也给发送处理的请求的所以请求里信息会被Controller层处理处理完请求在把该页信息用到反应请求的路径上。 5:修改一条记录Update 修改页面: 6:增加一条记录信息insert 五:上码 1:导入相关场景启动器 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.6.3/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.wyj/groupIdartifactIdspringboot-05-web02/artifactIdversion0.0.1-SNAPSHOT/versionnamespringboot-05-web02/namedescriptionspringboot-05-web02/descriptionpropertiesjava.version11/java.versionrepackage.classifier/spring-native.version0.11.2/spring-native.versionkotlin.version1.6.20-M1/kotlin.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--导入jdbc的场景启动器--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jdbc/artifactId/dependency!--导入数据库的驱动包 因为我们不知道到底是哪个驱动器 mysql 还是其他的 --!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.47/version/dependency!--导入Mybatis-Plus的场景--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.1/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.jetbrains.kotlin/groupIdartifactIdkotlin-stdlib-jdk8/artifactIdversion${kotlin.version}/version/dependencydependencygroupIdorg.jetbrains.kotlin/groupIdartifactIdkotlin-test/artifactIdversion${kotlin.version}/versionscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludesclassifier${repackage.classifier}/classifierimagebuilderpaketobuildpacks/builder:tiny/builderenvBP_NATIVE_IMAGEtrue/BP_NATIVE_IMAGE/env/image/configuration/pluginplugingroupIdorg.springframework.experimental/groupIdartifactIdspring-aot-maven-plugin/artifactIdversion${spring-native.version}/versionexecutionsexecutionidtest-generate/idgoalsgoaltest-generate/goal/goals/executionexecutionidgenerate/idgoalsgoalgenerate/goal/goals/execution/executions/pluginplugingroupIdorg.jetbrains.kotlin/groupIdartifactIdkotlin-maven-plugin/artifactIdversion${kotlin.version}/versionexecutionsexecutionidcompile/idphasecompile/phasegoalsgoalcompile/goal/goals/executionexecutionidtest-compile/idphasetest-compile/phasegoalsgoaltest-compile/goal/goals/execution/executionsconfigurationjvmTarget1.8/jvmTarget/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdexecutionsexecutionidcompile/idphasecompile/phasegoalsgoalcompile/goal/goals/executionexecutionidtestCompile/idphasetest-compile/phasegoalsgoaltestCompile/goal/goals/execution/executions/plugin/plugins/buildrepositoriesrepositoryidspring-releases/idnameSpring Releases/nameurlhttps://repo.spring.io/release/urlsnapshotsenabledfalse/enabled/snapshots/repository/repositoriespluginRepositoriespluginRepositoryidspring-releases/idnameSpring Releases/nameurlhttps://repo.spring.io/release/urlsnapshotsenabledfalse/enabled/snapshots/pluginRepository/pluginRepositoriesprofilesprofileidnative/idpropertiesrepackage.classifierexec/repackage.classifiernative-buildtools.version0.9.9/native-buildtools.version/propertiesdependenciesdependencygroupIdorg.junit.platform/groupIdartifactIdjunit-platform-launcher/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.graalvm.buildtools/groupIdartifactIdnative-maven-plugin/artifactIdversion${native-buildtools.version}/versionextensionstrue/extensionsexecutionsexecutionidtest-native/idphasetest/phasegoalsgoaltest/goal/goals/executionexecutionidbuild-native/idphasepackage/phasegoalsgoalbuild/goal/goals/execution/executions/plugin/plugins/build/profile/profiles/project 2:yaml配置文件 spring:datasource:url: jdbc:mysql://localhost:3306/smbms?useSSLtrueusername: rootpassword: wyjdriver-class-name: com.mysql.jdbc.Driver#Mybatis-plus配置 mybatis-plus:#全局配置文件的路径config-location: classpath:mybatis/mybatis-config.xml#指明.xml文件的路径mapper-locations: classpath:mybatis/mapper/*.xml3:Pojo (1):admin package com.wyj.Pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString;Data AllArgsConstructor NoArgsConstructor ToString public class Admin {private String userName;private String passWord; }(2):User package com.wyj.Pojo;import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data AllArgsConstructor NoArgsConstructor TableName(value userTO) public class User {//Mybatis-Plus的测试数据private Integer id;private String name;private Integer age;private String email;} 4:mapper 这里继承了BaseMapper,很多sql就不用写了这里还需要注意 的是默认的表明是和类名一致的如过类名和表名不一致的话需要用注解TableName 把表名注上 package com.wyj.mapper;import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.wyj.Pojo.User; import org.apache.ibatis.annotations.Mapper;import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map;Mapper public interface UserMapper extends BaseMapperUser {} 5:Service层 (1)Service接口 package com.wyj.Service;import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wyj.Pojo.User; import com.wyj.mapper.UserMapper;import java.util.List;public interface UserService extends IServiceUser {} (2):Service的实现类 package com.wyj.Service.imp;import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wyj.Pojo.User; import com.wyj.Service.UserService; import com.wyj.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class UserServiceImp extends ServiceImplUserMapper,User implements UserService {} 6:Controller层 (1):IndexController package com.wyj.Controller;import com.wyj.Pojo.Admin; import com.wyj.Pojo.TextUser; import com.wyj.Pojo.User; import com.wyj.Service.imp.TextUserServiceImp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpSession;Controller public class IndexController {//设置首页 只要请求是/或者是/login 我们就会返回首页RequestMapping(value {/,/login})public String loginPage() {return login;}RequestMapping(/let)public String loginPage(Admin admin, HttpSession session, Model model) {if (wyj.equals(admin.getUserName()) 123.equals(admin.getPassWord())) {session.setAttribute(loginUser,admin);return redirect:main.html;//这里重定向的是一个请求所以得重新写一个}else{ //一般我们return的是一个 html 页面//视图解析器自动给我们加上前缀和后缀model.addAttribute(msg,请输入正确的密码和用户名);return login;}}RequestMapping(/main.html)public String showPage() {return main;}} (2):TableController package com.wyj.Controller;import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wyj.Pojo.User; import com.wyj.Service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.mvc.support.RedirectAttributes;import java.util.List;Controller public class TableController {Autowiredprivate UserService userService;GetMapping(/basic_table)public String basic_table() {return table/basic_table;}GetMapping(/dynamic_table)public String dynamic_table(RequestParam(value pn,defaultValue 1) Integer pn, Model model) {//ListUser list userService.getUserList();//构造分页参数PageUser page new Page(pn, 2);//调用page进行分页PageUser userPage userService.page(page, null);long current userPage.getCurrent();//当前是几页long pages userPage.getPages();//当前总共的页数long total userPage.getTotal();//总共的记录数目/条数//获取表当中的数据ListUser records userPage.getRecords();//这个userPage里面有我们存着的当前页和我们的表中的数据但这个数据得靠我们自己取出来model.addAttribute(users,userPage);return table/dynamic_table;}//删除功能// ResponseBodyGetMapping(/delete)public String deleteTable(RequestParam(id) Integer id,RequestParam(value pn,defaultValue 1) Integer pn,RedirectAttributes ra) {userService.removeById(id);//这个相当于从前端获取到一个参数 然后就将其加到我们新的重定向的路径上ra.addAttribute(pn,pn);return redirect:dynamic_table;}//修改一个用户的信息GetMapping(/update)public String updateTable(RequestParam(id) Integer id,RequestParam(name) String name,RequestParam(age) Integer age,RequestParam(email) String email,Model model) {User user new User();//获取到我们要修改用户的信息的id信息user.setId(id);if(name ! null) user.setName(name);if(age ! null) user.setAge(age);if(email ! null) user.setEmail(email);userService.updateById(user);model.addAttribute(msg,修改用户信息成功);return redirect:dynamic_table;}//增加一个用户GetMapping(/add_table)public String addTable(RequestParam(id) Integer id,RequestParam(name) String name,RequestParam(age) Integer age,RequestParam(email) String email) {User user new User(id, name, age, email);userService.save(user);return redirect:dynamic_table;}GetMapping(/editable_table)public String editable_table() {return table/editable_table;}GetMapping(/responsive_table)public String responsive_table() {return table/responsive_table;}GetMapping(/update_table.html)public String getUpdateTable (Model model,Integer id) {User user userService.getById(id);model.addAttribute(user,user);return table/update_table;}//转发到增加用户页面GetMapping(add_table.html)public String addTable() {return table/add_table;}} 7:拦截器 package com.wyj.MyLanJie;import lombok.extern.log4j.Log4j; import lombok.extern.slf4j.Slf4j; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;Slf4j public class loginInterceptor implements HandlerInterceptor {/**** 方法处理前:如果返回true 那么就继续往下执行 返回false就不往下执行了** param request* param response* param handler* return* throws Exception*//*** preHandle方法是进行处理器拦截用的顾名思义该方法将在Controller处理之前进行调用SpringMVC中的Interceptor拦截器是链式的可以同时存在* 多个Interceptor然后SpringMVC会根据声明的前后顺序一个接一个的执行而且所有的Interceptor中的preHandle方法都会在* Controller方法调用之前调用。SpringMVC的这种Interceptor链式结构也是可以进行中断的这种中断方式是令preHandle的返* 回值为false当preHandle的返回值为false的时候整个请求就结束了。*/Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {HttpSession session request.getSession();Object loginUser session.getAttribute(loginUser);if(loginUser ! null) {return true;//放行}request.setAttribute(msg,请先登录);request.getRequestDispatcher(/login).forward(request,response);return false;}Override//方法执行后public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {} } 这个需要我们自动配置一下有些页面是放行的有些页面是拦截的 package com.wyj.Config;import com.wyj.MyLanJie.loginInterceptor; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Configuration public class interceptorConfig implements WebMvcConfigurer {Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new loginInterceptor())//将拦截器注册到容器中.addPathPatterns(/**)//设置拦截要求.excludePathPatterns(/,/login,/css/**,/fonts/**,/images/**,/js/**,/aa/**,/let);//放行的要求}}
http://www.sadfv.cn/news/96636/

相关文章:

  • 国外设计欣赏网站做电影网站怎么拿到版权
  • 农业行业网站模板蔡甸做网站
  • 个人可以做淘宝客网站吗wordpress 文章间距
  • 机构网站源码建个商场网站
  • 平台网站开发公司WordPress开启局域网
  • 网站建设公司骗人关键词优化的价格查询
  • 上海网站建设模板红圈工程项目管理软件
  • 工程建设项目在哪个网站查询莱芜金点子信息港最新招聘信息
  • 网站建设多少钱 知乎网页游戏脚本制作教程
  • 教学方面网站建设中国住建部和城乡建设部
  • 网站建设用的软件上海市浦东新区建设工程安全质量监督站网站
  • 经典网页设计欣赏网站优化seo技术
  • 沈阳城市建设学院网站中国vpswindows野外农民工
  • ip网站怎么做免费无版权图片网站
  • 上海做网站公司做网站的公司品牌推广公司排名
  • 网站建设人员考核找承包工程的平台
  • 设计网站公司专注y湖南岚鸿知 名网站制作大概需要多少钱
  • 网站建设的营业执照天津网站开发价格
  • 免费的动态ppt网站查询成绩的网站怎么做
  • 泉州做网站工资山东各地网站备案
  • 网站制作xiu021中国十大品牌策划公司
  • 怎样查看网站是否被百度收录抖抈短视频app下载安装
  • 电商网站建设讯息教你做面食的网站
  • 西部数码网站备份建设银行办信用卡网站首页
  • 做网站好还是做程序员好免费咨询律师的电话
  • 谁会建设网站服装商城网站建设
  • 神码ai智能写作网站网站改版换了域名
  • 大兴企业官网网站建设拱墅抖音seo搜索排名推广
  • 做网站用虚拟机还是服务器成都商城网站开发设计
  • 在川航网站购票后怎么做专业的网站制作