SpringBoot学习笔记(二)

一、持久层支持

(1)JPA

  • JPA(Java Persistence API)是Sun官方提出的Java持久化规范,用来方便大家操作数据库。
    真正干活的可能是Hibernate,TopLink等等实现了JPA规范的不同厂商,默认是Hibernate。

  • application.properties需添加:

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/hcl?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.hbm2ddl.auto=update
  • pom.xml需添加对mysql和jpa的支持
  • Category、CategoryDAO、CategoryController、listCategory.jsp四者建立联系

(2)Mybatis-注解方式

  • pom.xml需要添加对mybatis和mysql的支持,创建接口CategoryMapper,“@Mapper”声明表示这是一个mybatis mapper接口,使用@Select注解表示调用findAll方法会去执行对应的sql语句,其他跟JPA差不多;

(3)Mybatis-xml方式

  • 在注解方式的基础上,删去@Select注解,在xml文件中声明那条sql语句,另外,在application.properties文件中添加一下语句,指明去哪里寻找xml文件,并指定别名:
mybatis.mapper-locations=classpath:com/hcl/springboot/mapper/*.xml
mybatis.type-aliases-package=com.hcl.springboot.pojo

二、CRUD+分页

(1)JPA方式

值得注意:JPA 新增和修改用的都是save. 它根据实体类的id是否为0来判断是进行增加还是修改;JPA自带一些sql语句函数;页数从0开始;

@RequestMapping("/listCategory")
public String listCategory(Model m,@RequestParam(value = "start", defaultValue = "0") int start,@RequestParam(value = "size", defaultValue = "5") int size) throws Exception {
	start = start<0?0:start;
	Sort sort = new Sort(Sort.Direction.DESC, "id");
	Pageable pageable = new PageRequest(start, size, sort);
	Page<Category> page =categoryDAO.findAll(pageable);
	m.addAttribute("page", page);
    return "listCategory";
}
  1. 在参数里接受当前是第几页 start ,以及每页显示多少条数据 size。 默认值分别是0和5;
  2. 如果 start 为负,那么修改为0. 这个事情会发生在当前是首页,并点击了上一页的时候;
  3. 设置倒排序;
  4. 根据start,size和sort创建分页对象;
  5. CategoryDAO根据这个分页对象获取结果page;
  6. 把page放在"page"属性里,跳转到listCategory.jsp。

(2)Mybatis方式

  1. 增加对PageHelper的支持;
  2. PageHelperConfig:注解@Configuration 表示PageHelperConfig 这个类是用来做配置的,注解@Bean 表示启动PageHelper这个拦截器;
  3. 修改CategoryMapper,增加CRUD方法的支持;
  4. 为CategoryController添加: 查询、增加、删除、获取、修改映射;
  5. 通过page.getList遍历当前页面的Category对象;
    在分页的时候通过page.pageNum获取当前页面,page.pages获取总页面数。

(3)SQLite

  • SQLite 是一种数据库,它是跑在 JVM里面的,所以不需要像 mysql 那样得独立安装配置,而是直接拿来就用,本知识点就会把对mysql 的依赖,建立在 sqlite 上,这样大家跑起来就不用费神地安装配置 mysql 数据了啦

  • 因为是使用 JPA 来链接 SQlite, 而 JPA 默认用的是 Hibernate,所以要为 Hibernate 配置专门的方言。为了更好地和四川人打交道,最好说四川方言。
    方言就是这么个意思,方便 Hibernate和 Sqlite打交道。 方言的英文是 Dialect, 所以就有了SQLiteDialect 这个类了。
    除此之外,还需要其他两个类配合。至于他们是怎么工作的。。。就不用关心啦,反正能用就行啦。 三个类:SQLiteDialect、SQLiteDialectIdentityColumnSupport、SQLiteMetadataBuilderInitializer

  • 对application.properties进行配置,对 mysql 的配置,修改到了对 sqlite 的配置,增加 sqlite jar 包。

菜鸟一个,做做笔记,便于温故知新,若有理解有误或者表达不当之处,欢迎指正~
如果觉得本文有所帮助,希望点赞支持~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值