您的位置:首页 > 职场人生

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操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: