
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); ListselectUserAll();}
SQL映射文件:
3. CRUD操作实现
MyBatis的CRUD操作通过XML映射文件定义,实现起来极为简便。以下是常见操作的实现示例:
查询操作:
User user = userMapper.getUser(2);int count = userMapper.selectCount();ListuserList = 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支持事务管理,确保数据库操作的原子性和一致性。以下是测试类的示例:
@Testpublic 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有一个全面的了解,并在实际项目中灵活应用。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年05月07日 19时34分41秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Mac OS X 中的 virtualenv 问题
2025-04-11
Mac OS X下Sublime Text (V2.0.1)破解
2025-04-11
Mac OS X汇编语言常识
2025-04-11
Mac os 如何安装SVN
2025-04-11
Mac OS下错误The superclass “javax.servlet.http.HttpServlet“ was not found on the Java Build Path的解决方法
2025-04-11
Mac OS升级10 11以后cocoaPods不能使用的解决办法
2025-04-11
Mac os如何安装绿盾客户端
2025-04-11
mac os开发之简单动画
2025-04-11
mac php环境启动
2025-04-11
mac xmind 激活
2025-04-11
mac 下 android studio 的离线gradle极速配置方法
2025-04-11
Mac 下 Python+Selenium 自动上传西瓜视频
2025-04-11
mac 下 react Native ios环境搭建
2025-04-11
Mac 下使用sourcetree操作git教程
2025-04-11
mac 下如何建立vue-cli项目
2025-04-11
Mac 在命令行快速切换目录 mark
2025-04-11
mac 安装PIL
2025-04-11