<select id="selectPerson" parameterType="int" resultType="hashmap">
SELECT * FROM PERSON WHERE ID = #{id}
</select>
这个语句被称作 selectPerson,
接受一个 int(或 Integer)类型的参数,
并返回一个 HashMap 类型的对象,其中的key是列名,value是结果行中的对应值。
#{id} 是告诉 MyBatis 创建一个预处理语句参数,类似JDBC的
// Similar JDBC code, NOT MyBatis…
String selectPerson = "SELECT * FROM PERSON WHERE ID=?";
PreparedStatement ps = conn.prepareStatement(selectPerson);
ps.setInt(1,id);
Mapper XML 文件
MyBatis 的真正强大在于它的映射语句,如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。 SQL 映射文件的几个顶级元素(按照它们应该被定义的顺序):
本文目录
Select
查询语句是 MyBatis 中最常用的元素之一,多数应用也都是查询比修改要频繁。 对每个插入、更新或删除操作,通常对应多个查询操作。这是 MyBatis 的基本原则之一,也是将焦点和努力放到查询和结果映射的原因。
Select 简单示例
简单查询的 select 元素如下:
#{id}
是告诉 MyBatis 创建一个预处理语句参数,类似JDBC的Select 深入探究
select 元素有很多属性允许你配置,来决定每条语句的作用细节。如:
具体的含义:
更新语句:Insert,Update和Delete
insert,update和delete简单示例
下面就是 insert,update 和 delete 语句的示例:
insert,update和delete深入探究
属性 描述
insert随数据库主键自增规则
如果你的数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server),那么你可以设置
useGeneratedKeys=”true”
,然后再把keyProperty
设置到目标属性上就OK了。例如,如果上面的 Author 表已经对 id 使用了自动生成的列类型,那么语句可以修改为:<insert id="insertAuthor" useGeneratedKeys="true" keyProperty="id"> insert into Author (username,password,email,bio) values (#{username},#{password},#{email},#{bio})
<insert id="insertAuthor" useGeneratedKeys="true" keyProperty="id"> insert into Author (username, password, email, bio) values