MyBatis框架学习Ⅳ

Talking is Cheap,Show Me the Code

回顾

通过实体类和实体类映射文件,已经实现了简单的查询,这种方式是用 SqlSession 实例来直接执行在User.xml文件中映射的 SQL 语句:
session.selectOne("com.yiibai.mybatis.models.UserMapper.getUserByID", 1);
后来这个基础上,创建接口,通过调用接口类来获取增删改查映射的SQL语句。

注解

但是相比之前采用的方式,还有更简单的方法,使用合理描述参数和SQL语句返回值的接口,通过注解来完成SQL语句的映射,不再需要实体类映射文件。代码更简单、更安全,不容易发生的字符串文字和转换的错误。
下面,使用注解对之前的增删该查进行改写

  • 接口类的改写
    对于不同的方法(增删改查),注意注解标签需要相对应
public interface IUser {
    @Insert("INSERT INTO USERS(name, dept, website, phone) VALUES (#{name}, #{dept}, #{website}, #{phone})")
    public void insertUser(User user);
    @Delete("DELETE FROM USERS WHERE id = #{id}")
    public void deleteUser(int userId);
    @Update("UPDATE USERS SET name = #{name} dept = #{dept}, website = #{website}, phone = #{phone} WHERE id = #{id}")
    public void updateUser(User user);
    @Select("SELECT * FROM USERS")
    public List<User> getUserList();
    @Select("SELECT * FROM USERS WHERE id = #{userId}")
    public User getUser(int id);
}
  • 获取session的方式改写
 reader = Resources.getResourceAsReader("config/Configure.xml");
 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
 sqlSessionFactory.getConfiguration().addMapper(IUser.class);
  • 工程配置文件的改写
    因为采用了注解的方式,所以配置文件中的实体类映射文件的声明需要被注释掉
    <!--&lt;!&ndash;实体类映射文件声明&ndash;&gt;-->
    <!--<mappers>-->
        <!--<mapper resource="com/bean/User.xml" />-->
    <!--</mappers>-->
  • 其他文件都不做更改,再次运行,运行结果与使用实体类映射文件相同的结果。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 Mybatis入门 1.1 单独使用jdbc编程问题总结 1.1.1 jdbc程序 上边使...
    哇哈哈E阅读 8,557评论 0 38
  • 研发信息管理系统 最近听了老罗的《长谈》,其中有一段,老罗说怀着T1的时候, 各种状况,n个元器件,各个环节均出现...
    豪哥的世界阅读 3,641评论 1 3
  • 嘿,宝贝儿… 我是妈妈。 嗯,这是想写给你看的文字呢。想着等到你独立阅读的时候,可以一字一句的读懂我轻描淡写的爱与...
    Sue_Zhang阅读 1,852评论 0 0
  • 美人何其多, 虎狼在侧。 君子独一人, 风雪载途。 2016.2.27
    罗曼集阅读 1,384评论 0 0
  • 这本书呢,本来是因为看着题目挺好的看了之后觉得内容也很有道理。 这本书呢,语言十分犀利,但很现实,...
    耿小闺儿阅读 4,097评论 0 1