这里我用的是posgreSql数据库,装在本地
springboot配置:
这里我们需要在数据库中创如下:
用户:postgres,密码:123456
数据库:sp
接着上一节说。
接图添加上一节没有的包,以及没有的文件。
首先我们看看实体类
像这样加上注解后,再加上本置文件已经配好,如果此时你已经启动了postgresql,那么运行这个就可以自己地在数据库中插入表了,这里有个注意的:表名(@Entity(name="table_name"))不可与数据库中的关键字重名,否则会失败。
@Id:主键
@GeneratedValue:自动生成数据
@Column:列
再来看看数据库的操作
2是继承spring-data jpa接口及自己需要的功能接口,
1是对数据库操作的定义接口以及实现
这两个是spring-data jpa规范,我也不是很精通,只写了一个小例子。
在Demo.java中可以添加操作函数,这们就可以通过浏览器请求进行数据库操作了,这里只贴一部分讲解。
@Path("employee") //路径 这里请求是:ip:port/demo/employee @POST //请求类型 @Produces(MediaType.APPLICATION_JSON) //产出类型, public String getEmployee(@FormParam("id") String paramId) {//这里有几种类型的参数,可以搜一下,就不总结了 UUID id = UUID.fromString(paramId) ; Employee emp = employeeService.findById(id) ; return gson.toJson(emp); }
上面的代码是通过POST请求发送id的方式查询,并以json的形式返回,这里的@Path不能跟其他的path有二义性,否则程序不知道选哪个就会出错
下面的代码是上传和查看图片。注意,这个.java文件要在JerseyConfig.java中注册,否则找不到,而且图片这个还有单独一个要注册的。
@Path("{id1}/file/{id2}/cao") @POST @Consumes(MediaType.MULTIPART_FORM_DATA) public Response cao( @FormDataParam("file") InputStream in, @PathParam("id1") String id1, @PathParam("id2") String id2) throws IOException { String baseLocation = JerseyConfig.getLocation() ; System.out.println(baseLocation+id1+id2); File f = new File(baseLocation + File.separator+id1+File.separator+id2) ; File parent = f.getParentFile() ; if(!parent.exists()) { if(!parent.mkdirs()) { //exception!!! } } Files.copy(in, f.toPath()) ; return Response.status(Status.OK).build() ; } @Path("{id1}/file/{id2}/cao") @GET @Produces(MediaType.APPLICATION_OCTET_STREAM) public Response showFile(@PathParam("id1") String id1, @PathParam("id2") String id2) { String baseLocation = JerseyConfig.getLocation() ; File f = new File(baseLocation + File.separator+id1+File.separator+id2) ; if(!f.exists()) { throw new WebApplicationException(404); } String mt = new MimetypesFileTypeMap().getContentType(f) ; return Response.ok(f,mt).build() ; }
下面演示一下上传图片的效果Postman中模拟请求发送
最后附上源码