2018年4月里工作中遇到的问题
1、Mybatis中的_parameter:
如果需要if test则一定
使用<if test="_parameter != null">,此处一定使用_parameter != null而不
是id != null
2、Mybatis中example类的使用:
-
要使用example类,先要在项目中导入mybatis.mapper的jar包。
-
-
Mapper接口中包含了单表的增删改查以及分页功能。
-
-
给出实例:
-
-
CountryMappermapper = sqlSession.getMapper(Country.class);
-
-
//Country.class是实体类
-
-
//查询操作
-
-
List<Country>cList = mapper.select(new Country());
-
-
现在使用Example查询
-
-
Example example =new Example(Country.class);
-
-
example.createCriteria().andEqualTo(“id”,100);
-
-
//这里给出查询为id=100
-
-
cList = mapper.selectByExample(example);
-
-
-
-
example.setOrderByClause(“字段名ASC”); 以某字段升序排序
-
-
example.setDistinct(false)//去除重复,boolean型,true为选择不重复的记录
-
-
selectByExample()返回的是一个集合
-
-
mybatis中mapper的实例函数:
-
-
int countByExample(UserExample example) thorws SQLException:按条件计数。
-
-
int deleteByPrimaryKey(Integer id) thorws SQLException:按主键删除。
-
-
int deleteByExample(UserExample example) thorws SQLException:按条件删除。
-
-
String/Integer insert(User record) thorws SQLException:插入(返回值为id值)
-
-
User selectByPrimaryKey(Integer id) thorws SQLException:按主键查询。
-
-
List<?>selectByExample(UserExample example) thorws SQLException:按条件查询
-
-
List<?>selectByExampleWithBLOGs(UserExample example) thorws SQLException:按
-
-
条件查询(包括BLOB字段)。只有当数据表中的字段类型有为二进制的才会产生。
-
-
int updateByPrimaryKey(User record) thorws SQLException:按主键更新
-
-
int updateByPrimaryKeySelective(User record) thorws SQLException:按主键更新值不为null的字段
-
-
int updateByExample(User record, UserExample example) thorws SQLException: 按条件更新
-
-
int updateByExampleSelective(User record, UserExample example)thorws
-
-
SQLException:按条件更新值不为null的字段
-
-
mybatis中mapper的实例函数详解: selectByPrimaryKey()
-
-
Country country = ##Mapper.selectByPrimaryKey(100);
-
-
相当于select * from user where id = 100
-
3、<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>
prefix:在trim标签内sql语句加上前缀。 suffix:在trim标签内sql语句加上后缀。 suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。 prefixOverrides:指定去除多余的前缀内容
|
4、mysql Packet for query is too large (1185 > 1024)异常
注:最近mysql一直提示如下错误 Packet for query is too large (1185 > 1024). You can change this value on the server by setting the max_allowed_packet' variable. ...
按网上要求,检查max_allowed_packet show VARIABLES like '%max_allowed_packet%';
修改max_allowed_packet set global max_allowed_packet = 2*1024*1024*10
或者修改配置文件my.ini(windows)/my.cnf(linux) max_allowed_packet = 20M
重启 后临时解决问题,但过了与一会儿后问题有存在了。后在http://bbs.csdn.net/topics/390983183上面看到,可能是被攻击 |
解决方法:
5、Jquery遮罩ShowLoading组件
①、意义:开发项目中,前台的页面要发请求到服务器,服务器响应请求返回数据到前台,这段时间,有可能因 为返回的数据量较大导致前台页面出现短暂性的等待,此时如果用户因不知情而乱点击有可能造成逻辑混 乱,所以此时需要在加载数据中将前台进行提示在加载数据中,利用jquery的遮罩组件可以完成这个功能 需求。 ②、实现步骤 (1)、下载showLoading.css jquery.showLoading.min.js 两个文件。 (2)、在jsp中引入这两个文件 [ javascript] view plain copy
(3)、在异步请求中使用这个组件 [ javascript] view plain copy
|
6、巧用Ajax的beforeSend 提高用户体验:**
用于在向服务器发送请求前执行一些动作。
防止重复数据 在实际项目开发中,提交表单时常常由于网络或者其原因,用户点击提交按钮误认为自己没有操作成功,进而会重复提交按钮操作次数,如果页面前端代码没有做一些相应的处理,通常会导致多条同样的数据插入数据库,导致脏数据的增加。要避免这种现象,在$.ajax请求中的beforeSend方法中把提交按钮禁用掉,等到Ajax请求执行完毕,在恢复按钮的可用状态。 举个例子: // 提交表单数据到后台处理 $.ajax({ type: "post", data: studentInfo, contentType: "application/json", url: "/Home/Submit", beforeSend: function () { // 禁用按钮防止重复提交 $("#submit").attr({ disabled: "disabled" }); }, success: function (data) { if (data == "Success") { //清空输入框 clearBox(); } }, complete: function () { $("#submit").removeAttr("disabled"); }, error: function (data) { console.info("error: " + data.responseText); } }); 模拟Toast效果 ajax请求服务器加载数据列表时提示loading(“加载中,请稍后...”), $.ajax({ type: "post", contentType: "application/json", url: "/Home/GetList", beforeSend: function () { $("loading").show(); }, success: function (data) { if (data == "Success") { // ... } }, complete: function () { $("loading").hide(); }, error: function (data) { console.info("error: " + data.responseText); } });
|
7、jsp页面中下拉框选择后,另一个input框数值改变,如何去实现
<script type="text/javascript"> function aa(){ document.getElementById('tt').value=document.getElementById('ss').value; } </script>
|
<body> <select id="ss" οnchange="aa()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> </select> <input type="text" id="tt"/> </body> |
8、MySQL查询语句:
select 1 from table; select anycol(目的表集合中的任意一行) from table; -- (目的表集合中的任意一行) select * from table
上面这三条语句从作用上来说是没有差别的,都是查看是否有记录,一般是作条件查询用的。 select 1 from 中的1是一常量(可以为任意数值),查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。 |
9、反射的知识点:
结论:当isAccessible()的结果是false时不允许通过反射访问该字段;当该字段时private修饰时isAccessible()得到的值是false,必须要改成true才可以访问。所以 f.setAccessible(true);起得作用就是让我们在用反射时访问私有变量 |
10、 bootstrap-table只能被调用一次的问题
问题:通过设置查询条件,点击按钮触发bootstrap-table,触发以后无法再次触发 解决方案:在初始化table之前,要将table销毁,否则会保留上次加载的内容 $("#table").bootstrapTable('destroy'); |
文章来源: blog.csdn.net,作者:轻狂书生FS,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/LookForDream_/article/details/86634256
- 点赞
- 收藏
- 关注作者
评论(0)