Mybatis基于XML的CRUD操作

目录

回顾MyBatis如何操作数据库

namespace

Mapper.xml属性值解析

增删改操作

万能的Map

模糊查询


回顾MyBatis如何操作数据库

我们先来回顾一下MyBatis操作数据库的一条线。

1.先在dao层写方法名 

public interface UserDao {
    List<User> getUserList();
}

2.在具体的xml文件中指定方法id和返回值类型等,写入sql语句

<!--namespace=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.lt.dao.UserDao">

    <!--select查询语句-->
    <select id="getUserList" resultType="com.lt.pojo.User">
       select * from mybatis.user
   </select>

</mapper>

 3.测试类中执行查询,有参则传参

        //第一步:获得SqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();


        //方式一:getMapper
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        List<User> userList = userDao.getUserList();

        for (User user : userList) {
            System.out.println(user);
        }

namespace

namespace的名字要和Dao接口的路径名一致

Mapper.xml属性值解析

  • id : 就是对应的是dao接口中的方法名;

  • resultType:Sql语句执行的返回值!

  • parameterType : 参数类型!

增删改操作

    <insert id="addUser" parameterType="com.kuang.pojo.User">
        insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd});
    </insert>
    <update id="updateUser" parameterType="com.kuang.pojo.User">
        update mybatis.user set name=#{name},pwd=#{pwd}  where id = #{id} ;
    </update>
    <delete id="deleteUser" parameterType="int">
        delete from mybatis.user where id = #{id};
    </delete>

注意,增删改操作均需要提交事务

你也可以在MybatisUtils工具类创建文件时设置自动提交事务

万能的Map

前面我们已经写了几条线,我们发现有两个问题

一是在sql中,id必须等于{id},name必须等于{name},

二是如果用自定义的实体类比如User作为参数对象传递,我们需要写出实体类的的每一个字段,但如果我们使用Map,想传什么参数就可以传什么参数

举例:使用map修改用户名

打开数据库查看修改结果

使用map可以自定义传递的参数个数,并且传递的字段名以实际调用时为主,可以和数据库表字段名不一致。

模糊查询

使用模糊查询时,不要在sql语句中使用百分号,这样写死sql的格式很不安全,会遭到SQL注入的攻击。

发布了568 篇原创文章 · 获赞 180 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/Delicious_Life/article/details/105632142