java面试题7

1、MyBatis中如何实现动态SQL的?

MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. MyBatis中用于实现动态SQL的元素主要有:if, choosewhenotherwise,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.xmlSqlMap.xml(定义SQL)

2)将解析出的SQL生成MappedStatement(预编译Statement)

3)将传入的SQL参数给Statement绑定,参数类型可以为java对象,Map类型,int,String类型

4)执行mappedstatement,返回sql结果

5)将返回的SQL结果转为Java对象,Map,int,String类型返回


优点:简化数据库访问操作,便于实现DAO操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值