2018年4月里工作中遇到的问题

举报
轻狂书生FS 发表于 2020/12/02 23:16:39 2020/12/02
【摘要】 1、Mybatis中的_parameter:   如果需要if test则一定      使用<if test="_parameter != null">,此处一定使用_parameter != null而不      是id != null 2、Mybatis中example类的使用: 要使用example类,先要在项目中导入mybatis.mapper的ja...

1、Mybatis中的_parameter:

  如果需要if test则一定

     使用<if test="_parameter != null">,此处一定使用_parameter != null而不

     是id != null

2、Mybatis中example类的使用:


  
  1. 要使用example类,先要在项目中导入mybatis.mapper的jar包。
  2. Mapper接口中包含了单表的增删改查以及分页功能。
  3. 给出实例:
  4. CountryMappermapper = sqlSession.getMapper(Country.class);
  5. //Country.class是实体类
  6. //查询操作
  7. List<Country>cList = mapper.select(new Country());
  8. 现在使用Example查询
  9. Example example =new Example(Country.class);
  10. example.createCriteria().andEqualTo(“id”,100);
  11. //这里给出查询为id=100
  12. cList = mapper.selectByExample(example);
  13. example.setOrderByClause(“字段名ASC”); 以某字段升序排序
  14. example.setDistinct(false)//去除重复,boolean型,true为选择不重复的记录
  15. selectByExample()返回的是一个集合
  16. mybatis中mapper的实例函数:
  17. int countByExample(UserExample example) thorws SQLException:按条件计数。
  18. int deleteByPrimaryKey(Integer id) thorws SQLException:按主键删除。
  19. int deleteByExample(UserExample example) thorws SQLException:按条件删除。
  20. String/Integer insert(User record) thorws SQLException:插入(返回值为id值)
  21. User selectByPrimaryKey(Integer id) thorws SQLException:按主键查询。
  22. List<?>selectByExample(UserExample example) thorws SQLException:按条件查询
  23. List<?>selectByExampleWithBLOGs(UserExample example) thorws SQLException:按
  24. 条件查询(包括BLOB字段)。只有当数据表中的字段类型有为二进制的才会产生。
  25. int updateByPrimaryKey(User record) thorws SQLException:按主键更新
  26. int updateByPrimaryKeySelective(User record) thorws SQLException:按主键更新值不为null的字段
  27. int updateByExample(User record, UserExample example) thorws SQLException: 按条件更新
  28. int updateByExampleSelective(User record, UserExample example)thorws  
  29. SQLException:按条件更新值不为null的字段
  30. mybatis中mapper的实例函数详解:  selectByPrimaryKey()
  31. Country country = ##Mapper.selectByPrimaryKey(100);
  32. 相当于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

  1. <link href="style/showLoading.css" rel="stylesheet" type="text/css" />  

  2. <script type="text/javascript" src="js/jquery.showLoading.min.js"></script>  

 

     (3)、在异步请求中使用这个组件

[    javascript] view plain copy

  1. function showloading(url,data){  

  2.     $("body").showLoading();  

  3.     $.ajax({  

  4.         url:url,  

  5.         data:data,  

  6.         dataType:"json",  

  7.         success:function(obj){  

  8.             $("body").hideLoading();  

  9.         }  

  10.     });  

  11. }  

 

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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。