查询所有-FindAll
- Dao接口
/**
* @param:null
* @return: List<User>
* @description:获取所有用户
*/
List<User> findAll();
- IUserDao.xml
<!-- 配置查询所有操作 -->
<select id="findAll" resultType="domain.User">
select * from user
</select>
保存一个用户
- Dao接口
/**
* @param:User user
* @return: void
* @description:保存用户
*/
void saveUser( User user);
- IUserDao.xml
<!-- 保存一个用户 -->
<insert id="saveUser" parameterType="domain.User">
<!-- 插入操作之后获取插入数据的id -->
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
select last_insert_id();
</selectKey>
insert into user(username,address,sex,birthday) values(#{username},#{address},#{sex},#{birthday})
</insert>
保存时因为mybatis的事务提交默认是false,会导致数据库回滚。故可在保存后补充session.commit();
提交事务
获取插入id后会封入原User内
更新用户信息
- Dao接口
/**
* @param:User user
* @return: null
* @description:更新用户信息
*/
void updateUser(User user);
- IUserDao.xml
<!-- 更新用户信息-->
<update id="updateUser" parameterType="domain.User">
update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday} where id=#{id}
</update>
删除用户
- Dao接口
/**
* @param:Integer id
* @return: void
* @description:根据id删除用户
*/
void deleteUser(Integer id);
- IUserDao.xml
<!--根据id删除用户信息-->
<delete id="deleteUser" parameterType="Integer">
delete from user where id=#{id}
</delete>
模糊查询
- Dao接口
/**
* @param:string username
* @return:List<User>
* @description:根据名称模糊查询
*/
List<User> findByUsername(String username);
- IUserDao.xml
<!--根据名称模糊查询-->
<select id="findByUsername" parameterType="string" resultType="domain.User">
select * from user where username like #{username}
</select>
聚合函数
- Dao接口
/**
* 查询总记录条数
* @return
* */
int findTotal();
- IUserDao.xml
<!-- 查询总记录条数 -->
<select id="findTotal" resultType="int">
select count(*) from user;
</select>
解决实体类和数据库类名不匹配的两种方式
- 取别名,在sql语句层面解决. 数据库类名 as 实体类名
<!-- 配置查询所有操作 -->
<select id="findAll" resultType="domain.User">
select id as userId, username as userName, address ad userAddress, sex as userSex, birthday as userBirthday from user
</select>
- 配置对应关系
<!--配置对应关系-->
<resultMap id="userMap" type="domain.User">
<!--主键-->
<id property="userId" column="id"></id>
<!--非主键-->
<result property="userName" column="username"></result>
<result property="userAddress" column="address"></result>
<result property="userSex" column="sex"></result>
<result property="userBirthday" column="birthday"></result>
</resultMap>
<!-- 配置查询所有操作 -->
<select id="findAll" resultMap="userMap">
select * from user
</select>