代码编写技巧
来源:互联网 发布:oracle数据库漏洞 编辑:程序博客网 时间:2024/05/17 22:55
1、update/insert 方法使用技巧
update执行完毕后要判断是否执行成功,即update的条数是否符合预期,如果不符合则主动抛出异常,throws Exception
方法体
throws Exception
int num= demoDao.updateDemoVo(demoVo); if(num!=1){ throw new Exception(); }
2、update修改金额等计数类属性
修改计数类属性要在sql语句中进行计算,而不是使用set计算后结果,即set a=a+#{b}
3、update状态要注意由状态一变为状态二
状态一应加到where条件中
4、对外提供接口,不能直接使用service层
对外提供接口不能直接使用service层,而是应该再包装一层,一个是低耦合,一个是service层出现异常依旧可以给接口调用方返回结果,不至于中断
5、对于增减操作以及增的限制
比如用户购买商品,而且用户被限购,应该是先减少商品数,然后增加用户购买数,在用户增加购买商品数的时候,需要在sql中增加购买总数没有超过限制的判断-代码判断了虽然,sql语句也要增加判断。
6、对于定时任务,要注意限制批量操作的条数
对于定时任务,要注意限制批量操作的条数
7、使用switch必须在满足条件后跟随break
switch的运行机制是,case 条件满足后运行本条,如果没有break则运行之后所有的,而不再判断
8、List<Map<String.Object>> 遍历并且赋值并不能改变该list的参数状态
@Testpublic void test1(){List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();List<Map<String,Object>> list2=new ArrayList<Map<String,Object>>();for(int i=0;i<3;i++){Map<String,Object> map=new HashMap<String, Object>();map.put("name", "name"+i);System.out.println(map.get("name"));list2.add(map);}for(Map<String,Object> map:list){System.out.println("2"+map.get("name"));}for(Map<String,Object> map:list2){System.out.println("3"+map.get("name"));}System.out.println("运行结束");}
运行结果
name0name1name23name03name13name2运行结束
9、mybatis搜索数据库从Map中取值的技巧
分为两种情况,参数类型为 String,Int,boolean和其他
map为空
这些是针对搜索数据的情况,如果搜索条件不满足,则返回的结果就是null
如果,是其他类型,在Map<Stirng,Object>的情况下,直接获取map.get("key");也是Ok的,但是千万注意,如果在map前加类型转化,要注意是否可以强转。
int可以使用.toString,其他可以根据数据库类型加(String),(Integer)等。
@Testpublic void HashMapTest(){Map<String,Object> map=new HashMap<String,Object>();map.put("flag", true);System.out.println(map.get("flag")+map.toString());map.put("float", 1.02f);System.out.println((float)map.get("float"));map.put("string","1.01");System.out.println((String)map.get("string"));map.put("null",null);System.out.println(map.get("null"));/*Map<String,Object> map2=null;System.out.println(map2.get("flag"));*///报错Integer integer=1;map.put("integer",integer);System.out.println(map.get("integer").toString()+" +1");/*System.out.println((String)map.get("integer")+" +2");*///报错}结果:
true{flag=true}1.021.01null1 +1
10、接口访问使用@ResponseBody的访问效率不如全局配置
接口访问返回json串的实现有两种主要的方式,第一是使用@ResponseBody,将接口返回的实体转化为json串
第二种是增加配置
<!-- 实体 json 自动映射转化 --> <bean id="jsonConverter"class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes" value="application/json"/> </bean>
类上增加标注
@RestControllerpublic class RestfulController {
方法增加Mapping
@GetMapping(value="restfulGetNoResponseBody")
实验证明,使用第二种方式效率会很高。
第一种方法也需要再类和方法上增加相应注解@Controller或者@RestController,@GetMapping等,但是不会影响访问效率。
- 代码编写技巧
- JAVA代码编写技巧
- 代码编写技巧
- 代码语言编写技巧
- 代码编写技巧
- 代码编写技巧
- CUDA代码常用编写技巧
- Delphi技巧-编写Pascal代码
- Html代码编写技巧二
- CUDA代码常用编写技巧
- 编写优秀代码的技巧
- WEB前端代码编写技巧
- 密码代码编写小技巧
- 技巧:CSS代码编写的两则小技巧
- C语言代码编写技巧(1)
- 30个HTML代码编写技巧
- c#代码编写技巧总结66条
- 编写完美CSS代码的常用技巧
- Magic Number LCA求路径点集的并
- Flask在linux系统下环境的离线搭建及简单实用教程
- 树莓派下安装Django环境
- shell变量
- Centos下安装mysql
- 代码编写技巧
- 软件工程-系统开发方法-jackson方法
- 2017计蒜之道程序设计大赛初赛第五场
- 选择排序
- [LeetCode] Perfect Squares
- VB.NET总结
- vue--mounted
- java中IO流中的标准输入输出流
- 前端知识点整理系列(二)—— apply() call() bind()