1 命名空间(Namespaces)
- 利用更长的全限定名来将不同的语句隔离开来,同时也实现了接口绑定
- 将命名空间置于合适的 Java 包命名空间之中,你的代码会变得更加整洁
2 select
<select id="getUser" resultType="com.hnui.pojo.User" parameterType="int">
select * from mybatis.users where uid = #{id};
</select>
-
id:namespaces绑定接口中的方法
-
resultType:返回值的类型(需要对应的实体类全路径)
-
parameterType:参数对应的类型
SQL语句中提取方法的参数可以使用#{参数名}来提取,当参数是一个类时,参数名可一是类中的属性
3 insert
<insert id="addUser" parameterType="com.hnui.pojo.User">
insert into mybatis.users (uid,uname,upaw) values (#{uid},#{uname},#{upaw});
</insert>
4 update
<update id="updateUser" parameterType="String">
update mybatis.users
set uname = #{uname}
where uid = 2;
</update>
5 delete
<delete id="delUser" parameterType="int"> delete from mybatis.users where uid = #{uid};</delete>
注意:增删改都需要提交事务(SQLSession.commit)
6 map
当参数过多时可以使用一个map对象作为参数,将需要传递的参数以键值对的形式存入map集合中
SQL可以用#{key}提取出对应的值
<select id="getUser2" resultType="com.hnui.pojo.User" parameterType="map">
select * from mybatis.users where uid = #{uid};
</select>
7 使用注解开发
同样可以使用注解的方式可以代替xml文件对数据库进行开发,注解开发可以减少代码量,使用方便
-
select注解
//查询所有用户信息 @Select("select * from mybatis.users") List<User> getUserList1();
-
insert注解
//使用注解添加一个用户对象 @Insert("insert into mybatis.users(uid,uname,upaw) values(#{uid},#{uname},#{paw})") void addUser2(User user);
-
update注解
//使用注解修改一个用户对象 @Update("update mybatis.users set uname = #{uname} where uid = 2") void updateUser2(String uname);
-
delete注解
<delete id="delUser" parameterType="int"> delete from mybatis.users where uid = #{uid}; </delete>
-
多个参数的情况
//使用注解修改指定ID用户对象 @Update("update mybatis.users set uname = #{uname} where uid = #{id}") void updateUser3(@Param("id") int id, @Param("uname") String uname);
有多个参数时可以使用@param来指定属性名
使用注解虽然方便简洁,但是不能处理比较复杂的SQL语句,所以实际开发中并不提倡使用