mybatis自己容易忘记的东西1(仅适自己)
2017-08-12 16:24
302 查看
注:该文章只是针对自己在其他地方加强复习,没有参考意义。
一、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的注入
表示sql的拼接,不加任何修饰{}%
如果引resultMap的为位置和resultMap的定义在同一个resultMap。xml中,直接使用ID,否则就是 命名空间.id
@Before注解,每次致谢@Test注解时先执行@before中的代码
sqlMapConfig
like %${userCustom.userName}%
使用resultType时sql查询的列名(字段取得别名)要和指定的pojo属性名相同,指定相同属性方可映射成功
一、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的注入
表示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自己容易忘记的东西2(仅适自己)
- SpringMvc容易忘记的东西(仅仅适合自己无参考意义)
- R本月小总结,容易忘记的东西
- 自己老是忘记的一些东西
- 【情怀记录贴】:记录容易忘记的东西
- iOS自己写的一些容易忘记的小知识
- 写博客记住自己忘记的东西
- C++中那些容易忘记或混淆的东西--指针
- 密码发生器(在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了)
- 密码发生器 在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或
- 杂记,记录一些容易忘记的代码技巧之类的东西。
- 好玩,以前自己写的东西,竟然忘记了
- Jsp页面中经常写错和容易忘记的东西
- 2015.6.27_记录自己学到的和自己容易忘记的有关编写MapReduce程序的要点
- 发博客只是为了记录自己学习过程的东西,到时候要使用的时候忘记 免得在寻找
- 查看表创建详情-》自己容易忘记
- 基础,自己又容易忘记的,计算机基础知识
- sql 语句 容易忘记的一些东西
- 笔记—容易忘记的一些东西
- vim中自己容易忘记的命令