1. 注解 @Serializable
在封装对象的时候使用import java.io.Serializable;中实现接口***Serializable***的意义:
(1)对数据进行序列化;(序列化就是变成二进制流)
(2)便于数据传输,尤其是在远程调用的时候!
2. 注解 @Entity
导入依赖:`
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
@GeneratedValue注解 存在的意义主要就是为一个实体生成一个唯一标识的主键
@ID 表示主键
@Column注解 来标识实体类中属性与数据表中字段的对应关系。
@Service 是用在接口的实现类上的保证bean的创建
继承JpaRepository时需要导入依赖:
<!--导入JPA 数据持久化组件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
使用@RequestMapping注解时需要导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
@RestController和@Controller的区别
RestController的内容会被网页所显示
用了Controller之后数据将无法在网页显示。
@Data
使用这个注解,就不用再去手写Getter,Setter,equals,canEqual,hasCode,toString等方法了
@AllArgsConstructor
使用后添加一个构造函数,该构造函数含有所有已声明字段属性参数
@NoArgsConstructor
使用后创建一个无参构造函数
出现端口被占用情况:
netstat -ano
tasklist | findstr "7676"
taskkill /f /t /im ApplicationWebServer.exe
使用模板引擎
才能访问templete的html静态页面
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
</dependency>
出现url访问出错
把4改成5
thymeleaf使用
在html文件中引用命名空间
xmlns:th="http://www.thymeleaf.org"
语法使用
取数组:<div th:each="user:${users}" th:text="${user}"></div>
在最新版本的Springboot中的Pageable对象更改问题
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
原来是 Pageable pageable = new PageRequest(pageNo, pageSize);
现在是 Pageable pageable = PageRequest.of(pageNo,pageSize);
mybatis的使用
1:到网站找导入依赖
2:使用@Mapper注解,表示这是mybatis的mapper类,属于dao
3:使用@Repository,
出现错误
1 文档根元素 “mapper” 必须匹配 DOCTYPE 根 “configuration”。
更改xml头部引用
`<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">`
2.错误 在向数据库插入数据时
There is no getter for property named 'user' in 'class com.learn.store.pojo.user'
因为Mapp层的方法里没有写注解参数比如:
int create(@Param("user") user user);
mybatis分页查询pageHelper的使用
第一步:导入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>
第二部:配置文件properties
pagehelper.helper-dialect=mysql //配置数据库类型
pagehelper.reasonable=false //该字段为false时,页码在大于最后一页的时候返回空
第三步:在控制器中使用:
@ResponseBody
@RequestMapping("/all.do")
public ResultBean<List<product>> getAllProduct(int pageNo, Integer pageSize)
{
PageHelper.startPage(pageNo, pageSize); //分页功能只对下面的第一个查询语句进行分页。pageNo为第几页, pageSize为每页数据个数
List<product> products = productMapper.findAllProduct();
return new ResultBean<>(products);
}
对于jQuery中 pagination表格分页+Mybatis的分页插件PageHelper的使用
$("#Pagination").pagination(,{ })
该函数中的两个参数 第一个是数据的总条数,
第二个是一些参数的设定。
因为分页参数大多数都在后端,所以前端不需要设置太多 只要一个回调函数即可
**这里最需要注意的是前端的 pagination 向后端发送页数时是从0开始的而PageHelper接收参数是从1开始的
如果不在后端不加1,会出现重复页。
**
var pagetotal;
$(function () {
App.init();
$.ajax({
url: "/adminOrder/getTotal.do",
type: "get",
success: function (result) {
if (result.state == 0) {
pagetotal = result.data;
$("#Pagination").pagination(pagetotal, {
// num_edge_entries: 1, //边缘页数
// num_display_entries: 5, //主体页数
callback: pageselectCallback,
// items_per_page: 15, //每页显示7项
prev_text: "前一页",
next_text: "后一页"
});
} else {
alert(result.message);
}
}
});
});
后端分页代码。
PageHelper.startPage(pageindex+1,pageSize);