mybatis自己容易忘记的东西1(仅适自己)
来源:互联网 发布:uvz for mac 编辑:程序博客网 时间:2024/05/22 13:58
注:该文章只是针对自己在其他地方加强复习,没有参考意义。
一、jdbc的缺点
1.preparedstatement防止sql的注入
2.对sql是预编译的,数据库对第二回发的同样的预编译时直接从缓存中取就不用编译。
3.sql语句是硬编码,改动需要改动java文件,不利于维护。
4.preparedstatement设置的参数也存在硬编码问题.
二、mybatis执行
1.sqlMapConfig.xml(配置文件)->(创建会话工厂)sqlSessionFactory->(创建会话)sqlSession(操作数据库)
2.底层的内部是Executor在干活,也是一个接口,有两个实现,(默认执行器,缓存执行器)
3.Executor(封装参数)->MappedStatement(封装,sql,占位符)
4.map的xml以statement为单位管理sql
sqlMapConfig.xml
三、xml的部分结构
xxxmapper.xml
命名规则:表面+mapper.xml
开发调试阶段用debug,别用info
log4j.rootLogger=DEBUG, stdout
map.xml结构(部分)
id为映射结果集唯一标识
column数据库中的表字段
在同一个文件可以直接引语,否则就是命名空间.resultMap的Id
也可以是全类名
·····
#是占位符 可以防止sql的注入
insert最好用#,可以不用考虑java和数据库类型<insert id="" parameterMap=""> 获取刚刚插入的自增主键值 <selectKey keyProperty="" order="before和after两个值" resultMap="int"> select last_insert_id() </selectKey> insert ....into...value... keyProperty就是将主键设置到哪个属性 order相对于insert语句执行顺序,before和after 也可以通过uuid机制生成主键,可以防止数据库移植和其他表主键重复的问题 <selectKey keyProperty="" order="before和after两个值" resultMap="String"> select uuid() </selectKey> oracle没有自增主键,要通过序列实现自增主键 实现思路:先查询序列得到主键,将主键设置到user对象中,将user对象插入数据库 <selectKey keyProperty="id" order="before" resulrMap=""> select 序列.nextval() from dual </selectKey> insert ....into...value...</insert>
如果引resultMap的为位置和resultMap的定义在同一个resultMap。xml中,直接使用ID,否则就是 命名空间.id
@Before注解,每次致谢@Test注解时先执行@before中的代码
sqlMapConfig
<package name=""/><typAliases> <typeAliase type="" aliase=""> <package name=""/></<typAliases>>
like %${userCustom.userName}%
使用resultType时sql查询的列名(字段取得别名)要和指定的pojo属性名相同,指定相同属性方可映射成功
- mybatis自己容易忘记的东西1(仅适自己)
- mybatis自己容易忘记的东西2(仅适自己)
- SpringMvc容易忘记的东西(仅仅适合自己无参考意义)
- 容易忘记的,自己看的
- 基础,自己又容易忘记的,计算机基础知识
- vim中自己容易忘记的命令
- 写博客记住自己忘记的东西
- iOS自己写的一些容易忘记的小知识
- 查看表创建详情-》自己容易忘记
- sql 语句 容易忘记的一些东西
- 自己整理的java泛型(仅限于自己使用)
- 忘记自己的错
- 没有自己的东西
- 自己用的东西
- 写给自己的东西
- 2015.6.27_记录自己学到的和自己容易忘记的有关编写MapReduce程序的要点
- 我的片段笔记!(有新鲜东西随时可能更新):仅用于自己学习笔记
- 叹十年(自己写的东西)
- 最长递增子序列
- 01背包问题(动态规划DP)
- 跟我一起hadoop(1)-hadoop2.6安装与使用
- 系统排错----文件引导出错
- 【loli的胡策】NOIP训练8.12(二分?+dp?)
- mybatis自己容易忘记的东西1(仅适自己)
- 2017暑假训练第十二天
- Python帮助文档的使用
- 最短路径之Dijkstra算法
- c语言初步经典题8--求一个数的各位值
- input的file类型的accept属性的值
- 数组去重复方法总结
- adb常用命令
- python爬虫进阶(四):多线程与多进程