出于对狂神的崇拜,总结SSM项目。

基本介绍

项目分层

基本介绍

项目名称:ssmbuild

介绍:通过书籍管理系统实现一个简单的SSM项目,可以作为其他Java Web项目的借鉴。

主要功能模块:查看所有书籍、新增书籍、修改书籍、删除书籍、查询书籍

项目环境:更多内容可以查看pom.xml中的组件及其版本

1、jdk1.8.0_351

2、apache-tomcat-8.5.84

3、apache-maven-3.6.3

4、mysql-8.0.31-winx64

项目分层

源代码

BookController.java

package com.bookSE.controller;

import com.bookSE.entity.Books;
import com.bookSE.service.BookService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; @Controller
@RequestMapping("/book")
public class BookController { @Autowired
@Qualifier("BookServiceImpl")
private BookService bookService; // 查询全部的书籍,并且返回到一个书籍展示页面
@RequestMapping("/allBook")
public String list(Model model){ List<Books> books = bookService.queryAllBooks();
model.addAttribute("bookList",books); return "allBook";
} // 跳转到添加页
@RequestMapping("toAddBook")
public String toAddPage(){ return "addBook";
} // 添加书籍
@RequestMapping("/addBook")
public String addBook(Books books){
bookService.addOneBook(books);
return "redirect:/book/allBook";
} // 跳转到修改页面
@RequestMapping("/toUpdateBook")
public String toUpdateBook(Model model,int id){ Books books = bookService.queryOneBookById(id);
model.addAttribute("queryBooks",books);
return "updateBook";
} // 修改数据集
@RequestMapping("/updateOneBook")
public String updateOneBook(Books books){
bookService.updateOneBook(books);
return "redirect:/book/allBook";
} // 删除书籍
@RequestMapping("/deleteBook/{bookId}")
public String deleteBook(@PathVariable("bookId") int id){
bookService.deleteOneBookById(id);
return "redirect:/book/allBook";
} // 查询书籍
@RequestMapping("/queryBookByName")
public String queryOneBookByName(@Param("bookName") String bookName, Model model){
List<Books> books = bookService.queryBookByName(bookName);
model.addAttribute("bookList",books);
model.addAttribute("bookName",bookName);
return "allBook";
} }

BookMapper.java

package com.bookSE.dao;

import com.bookSE.entity.Books;
import org.apache.ibatis.annotations.Param; import java.util.List; public interface BookMapper { // 增加一本书
int addOneBook(Books books); // 删除一本书
int deleteOneBookById(@Param("bookID") int bookID); // 更新一本书
int updateOneBook(Books books); // 查询一本书
Books queryOneBookById(@Param("bookId") int id); // 查询全部的书
List<Books> queryAllBooks(); // 查询单个书籍
List<Books> queryBookByName(@Param("bookName") String bookName); }

BookMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bookSE.dao.BookMapper">
<!--增加一本书-->
<insert id="addOneBook" parameterType="com.bookSE.entity.Books">
insert into ssmbuild.books (bookName,bookCounts,detail)
values (#{bookName},#{bookCounts},#{detail});
</insert> <!--删除一本书-->
<delete id="deleteOneBookById" parameterType="Integer">
delete from books where bookID = #{bookID}
</delete> <!--更新一本书-->
<update id="updateOneBook" parameterType="com.bookSE.entity.Books">
update ssmbuild.books set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}
where bookID = #{bookID}
</update> <select id="queryOneBookById" resultType="com.bookSE.entity.Books">
select * from ssmbuild.books
where bookID = #{bookID}
</select> <!--查询全部书籍-->
<select id="queryAllBooks" resultType="com.bookSE.entity.Books">
select * from ssmbuild.books
</select>
<!--根据书籍名称查询-->
<select id="queryBookByName" resultType="com.bookSE.entity.Books">
select * from books where 1=1
<if test="bookName!=null and bookName!=''">
and bookName like concat('%',#{bookName},'%')
</if>
</select> </mapper>

Books.java

package com.bookSE.entity;

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; }

BookService.java

package com.bookSE.service;

import com.bookSE.entity.Books;
import org.apache.ibatis.annotations.Param; import java.util.List; public interface BookService { // 增加一本书
int addOneBook(Books books); // 删除一本书
int deleteOneBookById(int bookID); // 更新一本书
int updateOneBook(Books books); // 查询一本书
Books queryOneBookById(int id); // 查询全部的书
List<Books> queryAllBooks(); // 查询单个书籍
List<Books> queryBookByName(@Param("bookName") String bookName); }

BookServiceImpl.java

package com.bookSE.service;

import com.bookSE.dao.BookMapper;
import com.bookSE.entity.Books;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.List; @Service
public class BookServiceImpl implements BookService { // Service调用Dao层
@Autowired
private BookMapper bookMapper; public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
} public int addOneBook(Books books) {
return bookMapper.addOneBook(books);
} public int deleteOneBookById(int bookID) {
return bookMapper.deleteOneBookById(bookID);
} public int updateOneBook(Books books) {
return bookMapper.updateOneBook(books);
} public Books queryOneBookById(int id) {
return bookMapper.queryOneBookById(id);
} public List<Books> queryAllBooks() {
return bookMapper.queryAllBooks();
} public List<Books> queryBookByName(String bookName) {
return bookMapper.queryBookByName(bookName);
}
}

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> <import resource="classpath:spring-dao.xml"/>
<import resource="classpath:spring-service.xml"/>
<import resource="classpath:spring-mvc.xml"/> </beans>

jdbc.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
jdbc.username=数据库账号
jdbc.password=数据库密码

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> <settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!--别名-->
<typeAliases>
<package name="com.bookSE.entity"/>
</typeAliases> <mappers>
<mapper class="com.bookSE.dao.BookMapper"/>
</mappers> </configuration>

spring-dao.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <!--1. 关联数据库配置文件-->
<context:property-placeholder location="classpath:jdbc.properties"/> <!--2. 连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/> <!--c3p0连接池的私有属性-->
<property name="maxPoolSize" value="100"/>
<property name="minPoolSize" value="10"/>
<!--关闭连接后不自动commit-->
<property name="autoCommitOnClose" value="false"/>
<!--获取连接超时时间-->
<property name="checkoutTimeout" value="10000"/>
<!--当获取连接失败重试次数-->
<property name="acquireRetryAttempts" value="2"/> </bean>
<!--3. SQLSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!--绑定mybatis配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean> <!--配置dao接口扫描包,动态的实现了Dao接口可以注入到Spring容器中!-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--注入sqlSessionFactory-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="com.bookSE.dao"/>
</bean> </beans>

spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd"> <!--1. 注解驱动-->
<mvc:annotation-driven/>
<!--2. 静态资源过滤-->
<mvc:default-servlet-handler/>
<!--3. 扫描包:Controller-->
<context:component-scan base-package="com.bookSE.controller"/>
<!--4. 视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>

spring-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
https://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"> <!--1.扫描service下的包-->
<context:component-scan base-package="com.bookSE.service"/>
<!--2. 将我们所有的业务类,注入到Spring,可以通过配置,或者注解实现-->
<bean id="BookServiceImpl" class="com.bookSE.service.BookServiceImpl">
<property name="bookMapper" ref="bookMapper"/>
</bean>
<!--3. 声明式事务配置-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--注入数据源-->
<property name="dataSource" ref="dataSource"/>
</bean>
<!--4. aop事务支持-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add" propagation="REQUIRED"/>
<tx:method name="delete" propagation="REQUIRED"/>
<tx:method name="update" propagation="REQUIRED"/>
<tx:method name="query" read-only="true"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice> <!--配置事务切入-->
<aop:config>
<aop:pointcut id="txPointCut" expression="execution(* com.bookSE.dao.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
</aop:config> </beans>

addBook.jsp

<%--
Created by IntelliJ IDEA.
User: Harley
Date: 2023/5/11
Time: 23:51
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>添加书籍</title>
<link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<small>书籍展示页面>>新增书籍</small>
</div>
</div>
<div class="row">
<div class="col-md-4 column">
<a href="${pageContext.request.contextPath}/book/allBook">返回首页</a>
</div>
</div>
</div>
<form action="${pageContext.request.contextPath}/book/addBook" method="post">
<div class="form-group">
<label for="bkName">书籍名称</label>
<input type="text" class="form-control" name="bookName" id="bkName" placeholder="请输入书籍名称" required>
</div>
<div class="form-group">
<label for="bkCount">书籍数量</label>
<input type="text" class="form-control" name="bookCounts" id="bkCount" placeholder="请输入书籍数量" required>
</div>
<div class="form-group">
<label for="bkDetail">书籍详情</label>
<textarea class="form-control" id="bkDetail" name="detail" rows="3" required></textarea>
</div>
<div class="form-group">
<input type="submit" value="添加书籍" class="btn btn-primary"/>
</div>
</form>
</div> </body>
</html>

allBook.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"%>
<html>
<head>
<title>书籍展示</title>
<link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<small>书籍展示页面>>显示所有书籍</small>
</div>
</div>
<div class="row">
<div class="col-md-4 column">
<a class="btn btn-primary" href="${pageContext.request.contextPath}/book/toAddBook">新增书籍</a>
</div>
<div class="col-md-4 column"></div>
<div class="col-md-4 column" style="float: right">
<%--查询书籍--%>
<form action="${pageContext.request.contextPath}/book/queryBookByName" method="post" style="float: right" class="form-inline">
<input name="bookName" class="form-control" type="text" placeholder="请输入要查询的书籍名称" value="${bookName}"/>
<input class="btn btn-primary" type="submit" value="查询"/>
</form>
</div>
</div>
</div> <div class="row clearfix">
<div class="col-md-12 column">
<table class="table table-hover table-striped">
<thead>
<tr>
<th>书籍编号</th>
<th>书籍名称</th>
<th>书籍数量</th>
<th>书籍详情</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach var="book" items="${bookList}">
<tr>
<td>${book.bookID}</td>
<td>${book.bookName}</td>
<td>${book.bookCounts}</td>
<td>${book.detail}</td>
<td>
<a href="${pageContext.request.contextPath}/book/toUpdateBook?id=${book.bookID}">修改</a>
&nbsp;|&nbsp;
<a href="${pageContext.request.contextPath}/book/deleteBook/${book.bookID}" >删除</a>
</td>
</tr>
</c:forEach>
</tbody> </table> </div>
</div>
</div>
</body>
</html>

updateBook.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%--
Created by IntelliJ IDEA.
User: Hou
Date: 2023/5/12
Time: 0:30
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"%>
<html>
<head>
<title>修改书籍信息</title>
<link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<small>书籍展示页面>>修改书籍</small>
</div>
</div>
<div class="row">
<div class="col-md-4 column">
<a href="${pageContext.request.contextPath}/book/allBook">返回首页</a>
</div>
</div>
</div>
<form action="${pageContext.request.contextPath}/book/updateOneBook" method="post">
<%--提交了--%>
<input type="hidden" name="bookID" value="${queryBooks.bookID}">
<div class="form-group">
<label for="bkName">书籍名称</label>
<input type="text" class="form-control" name="bookName" id="bkName" value="${queryBooks.bookName}" required>
</div>
<div class="form-group">
<label for="bkCount">书籍数量</label>
<input type="text" class="form-control" name="bookCounts" id="bkCount" value="${queryBooks.bookCounts}" required>
</div>
<div class="form-group">
<label for="bkDetail">书籍详情</label>
<%-- <input type="text" class="form-control" id="bkDetail" placeholder="请输入书籍详情">--%>
<textarea class="form-control" id="bkDetail" name="detail" rows="3" required>${queryBooks.detail}</textarea>
</div>
<div class="form-group">
<input type="submit" value="修改书籍" class="btn btn-primary"/>
</div>
</form>
</div>
</body>
</html>

web.xml

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"> <!--DispatchServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <!--乱码过滤-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!--Session-->
<session-config>
<session-timeout>15</session-timeout>
</session-config> </web-app>

index.jsp

<%@ page contentType="text/html; charset=UTF-8" language="java" isELIgnored="false" %>
<html> <head>
<title>首页</title>
<style>
a {
text-decoration: none;
color: black;
font-size: 18px;
font-family: 华文新魏; }
h3{
width: 180px;
height: 38px;
margin: 100px auto;
line-height: 38px;
text-align: center;
background: deepskyblue;
border-radius: 5px;
} </style>
</head>
<body>
<h3>
<a href="${pageContext.request.contextPath}/book/allBook">查看书籍</a>
</h3>
</body>
</html>

pom.xml

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>ssmbuild</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>skillTree Maven Webapp</name>
<url>http://maven.apache.org</url> <properties>
<spring.version>5.2.10.RELEASE</spring.version>
</properties>
<dependencies>
<!--Junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency> <!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.31</version>
</dependency>
<!--数据库连接池: c3p0:dbcp-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<!--Servlet-JSP-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--Mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
<!--Spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency> <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
</dependencies> <!--静态资源导出问题-->
<build>
<finalName>ssmbuild</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build> </project>

参考:

SSM简单实现头像的存储和获取:https://blog.csdn.net/m0_46633875/article/details/120071703

— EOF —

SSM - 狂神的项目示例的更多相关文章

  1. 应用程序框架实战三十八:项目示例VS解决方案的创建(一)

    进行项目开发的第一步,是创建出适合自己团队习惯的VS解决方案,虽然我已经提供了项目示例,但毕竟是我创建的,你直接使用可能并不合适,另外你如果尝试模仿重新创建该示例,中间可能碰到各种障碍,特别是项目间的 ...

  2. Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)

    Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)    转 https://blog.csdn.net/lhl1124281072/article/details/800 ...

  3. ssm的web项目,浏览器使用get方法传递中文参数时,出现乱码

    ssm的web项目,浏览器使用get链接传递的为中文参数时,出现乱码 做搜索功能时,搜索手机,那么浏览器传递的参数为中文参数“手机”,但传递的默认编码格式为iso-8859-1,所以传到后台时,是乱码 ...

  4. Spring学习10-SpringMV核心组件2及SpringMVC项目示例

    一.SpringMVC核心接口     5.ViewResolver接口--视图解析接口 继承体系:      5.View接口--视图接口   二.SpringMVC项目示例   (1)建立动态we ...

  5. idea导入ssm javaweb maven项目

    本文笔者辛苦整理, 除了为方便大家贴的maven安装配置和方便的现有项目, 如转载请注明: https://www.cnblogs.com/m-yb/p/11229320.html idea导入ssm ...

  6. 使用maven构建项目时,SSM和springboot项目的打包与云服务器部署

    下面讲讲如何打包SSM和springboot项目,并部署到云服务器上. 由于使用的IDE不同,有的使用eclipse,有的使用idea,所以如果在IDE中按照 maven clean 再 maven ...

  7. 后端分页神器,mybatis pagehelper 在SSM与springboot项目中的使用

    mybatis pagehelper想必大家都耳熟能详了,是java后端用于做分页查询时一款非常好用的分页插件,同时也被人们称为mybatis三剑客之一,下面 就给大家讲讲如何在SSM项目和sprin ...

  8. SpringMVC详解及SSM框架整合项目

    SpringMVC ssm : mybatis + Spring + SpringMVC MVC三层架构 JavaSE:认真学习,老师带,入门快 JavaWeb:认真学习,老师带,入门快 SSM框架: ...

  9. SpringBoot项目创建与第一个SSM项目示例

    本节介绍SpringBoot创建第一个示例SSM项目的完整过程,使用工具STS,与IDEA操作基本类似. 示例代码在:https://github.com/laolunsi/spring-boot-e ...

  10. 快速开发框架CRL3.0发布,附带最新的项目示例CRLShoppingDemo

    继上次使用CRL实现大数据分库分表方案升级到2.4,时隔不久又升级到了大版本号3.0,主要是因为结构发生了一些更改 ORM和业务封装Package分开了,增加了实例项目演示代码CRLShoppingD ...

随机推荐

  1. 群晖 MariaDB10 开启远程登录

    ​情况:MariaDB设置了TCP/IP的端口,但是还是无法进行远程访问. 解决方法: 一.使用ssh登录群晖,并进入MariaDB安装目录 cd /volume1/@appstore/MariaDB ...

  2. git 基础操作 && 在"develop"分支修改动但不想提交切换到"master"分支(最后)

    测试学习准备条件:一个目录,含不含有文件都可以,创建一个test.txt 1. 创建空仓库 git init 2. 修改过后,添加到本地仓库 添加指定的文件,如果一个以上,文件名空格隔开 git ad ...

  3. 虚拟机安装 Win10 ,无法启动,报错EFI Network ... Time out

    问题情况 VMWare 16 安装 win10 的镜像文件,无法启动,报错 EFI Network ... Time out 解决办法 虚拟机设置中 固件类型 改用 BIOS 已解决

  4. mysql命令行创建数据库并设置字符集

    CREATE DATABASE test1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  5. springboot 2.x 集成quartz持久化到一个单独的dataSource时遇到的坑

    由于希望可以在集群环境中运行定时job,但考虑到多个job实例有可能带来job重复执行的问题,新项目的job打算从原生的spring task实现改成quartz job实现,并采用jdbc的存储方式 ...

  6. Qt通用方法及类库1

    函数名 //桌面宽度高度 static int deskWidth(); static int deskHeight(); //程序文件名称+当前所在路径 static QString appName ...

  7. Note -「基本子串结构」速通笔记

      学习自 crashed 的<一类基础子串数据结构>摘抄及注解, 略过了一些 crashed 口中 "用不上" 的东西. 这里是速通笔记, 希望快速学习技巧的读者可以 ...

  8. windows平台下,web与app交互方式探索

    前言 web与app孰优孰劣暂且不争论,也许一方永远代替不了另一方.一个系统有可能同时包含web和app:web和app紧密配合下,才能给用户更好的体验.web如何将信息传达给app?这就是本文要探索 ...

  9. WPF 动态加载嵌入主程序的DLL

    WPF 动态加载嵌入主程序的DLL,好处是节省文件数量,坏处是启动影响加载速度. 首先将DLL添加进项目,选择添加现有项,设置生成操作为"嵌入资源". 代码: public App ...

  10. w3cschool-Spring Cloud

    https://www.w3cschool.cn/spring_cloud/spring_cloud-ryjs2ixg.html Spring Cloud(一)服务的注册与发现(Eureka) 202 ...