Mapper映射文件(CRUD和主键id生成)
发布日期:2025-04-11 23:03:17 浏览次数:9 分类:精选文章

本文共 2522 字,大约阅读时间需要 8 分钟。

MyBatis入门指南:从基础到实践

MyBatis作为一种优秀的ORM框架,以其简洁高效的特点在开发者中享有极高的声誉。本文将从基础到实践,详细介绍MyBatis的核心概念、配置方法以及实际应用案例。

1. MyBatis的核心概念

MyBatis的核心在于其强大的SQL映射功能。通过XML文件定义数据库操作,用户可以显著减少传统JDBC手动编写的代码量。以下是MyBatis XML映射文件中的主要元素:

  • cache:对命名空间的缓存配置。
  • sql:可重用的SQL语句块。
  • select:查询语句。
  • insert:插入语句。
  • update:更新语句。
  • delete:删除语句。
  • resultMap:用于定义结果集映射的强大工具。
  • parameterMap:已废弃,建议使用参数类型和内联参数。

2. 全局映射文件配置

全局映射文件(mybatis.xml)通常包含以下内容:

  • 数据库环境配置

  • 映射接口实现类

    public interface UserMapper {
    User getUser(Integer id);
    int selectCount();
    int insertUser(User user);
    int deleteUser(Integer id);
    boolean updateUser(User user);
    List
    selectUserAll();
    }
  • SQL映射文件

  • 3. CRUD操作实现

    MyBatis的CRUD操作通过XML映射文件定义,实现起来极为简便。以下是常见操作的实现示例:

  • 查询操作

    User user = userMapper.getUser(2);
    int count = userMapper.selectCount();
    List
    userList = userMapper.selectUserAll();
  • 插入操作

    User user = new User("李四", "123456", 1, new Date());
    int insertResult = userMapper.insertUser(user);
  • 更新操作

    User user = new User();
    user.setId(3);
    user.setUsername("李33");
    user.setPazzword("li33qq");
    boolean updateResult = userMapper.updateUser(user);
  • 删除操作

    int deleteResult = userMapper.deleteUser(13);
  • 4. 主键生成的实践

    在实际项目中,主键的生成方式有多种,以下是常见的两种情况:

  • MySQL数据库

    • 配置useGeneratedKeys="true",并在模型类中定义keyProperty="id"
    • 示例:
      insert into t_user values(#{username}, #{pazzword}, #{state}, #{regDate})
  • Oracle数据库

    • 使用序列生成主键。
    • 建表时添加序列:
      CREATE TABLE t_user (ID NUMBER NOT NULL PRIMARY KEY, ...);
      CREATE SEQUENCE seq_userid START WITH 1 INCREMENT BY 1;
    • 在SQL映射文件中定义:
      select keyProperty="id" from dual;
      insert into t_user values(#{id}, #{username}, #{pazzword}, #{state}, #{regDate})
  • 5. 测试与事务管理

    在实际应用中,MyBatis支持事务管理,确保数据库操作的原子性和一致性。以下是测试类的示例:

    @Test
    public void test() throws IOException {
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
    SqlSession session = factory.openSession();
    UserMapper userMapper = session.getMapper(UserMapper.class);
    // 查询一条记录
    User user = userMapper.getUser(2);
    // 插入新记录
    User user2 = new User("李四", "123456", 1, new Date());
    int insertResult = userMapper.insertUser(user2);
    // 提交事务
    session.commit();
    }

    6. 注意事项

    • 缓存配置:根据实际需求合理配置缓存策略。
    • 数据库连接:确保全局配置文件中数据库连接信息正确无误。
    • 参数映射:正确设置参数类型,避免类型转换错误。
    • 主键生成:根据数据库类型选择合适的主键生成方式,配置好useGeneratedKeys和keyProperty。

    通过以上内容,读者可以对MyBatis有一个全面的了解,并在实际项目中灵活应用。

    上一篇:Mapper映射文件传参(数组/集合)与#{}和${} 区别
    下一篇:mapper.xml中mapper找不到问题

    发表评论

    最新留言

    网站不错 人气很旺了 加油
    [***.192.178.218]2025年05月07日 19时34分41秒