MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。
使用"#{}"传入参数时sql解析会多加上单引号,如:select * from table where name = #{name} ,传入的参数name为yoodb,那么打印出来的则是select * from table where name = 'yoodb',将其当成字符串来解析,并且#{}传参能防止sql注入。
使用"${}"传入参数时可以做动态排序,此时只能用"${}",而不能使用"#{}",否则打印出来的就是select * from table order by 'name',sql语句有误,建议使用"#{}"能避免不用"${}"就不使用。