MyBatis的使用
Mybatis的使用
Mybatis的使用
使用Spring Boot集成MyBatis构建一个基础的Java Web项目通常涉及以下步骤:
步骤1:初始化Spring Boot项目
1.创建新的Spring Boot项目
选择Web作为基本依赖(spring-boot-starter-web
),同时添加MyBatis和对应的数据库驱动依赖,例如MySQL的连接器(mysql-connector-java
)以及MyBatis Spring Boot Starter(mybatis-spring-boot-starter
)。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<!-- 根据最新的版本号替换 -->
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- 根据最新的版本号替换 -->
<version>8.0.28</version>
<!-- 如果项目运行阶段不需要这个依赖,则可将其范围设为runtime -->
<scope>runtime</scope>
</dependency>
</dependencies>
步骤2:配置数据库连接
在application.properties
或application.yml
中配置数据库连接信息:
application.yml
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
datasource:
url: jdbc:mysql://127.0.0.1:3306/db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
username: 123
password: 123
#阿里druid连接池驱动配置信息
type: com.alibaba.druid.pool.DruidDataSource
#连接池的配置信息
#初始化大小,最小,最大
initialSize: 2
minIdle: 2
maxActive: 3
#配置获取连接等待超时的时间
maxWait: 6000
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 10
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
#配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
#打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
#配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,log4j
#通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
步骤3:配置MyBatis
MyBatis的许多配置在引入mybatis-spring-boot-starter
后会自动完成,但你可能还需要配置Mapper接口和XML映射文件的位置:
mybatis:
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: cn.hanyuanhun.**.entity
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus:
mapper-locations: classpath*:cn/hanyuanhun/projectname/mapper/xml/*.xml
#或者
#mapper-locations: classpath:mapper/*.xml
步骤4:创建实体类
根据数据库表结构创建Java实体类(POJO)。
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("db.users")
public class User {
private Long id;
private String username;
// getters and setters...
}
步骤5:创建Mapper接口与映射文件
- 创建一个Mapper接口,用于定义SQL查询方法:
public interface UserMapper {
UserDto selectUserById(Long id);
// 其他方法...
}
- 对应的
UserMapper.xml
映射文件,放置在配置的mapper-locations路径下:
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="selectUserById" resultType="com.example.demo.dto.UserDto">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 其他映射 -->
</mapper>
步骤6:配置Service与Controller
- 创建一个Service层,注入UserMapper并实现业务逻辑。
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public UserDto getUserById(Long id) {
return userMapper.selectUserById(id);
}
// ...
}
- 创建一个Controller层,注入UserService
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/")
public User getUser(@RequestParam("id") Long id) {
return userService.getUserById(id);
}
// ...
}
步骤7:启动和测试
- 最后,编写主启动类,使用
@SpringBootApplication
注解启动Spring Boot应用。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 启动应用后,可以通过HTTP客户端或浏览器访问配置好的API接口,测试数据库操作是否正常。
以上步骤概述了一个基础的Spring Boot集成MyBatis的开发流程,实际开发中还可能涉及到事务管理、分页查询、自定义类型处理器、二级缓存等相关配置和功能实现。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库