MyBatis使用技巧、总结、注意事项】的更多相关文章

索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL );我们随机向里面插入了10000条记录,其中有一条:5555, admin.在查找username="admin"的记录 SELECT * FR…
一.普通索引 这是最基本的索引,它没有任何限制.它有以下几种创建方式: 1.创建索引 CREATE INDEX [indexName] ON [mytable] ([column][(length)],...); 如果是CHAR,VARCHAR类型,length可以小于字段实际长度:如果是BLOB和TEXT类型,必须指定 length. 2.修改表结构 ALTER [mytable] ADD INDEX [indexName] ON ([column][(length)],...) 创建表的时候…
一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重. 在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响不大.但是当数据量和访问量剧增的时候,就会发现mysql变慢,甚至down掉,这就必须要考虑优化sql了,给数据库建立正确合理的索引,是mysql优化的一个重要手段. 索引的目的在于提高查询效率,可以类比字典,如果要查"mysql…
<!-- TITLE: 使用css时的一些技巧及注意事项 --> # CSS推荐书写顺序: 1. 位置属性(position, top, right, z-index, display, float等)2. 大小(width, height, padding, margin)3. 文字系列(font, line-height, letter-spacing, color- text-align等)4. 背景(background, border等)5. 其他(animation, transi…
  在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表:  代码如下: CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL  ); 我们随机向里面插入了10000条记录,其中有一条:5555, admin. 在查找username="admin"的记录 SELECT * FROM mytable WHERE username='admin';时,如果在us…
目录 1.mybatis的官方文档地址 2.其他技巧: 2.1 如何在代码中拼接 like %% 2.2 数据库比较时日期的错误操作 2.2.1 异常情况: 2.2.2 为什么会在后面指定jdbcType,及真正的错误与那样? 2.2.3 关于什么时候使用jdbcType? 2.3 SQL和resultMap中字段对应关系异常分析 2.3.1 SQL中有,ResultMap中没有: 2.3.2 SQL中没有,ResultMap中有 2.3.3 总结: 1.mybatis的官方文档地址 mybat…
总结了一些JavaScript在开发编码中的使用技巧,如有不对,欢迎指正. 一.JavaScript在HTML和XHTML的使用 使用<script>元素有两种方式:直接在页面中嵌入JavaScript代码和引入外部JavaScript文件. 1. 先说一下在HTML页面使用内嵌的JavaScript方式 <script type="text/javascript"> function compare(a,b){ if(a < b){ console.lo…
一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重. 在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响不大.但是当数据量和访问量剧增的时候,就会发现mysql变慢,甚至down掉,这就必须要考虑优化sql了,给数据库建立正确合理的索引,是mysql优化的一个重要手段. 索引的目的在于提高查询效率,可以类比字典,如果要查"mysql…
一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重. 在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响不大.但是当数据量和访问量剧增的时候,就会发现mysql变慢,甚至down掉,这就必须要考虑优化sql了,给数据库建立正确合理的索引,是mysql优化的一个重要手段. 索引的目的在于提高查询效率,可以类比字典,如果要查"mysql…
mybatis实现DAO接口编码技巧 1.XML文件通过namespace命名空间关联接口类 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.azcode.dao.SeckillDao"> 2.接口传入的参数类型…
原文链接:http://wksandy.iteye.com/blog/1443133 xml中某些特殊符号作为内容信息时需要做转义,否则会对文件的合法性和使用造成影响 < < > > & & &apos; ' " " 在mapper文件中写sql语句时,为避免不必要的麻烦(如<等),建议使用<![CDATA[ ]]>来标记不应由xml解析器进行解析的文本数据,由<![CDATA[  ]]>包裹的所有的内容都会…
☬配置日志文件 封装工具类 代码贴一下: package com.shxt.utils; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessi…
Qt Creator 2.5 版本的时候增加了这个插件 一直没怎么用到 现在想起来 google了一下 做个总结吧 先晒图 就是这样啦 用法也很简单 在项目的随便一个位置 写一个注释 只要以上面5个关键字(BUG FIXME NOTE TODO WARNING)开头 就会在ToDo事项里出现你的这句注释了 可以很方便的定位你想修改的代码片段 要注意的是 关键字是大小写敏感的 比如你 //Bug 那么就不会出现 另外 //TODO 后面是不需要加冒号的,只要留个空格就可以了…
说明 本文记录MongoDB数据库的使用技巧总结,特性发现. 利用TTL特性实现数据定时删除 限制: 你不能创建TTL索引,如果要索引的字段已经在其他索引中使用. 索引不能包含多个字段. 索引的字段必须是一个日期的 bson 类型. test:PRIMARY> db.runoob.createIndex({"createdAt":1},{expireAfterSeconds:5*60}) # 对createdAt字段,"顺序"设置索引,-1表示倒序,过期时间设…
9月 11, 2014 | Nix.Huang 目录: 1.区分 #{} 和 ${}的不同应用场景 2.spring环境用mybatis-spring 的接口而不是Mybatis的原生接口 3.返回Map<ID, Entity>而不是List便于查找 4.使用Map封装查询的结果 5.使用Map封装查询结果时注意数据的类型映射 6.正确的配置Mybatis 的Log 7.警惕Mybatis的foreach的的副作用 8.使用原生的SQL操作数据以提高效率 9.警惕MyBatis封装数据时性能损…
经过一个上午的折腾,终于总结出一套完全能够正确运行得到asdoc api的工具.使用方便,里面写了许多注意事项,帮你顺利完成 api 的生成. ::        注意: ::        1.所以 asdoc 注释都必须格式正确,所以标签必须正确对应闭合. ::        2.所有特殊字符必须进行替换,切记禁止使用空格实体 ::        & - &                < - <                > - > ::        …
一.自定义返回拦截器package com.yaoex.crm.service.util; import org.apache.ibatis.session.ResultContext;import org.apache.ibatis.session.ResultHandler;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionTemplate;import org.slf…
1. 区分 #{} 和 ${}的不同应用场景 1)#{} 会生成预编译SQL,会正确的处理数据的类型,而${}仅仅是文本替换. 对于SQL: select * from student where xCode = 'S123456': 如果使用#{} 那么生成的SQL为: select * from student where xCode = ? 传的值为'S123456': 如果使用${} 那么生成的SQL为:select * from student where xCode = S12345…
本节主要讲解mybatis如下五个方面的内容: foreach 批量插入 模糊查询like的写法 #{}和${}的区别 解决实体类中的属性名和表中的字段名不一致问题 由于每次建立工程比较复杂,可以参考第一节:mybatis入门来搭建一个简单的工程,然后来测试本节内容. 1.foreach foreach是一个动态sql标签,主要解决mapper接口方法的参数是集合数组时如何进行操作.比如根据传入的多个id进行查询,那么sql一般使用 in 关键字,但是多个id如何拼装成一条完整的sql语句?这就…
什么时候会导致不安全的分页? PageHelper 方法使用了静态的 ThreadLocal 参数,分页参数和线程是绑定的. 只要你可以保证在 PageHelper 方法调用后紧跟 MyBatis 查询方法,这就是安全的.因为 PageHelper 在 finally 代码段中自动清除了 ThreadLocal 存储的对象. 如果代码在进入 Executor 前发生异常,就会导致线程不可用,这属于人为的 Bug(例如接口方法和 XML 中的不匹配,导致找不到 MappedStatement 时)…
一.meta的使用 1.<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/> 强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览 2.winphone系统a.input标签被点击时产生的半透明灰色背景怎么去掉…
在listView 或者 gridView 的使用中,通常不仅仅为了展现数据,更多的是操作数据.于是当控件重合在一起时,我们需要添加事件.就会出现一个问题,当点击一个控件和长按这个控件时,常常出现长按控件会影响点击事件,也就是长按了控件,那么自动会带上点击事件的效果.纠结了下,发现原来是长按时,应该返回 true.…
1.有的时候需要删除指定字段那一列,使用update操作.例如要删除name这一列: query  json: {"name":{$exists:true}} update json: {$unset:{"name":""}} 2.数据导出,在mongodb的bin目录执行mongoexport命令并设定相关的参数,例如: ./mongoexport -h 192.168.0.201 --port 27017 –d admin –u admin…
1调整字体,window->prefernce->Appereance->colors and fonts->Basic->Text font双击即可进行编辑 2.设置行号 右击左边框,选择show line numbers 即可 3.如果帮左边和上面的界面×掉了 点击"window"->"showview"里面进行勾选4."eclipse"设置包名右击"src"然后进行命名规则,一般将公司…
1. 使用事务注解.    @Transactional…
百分号后面必须要加上空格,不然会将后面的字符串全部都黏在一起,导致sql语句运行报错…
1.首次为变量赋值时务必使用var关键字 变量没有声明而直接赋值得话,默认会作为一个新的全局变量,要尽量避免使用全局变量. var a=b=10;//其中a是局部变量,b是全局变量 2.使用===比==执行更快 ==和!=操作符会在需要的情况下自动转换数据类型.但===和!==不会,它们会同时比较值和数据类型,这也使得它们要比==和!=快. [10] === 10 // is false [10] == 10 // is true '10' == 10 // is true '10' === 1…
在<if>标签的test中,不能写成“name !='aa'” , 会报错### Error querying database. Cause: java.lang.NumberFormatException: For input string: xxxx 正确写法: 'name != "aa" ' 或者 "name != 'aa'.toString()"…
1.字符串反向比较  “abc”.equals(sting) 2.文档注释 /** *注释内容 */ 3.…
verbose_name 可以作为第一个参数传入,书写更加工整和有序: name = models.CharField('类别名',default="", max_length=30,help_text="类别名") null=True, blank=True 一般同时出现,前者表示数据库字段可以为null,后者表示form中required = False,即可以为空白: birthday = models.DateField("出生年月",n…