mybatis

原创
2015/08/07 14:46
阅读数 190

1. mybatis 查询时条件 小于---    列名与小于号之间只能有一个空格

 select * from hl_order where user_id = 7 and status < 6 order by order_id desc

2. 使用工具mysql-workbench进行增删改时  需先执行

SET SQL_SAFE_UPDATES = 0;

3.mybatis的报错    ORA-00911: 无效字符

原因是mapper里面的sql语句有;

4.mybatis使用like时,传参用$,避免生成的sql带引号

5.MyBatis/Ibatis中#和$的区别

1). #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".

2). $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id,  如果传入的值是id,则解析成的sql为order by id.

3). #方式能够很大程度防止sql注入。

4).$方式无法防止Sql注入。

5).$方式一般用于传入数据库对象,例如传入表名. 

6).一般能用#的就别用$. 

ps:在使用mybatis中还遇到<![CDATA[]]>的用法,在该符号内的语句,将不会被当成字符串来处理,而是直接当成sql语句,比如要执行一个存储过程。

数据库date类型处理

String类型转date
to_date('time_arg', 'YYYYMMDDHH24MISS') 
--具体时间格式自定义修改 
select *from TB_CPUDETAILS 
where applytime = TO_DATE(#{applytime}, 'YYYY-MM-DD') 

------------------------------
date转String
select * from TB_CPUINVOICE where to_char(applytime, 'YYYY-MM') like '2016-05%'

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部