1、MyBatis是什么?
MyBatis是apache一个开源的ibatis,2010年迁移到Google,改名为MyBatis,也就是MyBatis在ibatis上改进的,后来有迁移到了GitHub。MyBatis是一个优秀的持久层框架,它对jdbc操作数据库过程进行封装,使开发者只需要关注SQL本身。不需要过多精力关注如:注册驱动,创建connection,创建statement等繁琐的代码。MyBatis通过xml或注解方式将执行的各种statement配置,然后通过java对象和statement中的sql进行映射最终生成sql语句,最后,通过MyBatis框架执行sql语句将结果映射给java对象并返回。
2、使用MyBatis的优点和缺点?
优点:
(1)代码量少,不需要手动开关连接。
(2)和各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。
(3)解耦,便于统一管理,可重用。
(4)提供映射标签,支持对象与数据库的ORM字段关系映射.
缺点:
(1)sql语句编写工作量大,对开发人员的功底有一定的要求。
(2)sql语句依赖于数据库,不可随意更换数据库。
3、MyBatis中的#{}和${}有什么区别?
#是预编译处理,$是字符串替换
MyBatis 在处理#时, 相当于给字符串加上双引号,如:order by #{user_id},如果传入的是1,那么解析的结果是order by "1"。
MyBatis 在处理$时, 就是替换变量的值,如:order by ${user_id},如果传入的是1,那么解析结果就是1.
另外,#能有效的防止SQL注入。
4、MyBatis适用的场景?
(1)需求变化多的项目或者对性能要求高的
(2)MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案
声明:
文章内容版权归作者所有,不代表本站任何观点;任何转载需经过作者授权。