最简单的mybatis项目搭建



MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 让我们来详细地了解如何搭建一个最简单的MyBatis项目: 1. **创建项目结构**: - 创建一个新的Maven项目,项目名可自定义,例如"MybatisDemo"。 - 设置好Maven的`pom.xml`文件,确保包含MyBatis的核心依赖: ```xml <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <!-- 数据库驱动,如MySQL --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency> </dependencies> ``` 2. **配置MyBatis**: - 创建`mybatis-config.xml`配置文件,配置数据源、事务管理器等: ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/example/mapper/UserMapper.xml"/> </mappers> </configuration> ``` 3. **创建数据库表**: - 假设我们有一个`users`表,用于存储用户信息: ``` CREATE TABLE `users` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(50) NOT NULL, `email` VARCHAR(100) ); ``` 4. **编写Mapper接口和XML文件**: - 创建`UserMapper.java`接口,定义SQL操作方法: ```java package com.example.mapper; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Update; import com.example.model.User; public interface UserMapper { @Select("SELECT * FROM users WHERE id = #{id}") User getUserById(int id); @Insert("INSERT INTO users(name, email) VALUES(#{name}, #{email})") int insertUser(User user); @Update("UPDATE users SET name=#{name}, email=#{email} WHERE id=#{id}") int updateUser(User user); @Delete("DELETE FROM users WHERE id=#{id}") int deleteUser(int id); } ``` - 创建对应的`UserMapper.xml`文件,放置SQL语句: ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper"> <select id="getUserById" resultType="com.example.model.User"> SELECT * FROM users WHERE id = #{id} </select> ... </mapper> ``` 5. **创建Model类**: - 创建`User.java`,作为与数据库交互的对象: ```java package com.example.model; public class User { private int id; private String name; private String email; // getters and setters } ``` 6. **配置Spring**: - 如果你打算使用Spring框架,还需要配置`applicationContext.xml`,注入MyBatis的SqlSessionFactory和MapperScannerConfigurer: ```xml <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="dataSource" ref="dataSource"/> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper" /> </bean> ``` 7. **编写测试代码**: - 在`main`方法或者JUnit测试中,使用Spring的ApplicationContext获取SqlSession,然后通过Mapper接口执行SQL操作。 通过以上步骤,你就成功搭建了一个最简单的MyBatis项目。你可以根据实际需求扩展这个项目,比如添加更多的Mapper接口和XML文件,处理更复杂的业务逻辑,或者集成Spring Boot以简化配置和启动流程。MyBatis的灵活性和易用性使其成为Java开发中常用的持久层框架。










































































- 1

- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于常用 CNN 神经网络实现超 30 万条手写数学符号识别
- (源码)基于PyTorch框架的深度学习图像处理与OCR系统.zip
- 计算理论与实践:ICTAC 2020会议精选
- (源码)基于Python的乐高NXT设备控制系统.zip
- (源码)基于Arduino平台的智能停车管理系统.zip
- (源码)基于Arduino的DIY电气安全组件项目.zip
- (源码)基于WebQQ和Python的运维监控报警系统.zip
- (源码)基于Go和Node.js的多模型聊天系统.zip
- 矿井建设工程网络计划技术研究.docx
- 计算机体系结构课后习题原版答案-张晨曦著.doc
- OPC技术的上位机与PLC之间的通信现代工业控制系统通常以PC机为上位机.doc
- 传媒业如何拥抱大数据.docx
- 第一章城市轨道交通信号设备.ppt
- (源码)基于Vitepress框架的前端学习笔记平台.zip
- 促进小学数学小组合作的深度学习策略.docx
- 计算机网络通信技术应用及发展研究.docx



- 1
- 2
前往页