使用mybati框架完成对数据库单表的增删改查操作。练习使用insert, update, delete, select, sgl, resultmap标签元素
时间: 2024-11-05 19:34:32 浏览: 19
基于MyBatis-Spring的通用单表增删改查DAO设计源码
在MyBatis中,通过XML映射文件结合SQL语句,可以方便地进行数据库的CRUD操作,包括对单表的增删改查。这里是一个基本的例子:
1. **插入(Insert)**:
```xml
<insert id="insertUser" parameterType="com.example.User">
INSERT INTO users (name, age) VALUES (#{name}, #{age})
</insert>
```
这里的`id`是唯一标识这个操作的方法名,`parameterType`指定了传入的实体类类型。
2. **更新(Update)**:
```xml
<update id="updateUser" parameterType="com.example.User">
UPDATE users SET age = #{age} WHERE id = #{id}
</update>
```
`update`元素用于修改数据,`#{id}`和`#{age}`是预编译的占位符,会被传入的对象属性值替换。
3. **删除(Delete)**:
```xml
<delete id="deleteUserById" parameterType="int">
DELETE FROM users WHERE id = #{id}
</delete>
```
`delete`标签用于删除指定条件的数据,这里的`id`同样是个参数。
4. **查询(Select)**:
```xml
<select id="getUserById" parameterType="int" resultType="com.example.User">
SELECT * FROM users WHERE id = #{id}
</select>
```
`select`用于获取数据,`resultType`指定了返回的结果类型。
5. **SGL(Single Generated Key)和ResultMap**:
SGL通常用于插入操作后获取自动生成的主键ID。例如,如果有自增长字段`id`,可以在`<insert>`标签后添加`keyProperty="id"`:
```xml
<insert id="insertUserWithSGL" parameterType="com.example.User" keyProperty="id">
...
</insert>
```
结果映射(ResultMap)则是在查询结果中按需定义哪些字段应该关联到对象的哪些属性,例如:
```xml
<resultMap id="userResultMap" type="com.example.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
</resultMap>
```
`<resultMap>`标签下的每个`property`对应于实体类的属性。
阅读全文