Mybatis框架 -- 环境搭建及配置

本文详细介绍Mybatis框架的基本概念,对比传统JDBC开发的不足之处,以及如何通过Mybatis简化数据库操作。从环境配置到具体实践,包括实体类编写、依赖添加、SQL映射配置等,帮助初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Mybatis概述

1. 传统JDBC开发缺点

  • 频繁创建数据库连接对象和释放,容易造成系统资源的浪费,从而影响系统的性能。在企业项目中,可以通过使用连接池解决这个问题,但是使用jdbc需要自己来实现连接池,而Mybatis内部提供连接池;

  • SQL语句的定义、参数设置、结果集处理存在硬编码,在企业项目中sql语句变化的可能性较大,一旦发生变化,需要修改java代码,系统需要重新编译,重新发布;

  • 结果集处理存在重复代码,每次都要遍历ResultSet,获取一行数据,封装为对象处理麻烦,Mybatis能够自动把行数据封装为java对象。

2. Mybatis简介
  Mybatis是一个持久层的框架,是对JDBC操作数据库的封装,使开发者只需要关注业务本身,不需要花费精力去处理加载驱动、创建数据库连接对象、创建statement语句对象、参数设置、结果集处理等一系列繁杂的过程代码。
  Mybatis通过xml或注解进行配置,将Java对象与sql语句中的参数自动映射生成最终执行的sql语句,并将sql语句执行结果自动映射成java对象,返回给业务层(service)应用。


二、Mybatis环境配置

1. 创建表User

CREATE TABLE USER (
  id INT(11) NOT NULL AUTO_INCREMENT,
  username VARCHAR(32) NOT NULL COMMENT '用户名称',
  birthday DATETIME DEFAULT NULL COMMENT '生日',
  sex CHAR(1) DEFAULT NULL COMMENT '性别',
  address VARCHAR(256) DEFAULT NULL COMMENT '地址',
  PRIMARY KEY  (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

2. 编写实体类

public class User{}

3. 添加依赖

<dependencies>
        <!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <!--数据库驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.30</version>
        </dependency>
        <!--日志包-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!--junit测试包-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

4. SqlMapConfig.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>
    <!--数据库环境的配置,default指定使用哪一种数据库环境-->
    <environments default="mysql">
        <!--id="mysql" 表示mysql数据库环境配置-->
        <environment id="mysql">
            <!--事务管理器-->
            <transactionManager type="JDBC"></transactionManager>
            <!--指定使用的连接池-->
            <dataSource type="pooled">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8"></property>
                <property name="username" value="root"></property>
                <property name="password" value="root"></property>
            </dataSource>
        </environment>
    </environments>
</configuration>

5. dao层接口

public interface UserDao {

    List<User> findAll();
}

6. dao接口映射(XML)

放在resources文件夹下,新建com/zz/dao/UserDao.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">
<!--当前的映射文件对应的是UserDao接口-->
<!--namespace 指定接口全名-->
<mapper namespace="com.zz.dao.UserDao">
    <!--id 对应接口方法名称-->
    <!--resultType 对应方法返回值类型,如果方法返回的是集合,只要指定集合中元素的类型即可。-->
    <select id="findAll" resultType="com.zz.entity.User">
        select * from user;
    </select>
</mapper>

7. SqlMapConfig.xml 加载接口的映射文件

<!-- 加载接口的映射文件 -->
<mappers>
    <!-- 必须放到类路径下 -->
    <mapper resource="com/zz/dao/UserDao.xml"></mapper>
</mappers>

三、总结

1. 主配置文件SqlMapConfig.xml要加载接口映射文件路径
主配置加载接口映射文件.png

2. 映射文件的namespace要对应接口路径

<mapper namespace="com.zz.dao.UserDao">

3. 接口方法名要对应mapper.xml id名
接口方法名要对应mapper.xml id名.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值