学习主题:SpringBoot
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/kaoshi1?useUnicode=true&charsetEncoding=utf-8&useSSL=true&serverTimezone=GMT%2b8
spring.datasource.username=root
spring.datasource.password=rootspring.datasource.type=com.alibaba.druid.pool.DruidDataSource
mybatis.type-aliases-package=com.cyj.pojo
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
package com.cyj.pojo;import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;@Entity
@Table(name = "t_users")
public class Users {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "id")private Integer id;@Column(name = "name")private String name;@Column(name = "age")private Integer age;@Column(name = "address")private String address;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "Users [id=" + id + ", name=" + name + ", age=" + age + ", address=" + address + "]";}
}
package com.cyj.dao;
import com.cyj.pojo.Users;
importorg.springframework.data.jpa.repository.JpaRepository;
/*** @author cyj* @date 2019-11-21 10:49*/
public interface UsersRepository extends JpaRepository
}
package com.cyj;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/*** @author cyj* @date 2019-11-19 14:37*/
@SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}
@Autowired
private UsersRepository usersRepository;@Test
public void testSave() {Users users = new Users();users.setAddress("北京市海淀");users.setAge(20);users.setName("张三");this.usersRepository.save(users);
}
5个
1 Repository 接口
2 CrudRepository 接口
3 PagingAndSortingRepository 接口
4 JpaRepository 接口
5 JPASpecificationExecutor 接口
标识接口
findBy(关键字)+属性名称(首字符大写)+查询条件(首字母大写)
可以使用@Query注解实现查询
表示需要执行一个更新操作
CRUD操作
分页与排序操作
1 定义order对象定义排序规则
2 将order对象传递给sort,sort封装了排序规则
3 将sort传递给findAll方法,由实现PagingAndSortingRepository接口的类来调用findAll方法
1 定义pageable对象,该对象有两个参数:page:当前页 size:每页显示的条数
2 将pageable对象传递给findAll方法
对从父接口所继承的方法对返回值做适配处理
条件查询以及分页处理
单独存在
用于封装查询条件
可以设置组件生成策略是自增长还是别的
表示关联关系:多对一
维护一个外键
表示关联关系:多对多
映射中间表
package com.cyj.pojo;import javax.persistence.*;
import java.util.HashSet;/*** @author cyj* @date 2019-11-21 11:08*/
@Entity
@Table(name = "t_menus")
public class Menus {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "menusid")private Integer menusid;@Column(name = "menusname")private String menusname;@Column(name = "menusurl")private String menusurl;@Column(name = "fatherid")private Integer fatherid;@ManyToMany(mappedBy = "menus")private Set
}
@Autowired
private RolesRepository rolesRepository;/*** 添加测试 */
@Test
public void testSave() { //创建角色对象 Roles r = new Roles();r.setRolename("项目经理"); //创建菜单对象 Menus menus = new Menus();menus.setMenusname("xxxx 管理系统");menus.setFatherid(0);Menus menus2 = new Menus();menus2.setFatherid(1);menus2.setMenusname("项目管理"); //关联 r.getMenus().add(menus);r.getMenus().add(menus2);menus.getRoles().add(r);menus2.getRoles().add(r); //保存 this.rolesRepository.save(r);
}
通过 Ehcache实现对数据本地的缓存 , 用于单体架构的项目中
四个步骤:
1 添加对应坐标
2 创建ehcache.xml定义缓存策略
3 spring全局配置文件添加语句使其加载ehcache.xml
4 启动类加上@EnableCaching启动缓存
src/main/resources/ehcache.xml
#连接数据库
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ssm?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
#指定连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource#开启正向工程
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.generate-ddl=true
#运行时,打印sql语句
spring.jpa.show-sql=true
#使用缓存时需要在启动类上添加@EnableCaching注解 在需要开启注解的方法上添加@Cacheable
#开启ehcache的缓存配置
spring.cache.ehcache.config=ehcache.xml
加上@EnableCaching注解表示开启本地缓存
选择缓存的类型,需要在启动类开启
这个注解是选择缓存的类型,需要在启动类开启@EnableCaching
没有方法参数时,会默认以0为key,当有两个无参方法使用缓存时key会冲突。可以使用数字作为key,不能直接使用字符串
@CacheEvict(value=“users”,allEntries=true) 清除缓存中以users 存策略缓存的对象