MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。接下来通过本文给大家介绍 mybatis 快速入门学习教程新手注意问题小结, 需要的朋友可以参考下
什么是 mybatis
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录.
orm 工具的基本思想
无论是用过的 hibernate,mybatis, 你都可以法相他们有一个共同点:
1. 从配置文件 (通常是 XML 配置文件中) 得到 sessionfactory.
2. 由 sessionfactory 产生 session
3. 在 session 中完成对数据的增删改查和事务提交等.
4. 在用完之后关闭 session 。
5. 在 Java 对象和 数据库之间有做 mapping 的配置文件,也通常是 xml 文件。
参数问题
在映射文件中通过 parameterType 指定输入参数的类型;在映射文件中通过 resultType 指定输出结果的类型。
占位符和拼接符问题
#{} 表示一个占位符号,#{} 接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,#{} 中可以写成 value 或其它名称。
#{} 接收 pojo 对象值,通过 OGNL 读取对象中的属性值,通过属性. 属性. 属性... 的方式获取对象属性值。
${} 表示一个拼接符号,会引用 sql 注入,所以不建议使用 ${}。
${} 接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,${} 中只能写成 value。
${} 接收 pojo 对象值,通过 OGNL 读取对象中的属性值,通过属性. 属性. 属性... 的方式获取对象属性值。
selectone 和 selectList
在我们通过 sqlSession 进行查询的时候,可以选择 selectOne 和选择 SelectList,这个时候,它们是有区别的。
selectOne 表示查询出一条记录进行映射。如果使用 selectOne 可以实现使用 selectList 也可以实现(list 中只有一个对象)。
selectList 表示查询出一个列表(多条记录)进行映射。如果使用 selectList 查询多条记录,不能使用 selectOne。
如果使用 selectOne 报错:
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 4
以上所述是小编给大家介绍的 mybatis 快速入门学习教程新手注意问题小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 PHPERZ 网站的支持!
来源: http://www.phperz.com/article/17/1212/358522.html