
mybatis简单案例源码详细【注释全面】——前期准备
发布日期:2021-05-14 13:09:55
浏览次数:12
分类:精选文章
本文共 3783 字,大约阅读时间需要 12 分钟。
mybatis 是一款功能强大的动态SQL框架,旨在简化数据库交互的复杂性,为开发者提供更高效的数据库操作体验。本文将从基础配置、数据库管理和常见操作实现入手,提供一个以MyBatis为核心的 CRUD(增删改查)案例分析。
数据库创建与准备
首先,我们创建了一个基于MySQL的数据库,命名为smbms
。数据库结构包括以下主要表:
smbms_role
:存储角色信息,主要字段有id
、roleCode
、roleName
、createdBy
、creationDate
等。smbms_user
:保存用户信息,包含id
、userCode
、userName
、userPassword
、gender
等字段,并与role
表通过外键关联。
以下是数据库创建SQL脚本:
CREATE DATABASE `smbms` /*!CREATE/tmp Tables if not exist*/ DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;USE `smbms`;DROP TABLE IF EXISTS `smbms_role`;CREATE TABLE `smbms_role` ( `id` bigint(20) AUTO_INCREMENT COMMENT '主键ID', `roleCode` varchar(15) COMMENT '角色编码', `roleName` varchar(15) COMMENT '角色名称', `createdBy` bigint(20) COMMENT '创建者', `creationDate` datetime COMMENT '创建时间', `modifyBy` bigint(20) COMMENT '修改者', `modifyDate` datetime COMMENT '修改时间', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;CREATE TABLE `smbms_user` ( `id` bigint(20) AUTO_INCREMENT COMMENT '主键ID', `userCode` varchar(15) COMMENT '用户编码', `userName` varchar(15) COMMENT '用户名称', `userPassword` varchar(15) COMMENT '用户密码', `gender` int(10) COMMENT '性别(1:女,2:男)', `birthday` date COMMENT '出生日期', `phone` varchar(15) COMMENT '手机', `address` varchar(30) COMMENT '地址', `userRole` int(10) COMMENT '用户角色(参考`role`表的`id`)', `createdBy` bigint(20) COMMENT '创建者(用户ID)', `creationDate` datetime COMMENT '创建时间', `modifyBy` bigint(20) COMMENT '修改者(用户ID)', `modifyDate` datetime COMMENT '修改时间', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
项目配置与依赖管理
在MyEclipse中新建项目时,我们需要包含以下关键jar包:
log4j-1.2.17.jar
:用于日志记录。mybatis-3.2.2.jar
:MyBatis核心依赖。mybatis-3.2.2-sources.jar
:MyBatis源代码依赖。mysql-connector-java-5.1.0-bin.jar
:MySQL连接器。
项目模块划分
项目遵循以下模块划分:
org.entity
:实体类(模型层)。org.dao
:接口与映射文件(DAO层)。org.util
:MyBatis工具处理类。database.properties
:数据库连接配置。log4j.properties
:日志配置文件。mybatis-config.xml
:MyBatis全局配置。org.test
:测试相关类。
核心配置文件解读
database.properties
:包含数据库连接信息。
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8user=rootpassword=yourpassword(注:请根据实际情况修改密码)
log4j.properties
:配置日志输出。
log4j.rootLogger=DEBUG, CONSOLE, filelog4j.logger_CN.SMBMS.Dao=debuglog4j.logger.com.ibatis=debuglog4j.logger.java.sql=debug
mybatis-config.xml
:整体MyBatis配置。
代码实体与DAO接口
实体类:定义数据表对应的Java对象。
package org.entity;public class User { private Integer id; private String userCode; private String userName; private String userPassword; private Integer gender; private Date birthday; private String phone; private String address; private Integer userRole; private Integer createdBy; private Date creationDate; private Integer modifyBy; private Date modifyDate; // Getter and Setter方法...}
DAO接口:定义数据库操作方法。
package org.dao;public interface UserDao { // 基本CRUD操作方法... public Integer insert(User user); public User queryById(Integer id); public void update(User user); public void delete(Integer id);}
映射文件:与数据库表对应,定义SQL映射。
测试与验证
为了确保系统功能正常,可以编写测试用例如下:
public class TestMain { public static void main(String[] args) { UserDao userDao = new UserDaoImpl(); // 测试插入操作 User user = new User(); user.setName("测试用户"); userDao.insert(user); // 其他测试操作... }}
总结与不足
以上内容提供了一个基础的MyBatis配置与使用案例,涵盖了核心CRUD操作和相关配置管理。未涉及高级功能如缓存、过滤器等,欢迎留言分享建议与改进意见!
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月09日 09时29分22秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
int main(int argc,char* argv[])详解
2019-03-09
【Android踩过的坑】7.Android Studio 点击启动项目时进入调试模式
2019-03-09
【Android小技巧】1.快速查看SDK对应的API Level
2019-03-09
【自学Flutter】4.1 Material Design字体图标的使用(icon)
2019-03-09
C++清空队列(queue)方法
2019-03-09
【换行符】什么时候用cin.get()吃掉输入流中的换行符
2019-03-09
【二叉树】已知后序与中序求先序
2019-03-09
数组范围的动态扩容
2019-03-09
解决Nginx 404 not found问题
2019-03-09
计算机网络之第三章笔记--数据链路层
2019-03-09
创建型模式之简单工厂模式实例及代码操作
2019-03-09
广东外语外贸大学第三届网络安全大赛Writeup
2019-03-09
跟着燕青学分布式事务控制技术方案
2019-03-09
Activiti视频分享
2019-03-09
VS2019 报错: LINK Error 无法找到 MSCOREE.lib的解决办法
2019-03-09
关于JS中的内存溢出与内存泄漏
2019-03-09
React 学习笔记 —— refs 属性的三种书写方式
2019-03-09
算法训练——字符串合并
2019-03-09
信息学奥赛一本通【题目索引 + 解答】
2019-03-09
什么时候需要重写HashCode()
2019-03-09