刚开始接到的任务是开发3个app端的接口,很简单,一个是单表查询,两个是双表查询,dao层用的是hibernate,由于很长时间不用hibernate了,
搞的我非常吃力,也是自己的原因,掌握的不够牢靠!
先说说学到的东西吧:
1.我们这里用的测试接口是一个插件,叫做Swagger UI,是一个插件,测试接口
用的,前台只需打开一个页面,在controller中配置好注解,页面上你写的接口就出来
了,输入json就能访问了,例如这样:
`@ApiOperation(value = "XX记录", notes = "XX记录")
@ApiResponses(value = { @ApiResponse(code = 200, message = RETURNMESSAGE) })
@RequestMapping(value="xxxxx", method=RequestMethod.POST, produces="text/html;charset=UTF-8")
@ResponseBody
public String crList(@RequestParam String info){}`
前台的页面是这样的:![测试接口页面](https://img-blog.csdn.net/20161026160826621)
这个东西特别好使,从此告别了httpRequestor等模拟请求发送数据!
2.数据源的切换,由于我们的数据源是双数据源,切换是在配置文件配两个数据源,hibernate配置文件有两个每一个数据源的配置文件中装着它自己是
实体类+映射文件.切换是时候是有两个dao层,需要去那个数据源操作就掉哪个dao层级可以,dao的实现类的sessionFactory通过注解已经注入好
当前数据库的sessionFactory了!
3.返回的Json数据封装也非常简单:
<!-------------- 返回前端的写法 --------------->
`JsonBean4Obj obj = JsonUtil.getJsonBeanStr4Obj(0, "获取数据成功!");
obj.setDataList(crList);
return JsonUtil.getJsonBeanStr(0, "", obj);`
<!-------------- JsonBean4Obj类的写法 --------------->
`public class JsonBean4Obj {
//消息状态码
private Integer status;
//消息内容
private String message;
//对象数据
private JSONObject data;
//对象数据集合
private List<JSONObject> dataList;
}`
<!-------------- JsonUtil类方法的写法 --------------->
`public static String getJsonBeanStr(Integer state, String msg, Object obj) {
JsonBean json = new JsonBean();
json.setState(state);
json.setMsg(msg);
json.setObj(obj);
return JsonUtil.toJson(json);
}`
遇到的问题:
1.bean在数据源中放错位置
2.sessionFactory注入错误.粗心!
3.hibernate查询时,属性为关键字时,报错说:
1).无法提取结果集
2).xxx关键字附近有语法错误!
解决思路:原因.因为关键字不能直接做查询,关键字不能做映射
解决其实很简单,就是这样:
`@Column(name="`grant`")
public String getGrant() {
return grant;
}`
这些是我前几天的一些收获吧,其实本来想找个写日志的网站.每天的收获,都总结一下,
相当于写工作日记之类的,后来发现网站都不怎么样,就写到这里了,这些是我个人的一些问题总结,也可以相互学习,共同进步!
开发遇到问题之总结---接触到的hibernate
最新推荐文章于 2024-09-29 19:21:13 发布