智能商贸管理系统集成用户存储,产品供销等一系列功能
搭建项目框架(一)
Spring+SpringDataJPA+SpringMVC+EasyUI+Maven
(1)创建一个maven结构项目并导入相关包
(1.1)创建domain,提供相应字段
(1.2)抽取公共字段写一个父类
@MappedSuperclass
标识的类表示其不能映射到数据库表,因为其不是一个完整的实体类,但是它所拥有的属性能够隐射在其子类对用的数据库表中
(1.3)配置applicationContext.xml
1…导入资源文件 2.配置DataSource 3.配置entityManagerFactory 4.开启事物扫描支持
5.SpringDataJpa的扫描
(1.4)使用SpringDataJpa
是JPA规范的再次封装抽象,底层还是使用了Hibernate的JPA技术实现,引用JPQL的查询语句 ,是属于Spring的生成体系中的一部分。
(1.5)创建repository层并实现JpaRepository<Employee(类), Long(id类型)
(1.6)测试CRUD
(1.7)根据条件查询
(1.8)原生sql写法
加入@Query注解
(1.9)
分页对象
排序对象
(2.0)JpaSpecificationExecutor查询
JPA2.0提供的Criteria API的使用封装,可以用于动态生成Query来满足我们业务中的各种复杂场景
继承JpaSpecificationExecutor
多条件模糊查询测试
(2.1)创建query层,用于接收前台传来的参数
抽取公共字段写入父类,并实现排序查询功能 写一个抽象方法让子类必须实现
前台用户传入的当前页一般从1开始,但是程序中查询一般下标为0开始查询,解决办法:
创建query对象接收前台参数并继承上面的父类,并实现模糊查询的功能
完善功能(二)
.SpringDataJpa扩展
BaseRepository 接口
1.BaseRepository 接口
2.BaseRepositoryImpl 实现 BaseRepository
3.让SpringDataJpa使用我们自己的实现
3.1 BaseRepositoryFactoryBean
原来默认使用SimpleJpaRepository来实现,把它修改成BaseRepositoryImpl
3.2 applicationContext.xml配置
3.3使用的时候继承BaseRepository
二.Service层的调用
三.集成SpringMVC与EasyUI
3.1 noSession问题
3.2 no serializer问题
解决方案:
3.3 分页获取数据
3.4 分页传数据
3.5 高级查询
引入jquery.jdirk.js
获取表单的功能