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

自贡网站优化手机上的软件网站建设

自贡网站优化,手机上的软件网站建设,有出国做飞机求同行的网站,西安动力无限网站建设注#xff1a;此为笔者学习狂神说SpringMVC的笔记#xff0c;其中包含个人的笔记和理解#xff0c;仅做学习笔记之用#xff0c;更多详细资讯请出门左拐B站#xff1a;狂神说!!! 10、ssm整合 问了一下ChatGPT SSM 是一个基于 Java 的开发框架整合#xff0c;由 Spring、…注此为笔者学习狂神说SpringMVC的笔记其中包含个人的笔记和理解仅做学习笔记之用更多详细资讯请出门左拐B站狂神说!!! 10、ssm整合 问了一下ChatGPT SSM 是一个基于 Java 的开发框架整合由 Spring、Spring MVC 和 MyBatis 三个开源框架组成。每个框架都有不同的职责和作用通过整合可以发挥各自的优势形成一个完整的、高效的 Java 开发框架。 下面简要解释一下 SSM 各个组成部分的作用 Spring 作用 提供了一个轻量级的 IoC控制反转容器用于管理应用组件的生命周期和配置。IoC容器 负责创建对象、管理对象的依赖关系实现了对象的松耦合。AOP面向切面编程 提供了面向切面编程的支持可以方便地实现事务管理、日志记录等横切关注点。 Spring MVC 作用 是一个基于 MVC 模式的 Web 框架用于构建 Web 层的应用程序。控制器层 通过控制器Controller处理用户请求将请求映射到相应的业务逻辑处理方法。模型层 通过模型Model将数据传递到视图层与业务逻辑进行交互。视图层 通过视图View负责渲染页面呈现给用户。 MyBatis 作用 是一个持久层框架用于简化数据库操作和 SQL 查询的编写。ORM对象关系映射 将数据库表映射为 Java 对象通过配置文件或注解实现对象与数据库表之间的映射关系。SQL映射 提供了 XML 文件或注解的方式定义 SQL 查询可以更灵活地进行数据库操作。缓存 支持缓存机制提高数据库查询性能。 综合起来SSM 框架整合了 Spring 的 IoC 和 AOP 特性Spring MVC 的 Web 层框架以及 MyBatis 的持久层框架使得开发者能够更方便地进行企业级 Java 应用的开发。通过配置文件和注解可以实现各层之间的松耦合提高代码的可维护性和可扩展性。整合后Spring 处理业务逻辑和控制反转Spring MVC 处理 Web 层MyBatis 处理数据库交互形成一个完整的、分层清晰的应用架构。 1、环境要求 环境 IDEAMySQL 5.7.19Tomcat 9Maven 3.6 要求 需要熟练掌握MySQL数据库SpringJavaWeb及MyBatis知识简单的前端知识 2、数据库环境 创建一个存放书籍数据的数据库表 CREATE DATABASE ssmbuild;USE ssmbuild;DROP TABLE IF EXISTS books;CREATE TABLE books ( bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT 书id, bookName VARCHAR(100) NOT NULL COMMENT 书名, bookCounts INT(11) NOT NULL COMMENT 数量, detail VARCHAR(200) NOT NULL COMMENT 描述, KEY bookID (bookID) ) ENGINEINNODB DEFAULT CHARSETutf8INSERT INTO books(bookID,bookName,bookCounts,detail)VALUES (1,Java,1,从入门到放弃), (2,MySQL,10,从删库到跑路), (3,Linux,5,从进门到进牢);3、基本环境搭建 1、新建一Maven项目ssmbuild 添加web的支持 2、导入相关的pom依赖 dependencies!--Junit--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version/dependency!--数据库驱动--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.47/version/dependency!-- 数据库连接池 --dependencygroupIdcom.mchange/groupIdartifactIdc3p0/artifactIdversion0.9.5.2/version/dependency!--Servlet - JSP --dependencygroupIdjavax.servlet/groupIdartifactIdservlet-api/artifactIdversion2.5/version/dependencydependencygroupIdjavax.servlet.jsp/groupIdartifactIdjsp-api/artifactIdversion2.2/version/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactIdversion1.2/version/dependency!--Mybatis--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.2/version/dependencydependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion2.0.2/version/dependency!--Spring--dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.1.9.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.1.9.RELEASE/version/dependency /dependencies3、Maven资源过滤设置 buildresourcesresourcedirectorysrc/main/java/directoryincludesinclude**/*.properties/includeinclude**/*.xml/include/includesfilteringfalse/filtering/resourceresourcedirectorysrc/main/resources/directoryincludesinclude**/*.properties/includeinclude**/*.xml/include/includesfilteringfalse/filtering/resource/resources /build4、建立基本结构和配置框架 com.kuang.pojo com.kuang.dao 声明扫描xml文件将xml和mapper绑定起来 com.kuang.service com.kuang.controllermybatis-config.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configuration/configurationapplicationContext.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd/beans5、Mybatis层编写 1、数据库配置文件 database.properties 2、IDEA关联数据库 3、编写MyBatis的核心配置文件 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configurationtypeAliasespackage namecom.kuang.pojo//typeAliasesmappersmapper resourcecom/kuang/dao/BookMapper.xml//mappers/configuration4、编写数据库对应的实体类 com.kuang.pojo.Books 使用lombok插件 package com.kuang.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data AllArgsConstructor NoArgsConstructor public class Books {private int bookID;private String bookName;private int bookCounts;private String detail;}5、编写Dao层的 Mapper接口 package com.kuang.dao;import com.kuang.pojo.Books; import java.util.List;public interface BookMapper {//增加一个Bookint addBook(Books book);//根据id删除一个Bookint deleteBookById(int id);//更新Bookint updateBook(Books books);//根据id查询,返回一个BookBooks queryBookById(int id);//查询全部Book,返回list集合ListBooks queryAllBook();}6、编写接口对应的 Mapper.xml 文件。需要导入MyBatis的包 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacecom.kuang.dao.BookMapper!--增加一个Book--insert idaddBook parameterTypeBooksinsert into ssmbuild.books(bookName,bookCounts,detail)values (#{bookName}, #{bookCounts}, #{detail})/insert!--根据id删除一个Book--delete iddeleteBookById parameterTypeintdelete from ssmbuild.books where bookID#{bookID}/delete!--更新Book--update idupdateBook parameterTypeBooksupdate ssmbuild.booksset bookName #{bookName},bookCounts #{bookCounts},detail #{detail}where bookID #{bookID}/update!--根据id查询,返回一个Book--select idqueryBookById resultTypeBooksselect * from ssmbuild.bookswhere bookID #{bookID}/select!--查询全部Book--select idqueryAllBook resultTypeBooksSELECT * from ssmbuild.books/select/mapper7、编写Service层的接口和实现类 接口 package com.kuang.service;import com.kuang.pojo.Books;import java.util.List;//BookService:底下需要去实现,调用dao层 public interface BookService {//增加一个Bookint addBook(Books book);//根据id删除一个Bookint deleteBookById(int id);//更新Bookint updateBook(Books books);//根据id查询,返回一个BookBooks queryBookById(int id);//查询全部Book,返回list集合ListBooks queryAllBook(); }实现类 package com.kuang.service;import com.kuang.dao.BookMapper; import com.kuang.pojo.Books; import java.util.List;public class BookServiceImpl implements BookService {//调用dao层的操作设置一个set接口方便Spring管理private BookMapper bookMapper;public void setBookMapper(BookMapper bookMapper) {this.bookMapper bookMapper;}public int addBook(Books book) {return bookMapper.addBook(book);}public int deleteBookById(int id) {return bookMapper.deleteBookById(id);}public int updateBook(Books books) {return bookMapper.updateBook(books);}public Books queryBookById(int id) {return bookMapper.queryBookById(id);}public ListBooks queryAllBook() {return bookMapper.queryAllBook();} }6、Spring层 1、配置Spring整合MyBatis我们这里数据源使用c3p0连接池 2、我们去编写Spring整合Mybatis的相关的配置文件spring-dao.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd!-- 配置整合mybatis --!-- 1.关联数据库文件 --context:property-placeholder locationclasspath:database.properties/!-- 2.数据库连接池 --!--数据库连接池dbcp 半自动化操作 不能自动连接c3p0 自动化操作自动的加载配置文件 并且设置到对象里面--bean iddataSource classcom.mchange.v2.c3p0.ComboPooledDataSource!-- 配置连接池属性 --property namedriverClass value${jdbc.driver}/property namejdbcUrl value${jdbc.url}/property nameuser value${jdbc.username}/property namepassword value${jdbc.password}/!-- c3p0连接池的私有属性 --property namemaxPoolSize value30/property nameminPoolSize value10/!-- 关闭连接后不自动commit --property nameautoCommitOnClose valuefalse/!-- 获取连接超时时间 --property namecheckoutTimeout value10000/!-- 当获取连接失败重试次数 --property nameacquireRetryAttempts value2//bean!-- 3.配置SqlSessionFactory对象 --bean idsqlSessionFactory classorg.mybatis.spring.SqlSessionFactoryBean!-- 注入数据库连接池 --property namedataSource refdataSource/!-- 配置MyBaties全局配置文件:mybatis-config.xml --property nameconfigLocation valueclasspath:mybatis-config.xml//bean!-- 4.配置扫描Dao接口包动态实现Dao接口注入到spring容器中 --!--解释 https://www.cnblogs.com/jpfss/p/7799806.html--bean classorg.mybatis.spring.mapper.MapperScannerConfigurer!-- 注入sqlSessionFactory --property namesqlSessionFactoryBeanName valuesqlSessionFactory/!-- 给出需要扫描Dao接口包 --property namebasePackage valuecom.kuang.dao//bean/beans3、Spring整合service层 理解applicationContext.xml、spring-dao、spring-service这些配置文件的关系和融合起来的起的作用或者直接让spring托管就可以了 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd!-- 扫描service相关的bean --context:component-scan base-packagecom.kuang.service /!--BookServiceImpl注入到IOC容器中--bean idBookServiceImpl classcom.kuang.service.BookServiceImplproperty namebookMapper refbookMapper//bean!-- 配置事务管理器 --bean idtransactionManager classorg.springframework.jdbc.datasource.DataSourceTransactionManager!-- 注入数据库连接池 --property namedataSource refdataSource //bean/beans7、SpringMVC层 1、web.xml spring-mvc.xml dao层、service层、mvc层整合起来 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdimport resourcespring-dao.xml/import resourcespring-service.xml/import resourcespring-mvc.xml//beansspringmvc层的所有的请求都被这个dispatchServlet核心分发器接管了 有错误的dispatchServlet绑定核心配置文件的时候只绑定了mvc层的配置文件dao、service层的没有绑定起来应该改为三层mvc层、dao、service层都绑定给applicationContext.xml交由spring托管的applicationContext.xml才算把所有的bean都注入spring统一托管 ?xml version1.0 encodingUTF-8? web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsdversion4.0!--DispatcherServlet--servletservlet-nameDispatcherServlet/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-paramparam-namecontextConfigLocation/param-name!--一定要注意:我们这里加载的是总的配置文件之前被这里坑了-- param-valueclasspath:applicationContext.xml/param-value/init-paramload-on-startup1/load-on-startup/servletservlet-mappingservlet-nameDispatcherServlet/servlet-nameurl-pattern//url-pattern/servlet-mapping!--encodingFilter--filterfilter-nameencodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueutf-8/param-value/init-param/filterfilter-mappingfilter-nameencodingFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping!--Session过期时间--session-configsession-timeout15/session-timeout/session-config/web-app2、spring-mvc.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:mvchttp://www.springframework.org/schema/mvcxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd!-- 配置SpringMVC --!-- 1.开启SpringMVC注解驱动 --mvc:annotation-driven /!-- 2.静态资源默认servlet配置--mvc:default-servlet-handler/!-- 3.配置jsp 显示ViewResolver视图解析器 --bean classorg.springframework.web.servlet.view.InternalResourceViewResolverproperty nameviewClass valueorg.springframework.web.servlet.view.JstlView /property nameprefix value/WEB-INF/jsp/ /property namesuffix value.jsp //bean!-- 4.扫描web相关的bean --context:component-scan base-packagecom.kuang.controller //beans小结1 dao层、service层、mvc层这三个框架都是通过spring整合到一起的这些都是框架的底层以后写轻量级项目的基础一定要保留下来 8、Controller 和 视图层编写 1、BookController 类编写 方法一查询全部书籍 简易的的jsp页面先测试跳转成功与否再往下做 首页使用绝对地址 2、排除bean注入的错误 思路 ①使用单元测试底层能否查出bean是否注入的问题 结果是可以的因为底层applicationContext.xml把三层dao层、service层、mvc层都注入绑定在一起了所以说明底层没有事是springmvc整合出的问题 由于springmvc整合applicationContext出了问题所以applicationContext整合三层也会出现bean没法注入的问题 ②真正原因springmvc整合applicationContext出了问题 有错误的dispatchServlet绑定核心上下文配置文件的时候只绑定了mvc层的配置文件dao、service层的没有绑定起来应该改为applicationContext.xml因为三层mvc层、dao、service层都绑定给applicationContext.xml交由spring托管的applicationContext.xml才算把所有的bean都注入spring统一托管 修改过来即可 结果 小结2 从以上错误中理解spring是如何通过绑定applicationContext.xml绑定了三层mvc层、dao、service层来托管三层的管理和注入bean的 3.编写首页 index.jsp % page languagejava contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 % !DOCTYPE HTML html headtitle首页/titlestyle typetext/cssa {text-decoration: none;color: black;font-size: 18px;}h3 {width: 180px;height: 38px;margin: 100px auto;text-align: center;line-height: 38px;background: deepskyblue;border-radius: 4px;}/style /head bodyh3a href${pageContext.request.contextPath}/book/allBook点击进入列表页/a /h3 /body /html4、 书籍列表页面 allbook.jsp 效果 % taglib prefixc urihttp://java.sun.com/jsp/jstl/core % % page contentTypetext/html;charsetUTF-8 languagejava % html headtitle书籍列表/titlemeta nameviewport contentwidthdevice-width, initial-scale1.0!-- 引入 Bootstrap --link hrefhttps://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css relstylesheet /head bodydiv classcontainerdiv classrow clearfixdiv classcol-md-12 columndiv classpage-headerh1small书籍列表 —— 显示所有书籍/small/h1/div/div/divdiv classrowdiv classcol-md-4 columna classbtn btn-primary href${pageContext.request.contextPath}/book/toAddBook新增/a/div/divdiv classrow clearfixdiv classcol-md-12 columntable classtable table-hover table-stripedtheadtrth书籍编号/thth书籍名字/thth书籍数量/thth书籍详情/thth操作/th/tr/theadtbodyc:forEach varbook items${requestScope.get(list)}trtd${book.getBookID()}/tdtd${book.getBookName()}/tdtd${book.getBookCounts()}/tdtd${book.getDetail()}/tdtda href${pageContext.request.contextPath}/book/toUpdateBook?id${book.getBookID()}更改/a |a href${pageContext.request.contextPath}/book/del/${book.getBookID()}删除/a/td/tr/c:forEach/tbody/table/div/div /div5、BookController 类编写 方法二添加书籍 RequestMapping(/toAddBook) public String toAddPaper() {return addBook; }RequestMapping(/addBook) public String addPaper(Books books) {System.out.println(books);bookService.addBook(books);return redirect:/book/allBook; }6、 添加书籍页面addBook.jsp % taglib prefixc urihttp://java.sun.com/jsp/jstl/core % % page contentTypetext/html;charsetUTF-8 languagejava %html headtitle新增书籍/titlemeta nameviewport contentwidthdevice-width, initial-scale1.0!-- 引入 Bootstrap --link hrefhttps://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css relstylesheet /head body div classcontainerdiv classrow clearfixdiv classcol-md-12 columndiv classpage-headerh1small新增书籍/small/h1/div/div/divform action${pageContext.request.contextPath}/book/addBook methodpost书籍名称input typetext namebookNamebrbrbr书籍数量input typetext namebookCountsbrbrbr书籍详情input typetext namedetailbrbrbrinput typesubmit value添加/form/div7、BookController 类编写 方法三修改书籍 结果 8、添加事务支持 在spring-service.xml中添加aop事务支持 导入jar包还要往WEB-INF中导入注意生成文件中可能没有也会报错 9、隐藏域ID的问题 添加隐藏域 显而易见是sql出现了问题这里可以配置日志输出方式让SQL输出日志更清晰更容易判断出错的地方 10、 修改书籍页面 updateBook.jsp % taglib prefixc urihttp://java.sun.com/jsp/jstl/core % % page contentTypetext/html;charsetUTF-8 languagejava % html headtitle修改信息/titlemeta nameviewport contentwidthdevice-width, initial-scale1.0!-- 引入 Bootstrap --link hrefhttps://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css relstylesheet /head body div classcontainerdiv classrow clearfixdiv classcol-md-12 columndiv classpage-headerh1small修改信息/small/h1/div/div/divform action${pageContext.request.contextPath}/book/updateBook methodpostinput typehidden namebookID value${book.getBookID()}/书籍名称input typetext namebookName value${book.getBookName()}/书籍数量input typetext namebookCounts value${book.getBookCounts()}/书籍详情input typetext namedetail value${book.getDetail() }/input typesubmit value提交//form/div11、BookController 类编写 方法四删除书籍 RequestMapping(/del/{bookId}) public String deleteBook(PathVariable(bookId) int id) {bookService.deleteBookById(id);return redirect:/book/allBook; }使用RestFul风格 配置Tomcat进行运行 到目前为止这个SSM项目整合已经完全的OK了可以直接运行进行测试这个练习十分的重要大家需要保证不看任何东西自己也可以完整的实现出来 12、搜索图书 1、前端 2、controller 3、设置接口方法 4、xml配置SQL 5、添加业务 6、改进controller 7、修改前端 8、前端可视化 SpringMVC学习与开发(三)的学习笔记到此完结笔者归纳、创作不易大佬们给个3连再起飞吧
http://www.tj-hxxt.cn/news/132006.html

相关文章:

  • 网站开发工具与环境好域名推荐
  • 网站运营与规划wordpress文章字体大小插件
  • 做什麽网站有前景自做网站教程
  • 杭州网站优化推荐实战营销型网站建设
  • 网站不备案支付宝接口上海史特信息技术有限公司
  • 营销策划好的网站广州市手机网站建设服务机构
  • 有部分网站打不开asp网站如何做伪静态
  • 上饶建设网站世界羽联巡回赛总决赛
  • 前十强排名家装公司抚州网站seo
  • app 设计网站建设wordpress如何调用作品集
  • 从域名到网站如何给网站添加icon
  • 网站推广具体内容数据 导入 wordpress
  • 网站到期只续域名不续空间能打开吗wordpress如何更域名
  • 网站开发需求说明广州网站开发广州亦客网络解答
  • 基于php的网站开发英文文献江阴企业网站建设哪家好
  • 网站收录软件南京seo网站管理
  • 建设网站需要的编程招聘网站设计论文
  • 优化公司流程大连优化公司
  • 企业网站建设的开发方式深圳松岗做网站的
  • 网站常用布局黄骅海边旅游景区
  • 之路网站建设温州免费建站
  • 咸宁做网站哪家好WordPress二维码动态
  • 做网站的IT行业商城app开发费用多少钱
  • 自己可以模拟装修app杭州百度首页优化
  • 怎么提升网站的排名淮北网站三合一建设公司
  • 网站建设如何添加咨询免费制作封面网站
  • 网络营销建设网站实训珠海百度seo
  • 动易网站制作教程wordpress文章背景音乐
  • 发布课程的网站模板网站开发接入支付宝
  • 东莞模块网站建设淄博网站制作方案