当前位置: 首页 > news >正文

Mmybatis xml 连接数据库的方法

1. 添加依赖(Maven项目)

在 pom.xml 中添加 MyBatis 和数据库驱动的依赖(以 MySQL 为例):

<dependencies>
    <!-- MyBatis 核心库 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.13</version> <!-- 使用最新版本 -->
    </dependency>
    <!-- MySQL 驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.33</version>
    </dependency>
</dependencies>

2. 配置 MyBatis 核心文件

在 resources 目录下创建 mybatis-config.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/your_database?useSSL=false&amp;serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 指定 Mapper 文件的位置 -->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

3. 创建实体类

定义与数据库表对应的实体类,例如 User

public class User {
    private Integer id;
    private String name;
    private String email;
    // 省略构造方法、getter/setter 和 toString()
}

4. 创建 Mapper 接口 

public interface UserMapper {
    User selectUserById(int id);
}

5. 编写 Mapper XML 映射文件

在 resources/mapper 目录下创建 UserMapper.xml,编写 SQL 映射:

<?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="selectUserById" resultType="com.example.entity.User">
        SELECT * FROM user WHERE id = #{id}
    </select>
</mapper>

6. 使用 MyBatis 执行操作

通过 SqlSessionFactory 获取 SqlSession 并操作数据库:

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisDemo {
    public static void main(String[] args) {
        try {
            // 加载 MyBatis 配置文件
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            
            // 创建 SqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            
            // 获取 SqlSession
            try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
                // 获取 Mapper 接口实例
                UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
                
                // 执行查询
                User user = userMapper.selectUserById(1);
                System.out.println(user);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

关键注意事项

1.驱动和 URL 格式

  • MySQL 8+ 驱动类名为 com.mysql.cj.jdbc.Driver,URL 需指定时区(如 serverTimezone=UTC.

2. XML 文件位置

  • 确保 mybatis-config.xml 和 UserMapper.xml 放在项目的类路径下(如 src/main/resources)。

3.事务管理: 

  • 默认使用 JDBC 事务管理器,执行写操作后需调用 sqlSession.commit() 提交事务。

4.日志配置: 

  • 如需查看 SQL 日志,可在 mybatis-config.xml 中添加日志实现(如 SLF4J)。

常见问题排查 

  • 配置文件未找到:检查文件是否在 resources 目录下,且路径正确。

  • 驱动类异常:确认驱动依赖已正确添加,版本兼容。

  • Mapper 未绑定:检查 mybatis-config.xml 中 <mappers> 的配置是否指向正确的 XML 文件

  • 通过以上步骤,即可完成 MyBatis 与数据库的基本连接和操作。

 

http://www.dtcms.com/a/75144.html

相关文章:

  • PyTorch 深度学习实战(13):Proximal Policy Optimization (PPO) 算法
  • Oracle Data Guard(数据保护)详解
  • Python print() 打印多个变量时,可变对象和不可变对象的区别
  • 图论入门【数据结构基础】:什么是图?如何表示图?
  • Linux IP 配置
  • 完全托管的DeepSeek-R1模型正式登陆Amazon Bedrock:安全部署与使用指南
  • 【系统架构设计师】操作系统 - 文件管理 ② ( 位示图 | 空闲区域 管理 | 位号 | 字号 )
  • Flask 模版引擎的语法
  • C语言-自定义类型:联合和枚举
  • OpnenHarmony 开源鸿蒙北向开发——1.开发环境搭建(DevEco Studio 5.03)
  • 高主频GPU+RTX4090:AI生图性能优化超150%
  • GIT标签(Tag)操作
  • Cursor与Coze结合开发电影推荐系统:一次高效的技术实践
  • 数据结构——串、数组和广义表
  • golang开发支持onlyoffice的token功能
  • 自定义uniapp组件,以picker组件为例
  • SpringBoot第三站:配置嵌入式服务器使用外置的Servlet容器
  • SQL注入第7关
  • DNS主从服务器
  • 【第K小数——可持久化权值线段树】
  • IIS 服务器日志和性能监控
  • 蓝桥杯嵌入式赛道复习笔记2(按键控制LED灯,双击按键,单击按键,长按按键)
  • element-plus中Popconfirm气泡确认框组件的使用
  • 基于 Docker 和 Flask 构建高并发微服务架构
  • UnitTest框架管理测试用例——python自动化测试
  • Golang学习笔记_49——解释器模式
  • mysql-查看binlog日志
  • 基于SpringBoot+Vue的幼儿园管理系统+LW示例参考
  • GPU视频编解码:Jetson VPI+multimedia_api视频编解码入门(一)
  • Effective C++ 剖析(条款1~9)