java面试题7
2016-03-13 14:27
239 查看
1、MyBatis中如何实现动态SQL的?
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. MyBatis中用于实现动态SQL的元素主要有:if, choose(when,otherwise),trim,where,set,foreach
2、Mybaties中#与$的区别?
1)#是把传入的数据当作字符串,如#field#传入的是id,则生成sql语句:order by “id”;
2)$传入的数据直接生成在sql里,如$field$传入的是id,则sql语句生成是这样,order by id ;
3)#方式能够很大程度防止sql注入, 但$方式无法防止sql注入;
4)$方式一般用于传入数据库对象.例如传入表名;
5)一般能用#的就别用$ ;
3、MyBatis原理,为什么使用,优点是什么
封装了JDBC操作,将SQL查询结果映射为对象,将对象属性值映射到SQL.
步骤:
1)解析SqlMapConfig.xml和SqlMap.xml(定义SQL)
2)将解析出的SQL生成MappedStatement(预编译Statement)
3)将传入的SQL参数给Statement绑定,参数类型可以为java对象,Map类型,int,String类型
4)执行mappedstatement,返回sql结果
5)将返回的SQL结果转为Java对象,Map,int,String类型返回
优点:简化数据库访问操作,便于实现DAO操作
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. MyBatis中用于实现动态SQL的元素主要有:if, choose(when,otherwise),trim,where,set,foreach
2、Mybaties中#与$的区别?
1)#是把传入的数据当作字符串,如#field#传入的是id,则生成sql语句:order by “id”;
2)$传入的数据直接生成在sql里,如$field$传入的是id,则sql语句生成是这样,order by id ;
3)#方式能够很大程度防止sql注入, 但$方式无法防止sql注入;
4)$方式一般用于传入数据库对象.例如传入表名;
5)一般能用#的就别用$ ;
3、MyBatis原理,为什么使用,优点是什么
封装了JDBC操作,将SQL查询结果映射为对象,将对象属性值映射到SQL.
步骤:
1)解析SqlMapConfig.xml和SqlMap.xml(定义SQL)
2)将解析出的SQL生成MappedStatement(预编译Statement)
3)将传入的SQL参数给Statement绑定,参数类型可以为java对象,Map类型,int,String类型
4)执行mappedstatement,返回sql结果
5)将返回的SQL结果转为Java对象,Map,int,String类型返回
优点:简化数据库访问操作,便于实现DAO操作
相关文章推荐
- java面试题6
- java面试题5
- 应聘时给HR最漂亮的回答
- 剑指offer代码解析——面试题14调整数组顺序使奇数在偶数之前
- 剑指offer代码解析——面试题14调整数组顺序使奇数在偶数之前
- 15个java多线程面试题
- 编程面试的10大算法概念汇总
- java多线程面试题
- 面试题(1)
- Android面试题
- 程序员博客
- Android面试必备
- 一个面试题引发的思考(Java的值传递)
- 向面试官提问
- leetcode之sqrt(x)
- 关于面试,关于大学——大四狗的自述
- 剑指offer代码分析——面试题13在O(1)内删除链表结点
- 剑指offer代码分析——面试题13在O(1)内删除链表结点
- 我的职场
- 面试题目集锦--链表