1 主要任务
ui+mybatis+springmvc : jQuery 、ajax 、 layui
1 整合ssm
1.1搭建了一个web项目
使用maven骨架创建项目
1.2mybatis整合到项目
1.2.1添加依赖
CTRL+SHIFT+O 导入maven的依赖
<!-- MySQL驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<!--MyBatis 列库 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
1.2.2逆向工程生成
通过Mybatis-Generator生成实体类、mapper、Mapper.xml
1.2.3 SqlMapConfig
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/db_dlmu_his"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 扫描包的形式,生成 Mappoer代理
Mybatis扫描接口自动生成 代理对象
-->
<package name="com.neuedu.his.mapper" />
</mappers>
</configuration>
1.2.4 使用Mybatis
package com.neuedu.his.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class SqlSessionUtil {
private static SqlSessionFactory factory = null;
static{
InputStream is = null;
try {
is = Resources.getResourceAsStream("SqlMapConfig.xml");
factory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 用于创建SqlSession的
* @return
*/
public static SqlSession getSessioin(){
return factory.openSession();
}
}
package com.neuedu.his.mapper;
import com.neuedu.his.entity.Department;
import com.neuedu.his.utils.SqlSessionUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import static org.junit.Assert.*;
public class DepartmentMapperTest {
@Test
public void insert() {
SqlSession session = SqlSessionUtil.getSessioin();
DepartmentMapper departmentMapper = session.getMapper(DepartmentMapper.class);
Department dept = new Department();
dept.setName("检验科");
dept.setLeader("张某某");
dept.setAddress("301");
int count = departmentMapper.insertSelective(dept);
System.out.println("count: "+count);
session.commit();
session.close();
}
@Test
public void insertSelective() {
}
@Test
public void selectByExample() {
}
@Test
public void selectByPrimaryKey() {
}
}
1.3springmvc -->CRUD
添加依赖
基于spring的基础上,webmvc。jar
<!-- 单元测试类库 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- MySQL驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<!--MyBatis 列库 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<!-- 添加Servlet依赖 -->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<!--作用域 provided 参与编译,运行时抛弃 -->
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<!--SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>
CTRL+SHIFT+O 让pom文件生效
编写容器配置文件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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--使用注解的形式声明 bean 扫描 com.neuedu.spring 及子包-->
<!-- 替换 一大堆的bean,扫描 @Component、@Controller注解 -->
<context:component-scan base-package="com.neuedu.his"/>
<!-- 将静态资源交换给默认的 处理器 -->
<mvc:default-servlet-handler/>
<!-- MVC注解驱动 -->
<mvc:annotation-driven/>
</beans>
编写Controller
package com.neuedu.his.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller //相当于是Servlet
@RequestMapping("/user")
public class UserController {
@RequestMapping("/list")
public void list(){
System.out.println("查询数据库");
//放到request中,共享给jsp
}
}
配置前端控制器(Servlet)
在web.xml中DispatcherServlet 配置spring配置文件
将spring-mvc配置文件交给DispatcherServlet 使用
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!-- 配置前端控制器 好用 -->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!--默认的配置文件的名字applicationContext.xml-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
将项目发布到 Tocmat中
-Dfile.encoding=utf8
测试
http://127.0.0.1:8080/springmvc01/user/insert
在控制台中查看方法是否被调用
解决页面乱码问题
在乱码页面中加入
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
整合前端的模板(写好的css、js)
mybatis整合Spring
2 权限管理(MIS)、权限认证、上传下载
3 git 版本控制工具(录屏) 发链接
SpringBoot
远程测试
远程访问rest服务
使用restTemplate
- 查询
Result result = restTemplate.getForObject(“url”,Result.class,{id});
return result.tostring();
-
新增
User user = new User(“xxx”,”xxx”);
ResponseEntity resultResponseEntity = restTemplate.postForEntity(“url”,user,Result.class);
return resultResponseEntity.getBody().toString();
- 修改
restTemplate.put(); //无返回值
MockMVC
get请求
post请求
alt+enter 选择json数据格式, 再次alt+enter进入json数据形式的输入窗口
使用apipost进行http远程测试
拦截器
自定义拦截器类
在配置类中MyWebMvcConfig中添加拦截器
freemarker模板
整合mybatis
修改application.yml
添加druid依赖
无自动配置启动器,需要自行配置一个Bean
mybatis代码生成
搭建myBatis-plus
pom.xml
<!--myBatis-Plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
configration文件夹下 创建MybatisPlusConfig文件
@Configuration
@MapperScan("com.edu.mapper")
public class MybatisPlusConfig
{
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
给mapper进行继承
extends BaseMapper<User>
在service中 进行继承
extends ServiceImpl<UserMapper, User>
最后可以在yml中增加mybatis-plus的logging日志功能
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
集成swagger2
pom.xml文件中添加依赖 (不要使用高版本,和springboot 2.6以上可能冲突)
<!--swagger 后端测试-->
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
添加配置文件swaggerConfig
@Configuration
@EnableSwagger2
public class swaggerConfig {
/**
* 创建API应用
* apiInfo() 增加API相关信息
* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
* 本例采用指定扫描的包路径来定义指定要建立API的目录。
*
* @return
*/
@Bean
public Docket restApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("标准接口")
.apiInfo(apiInfo("Spring Boot中使用Swagger2构建RESTful APIs", "1.0"))
.useDefaultResponseMessages(true)
.forCodeGeneration(false)
.select()
.apis(RequestHandlerSelectors.basePackage("com.edu.controller"))
.paths(PathSelectors.any())
.build();
}
/**
* 创建该API的基本信息(这些基本信息会展现在文档页面中)
* 访问地址:http://ip:port/swagger-ui.html
*
* @return
*/
private ApiInfo apiInfo(String title, String version) {
return new ApiInfoBuilder()
.title(title)
.description("更多请关注: https://blog.csdn.net/xqnode")
.termsOfServiceUrl("https://blog.csdn.net/xqnode")
.contact(new Contact("xqnode", "https://blog.csdn.net/xqnode", "xiaqingweb@163.com"))
.version(version)
.build();
}
}
在ymkl文件中添加
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
vue安装axios
终端下载: npm i axios -S
request.js封装
import axios from 'axios'
const request = axios.create({
baseURL: '/api', // 注意!! 这里是全局统一加上了 '/api' 前缀,也就是说所有接口都会加上'/api'前缀在,页面里面写接口的时候就不要加 '/api'了,否则会出现2个'/api',类似 '/api/api/user'这样的报错,切记!!!
timeout: 5000
})
// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
request.interceptors.request.use(config => {
config.headers['Content-Type'] = 'application/json;charset=utf-8';
// config.headers['token'] = user.token; // 设置请求头
return config
}, error => {
return Promise.reject(error)
});
// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(
response => {
let res = response.data;
// 如果是返回的文件
if (response.config.responseType === 'blob') {
return res
}
// 兼容服务端返回的字符串数据
if (typeof res === 'string') {
res = res ? JSON.parse(res) : res
}
return res;
},
error => {
console.log('err' + error) // for debug
return Promise.reject(error)
}
)
export default request
————————————————
版权声明:本文为CSDN博主「程序员青戈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xqnode/article/details/118325868
在main.js 注册http
import request from "@/util/request";
Vue.prototype.request=request
代码生成器mybatis-plus
导入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity
默认引擎模板
-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
在java中新建utils包 CodeGenerator.java
/**
* @author Ron
* @create 2022-04-17 15:29
*/
public class CodeGenerator {
public static void main(String[] args) {
}
public void generator(){
FastAutoGenerator.create("jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2b8", "root", "P@ss123.")
.globalConfig(builder -> {
builder.author("qingxi") // 设置作者
// .enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("/Users/qingxi/Code/qingxi/springboot/boot-mybatis/src/main/java/"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.example.bootmybatis") // 设置父包名
.moduleName("") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "/Users/qingxi/Code/qingxi/springboot/boot-mybatis/src/main/resources/mapper/")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.entityBuilder().enableLombok();
builder.mapperBuilder().enableMapperAnnotation().build();
builder.controllerBuilder().enableHyphenStyle() // 开启驼峰转连字符
.enableRestStyle(); // 开启生成@RestController 控制器
builder.addInclude("t_user") // 设置需要生成的表名
.addTablePrefix("t_"); // 设置过滤表前缀
})
// .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
oot/boot-mybatis/src/main/resources/mapper/")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.entityBuilder().enableLombok();
builder.mapperBuilder().enableMapperAnnotation().build();
builder.controllerBuilder().enableHyphenStyle() // 开启驼峰转连字符
.enableRestStyle(); // 开启生成@RestController 控制器
builder.addInclude(“t_user”) // 设置需要生成的表名
.addTablePrefix(“t_”); // 设置过滤表前缀
})
// .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}