这里我用的是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中模拟请求发送
最后附上源码