假设sw.com.domain包里有名为Person的Javabean。其属性有:name、age、address、birdthday;数据库表person的字段有:name、age、address、birdhday。name为主键。建立他们的对象关系映射文件PersonMapper.xml的主要映射关系元素。
时间: 2024-03-22 21:38:50 浏览: 68
你的问题涉及到Java中的ORM(对象关系映射)以及MyBatis框架的使用。下面是PersonMapper.xml的主要映射关系元素:
```xml
<!-- namespace指定Mapper接口的全限定名 -->
<mapper namespace="com.example.mapper.PersonMapper">
<!-- resultMap指定结果集映射 -->
<resultMap id="personResultMap" type="com.example.domain.Person">
<!-- id指定主键 -->
<id property="name" column="name"/>
<!-- result指定普通字段 -->
<result property="age" column="age"/>
<result property="address" column="address"/>
<result property="birthday" column="birthday"/>
</resultMap>
<!-- select指定查询语句 -->
<select id="selectByName" resultMap="personResultMap">
SELECT * FROM person WHERE name = #{name}
</select>
<!-- insert指定插入语句 -->
<insert id="insert" parameterType="com.example.domain.Person">
INSERT INTO person (name, age, address, birthday)
VALUES (#{name}, #{age}, #{address}, #{birthday})
</insert>
<!-- update指定更新语句 -->
<update id="update" parameterType="com.example.domain.Person">
UPDATE person SET age = #{age}, address = #{address}, birthday = #{birthday}
WHERE name = #{name}
</update>
<!-- delete指定删除语句 -->
<delete id="delete" parameterType="java.lang.String">
DELETE FROM person WHERE name = #{name}
</delete>
</mapper>
```
其中,resultMap元素定义了Java对象和数据库表之间的映射关系;select、insert、update、delete元素分别定义了对应的SQL语句,其中使用了#{}占位符来避免SQL注入攻击。这些元素在MyBatis框架中被解析并执行相应的操作。
阅读全文