Spring boot实现数据库表格的生成、筛选、下载、打印功能
这里介绍一种方法使用 layui框架table.render()组件
效果预览
一、前端
1、body部分添加一行代码
<!-- 引入 layui.css -->
<link rel="stylesheet" href="//unpkg.com/layui@2.6.6/dist/css/layui.css">
<!--body 部分添加一行代码-->
<table class="layui-hide" id="demo" lay-filter="test"></table>
2、引入layui框架js,实例化table
引入 layui.js -->
<script src="//unpkg.com/layui@2.6.6/dist/layui.js"></script>
<script>
layui.use(function(){
//得到各种内置组件
table = layui.table; //表格
//执行一个 table 实例
table.render({
elem: '#demo'
,height: 420
,url: '/product?token=09' //换成自己的的数据接口
,title: '产品表'
,page: false//开启分页
,toolbar: 'default' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
,totalRow: false//开启合计行
,cols: [ //在spring boot环境下必须是这种层次结构,
[ //表头
{type: 'checkbox', fixed: 'left'}
,{field: 'id', title: 'ID', width:80, sort: true,fixed: 'left'}
,{field: 'sort', title: '类别', width:80, sort: true}
,{field: 'name', title: '名称', width: 200 }
,{field: 'price', title: '单价', width: 80, sort: true}
,{field: 'status', title: '状态', width:80, sort: true}
,{field: 'image_url', title: '图片地址', width: 200}
,{field: 'create_time', title: '添加时间', width: 170, sort: true}
,{field: 'update_time', title: '更新时间', width:170, sort: true}
,{field: 'delete', title: '删除时间', width: 170, sort: true}
]
]
});
});
</script>
二、业务端
1、Controller层请求接口
@Autowired
private ProductRepository productRepository;
@GetMapping("/producttest")
public String productTest(HttpServletResponse response, @RequestParam("token") String token) {
LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
//放入layui框架fuction()返回参数
map.putIfAbsent("code", "0");
map.putIfAbsent("msg", "success");
map.putIfAbsent("count", "100");
map.putIfAbsent("data", productRepository.findAll());
System.out.println(map);
return JSON.toJSONString(map);
}
2、DAO层
@Repository
public interface ProductRepository extends JpaRepository<Product,Integer> {
}
3、Module层
@Entity(name="product")
public class Product {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Column()
private String sort;
private String name;
private double price;
private String image_url;
private String status;
private String create_time;
private String update_time;
private String delete_time;
//此处省略了get,set方法,需要自己自动生成
}
三、需要引入的依赖
<!-- json格式转换 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!-- 添加Spring Data JPA依赖启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
四、具体效果
1、生成、筛选
2、下载