1、#{}与${}的区别
1)#传入的参数在SQL中显示为字符串,#方式能够在很大程度上防止sql注入
2)$传入的参数在SQL中直接显示为传入的值。$方式无法防止sql注入
3)$方式一般用于传入数据库对象,如表名
4)多数情况下使用#,一般能用#的就不使用$。但有些情况下必须使用$,Mybatis排序时使用order by动态参数时需要注意用$
2、Mybatis优点
1)灵活,不会对应用程序会数据库的现有设计造成任何影响,SQL写在XML里,解除SQL与程序代码的耦合,便于统一管理,提供XML标签,支持编写动态SQL语句,并可重用
2)与JDBC相比,完成了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接
3)很好的与各种数据库兼容(支持JDBC的数据库就支持mybatis)
4)能够与spring很好的集成
5)提供映射标签,支持对象与数据库的ORM字段关系映射,提供对象关系映射标签,支持对象关系组件维护