SpringBoot——整合mybatis

19 篇文章 0 订阅
8 篇文章 0 订阅
  1. 首先导入依赖
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency>
  1. 配置数据库连接信息
    也可以使用yaml配置,这里使用默认的数据源
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8

# mybatis配置
#别名
mybatis.type-aliases-package=com.wcy.pojo
# mapper配置文件
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
  1. 在pojo包下创建实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Department {
    private Integer id;
    private String name;
}
@Data
@NoArgsConstructor
public class Employee {
    private Integer id;
    private String name;
    private String email;
    private Integer sex;
    private Department department;
    private Date birth;

    public Employee(Integer id, String name, String email, Integer sex, Department department) {
        this.id = id;
        this.name = name;
        this.email = email;
        this.sex = sex;
        this.department = department;
        this.birth = new Date();
    }
}
  1. 创建表
create table employee
(
    id         int auto_increment   primary key,
    name       char(255)     not null,
    email      char(255)     null,
    sex        int default 0 not null,
    department int           not null,
    birth      date          null,
    foreign key (department) references department (id)
);
create table department
(
    id   int auto_increment
        primary key,
    name char(255) null
);
  1. 编写Mapper接口
    一定要添加Mapper注解和Component注解
@Mapper
@Repository
public interface DepartmentMapper {

    int addDepartment(Department department);

    int deleteDepartment(Integer id);

    int updateDepartment(Department department);

    Department queryDepartment(Integer id);

    List<Department> queryAllDepartment();

}
@Mapper
@Repository
public interface EmployeeMapper {

    int addEmployee(Employee employee);

    int deleteEmployee(Integer id);

    int updateEmployee(Employee employee);

    Employee queryEmployee(Integer id);

    List<Employee> queryAllEmployee();
}
  1. 编写Mapper.xml文件
    在resource目录下创建mybatis/mapper目录,在其中编写,并且在配置文件中指定mapper.xml文件的位置
# mapper配置文件
mybatis.mapper-locations=classpath:mybatis/mapper/*.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.wcy.mapper.DepartmentMapper">

    <insert id="addDepartment" parameterType="Department">
        insert into department (`id`, `name`)
        values (#{id}, #{name});
    </insert>
    
    <delete id="deleteDepartment">
        delete
        from department
        where id=#{id};
    </delete>
    
    <update id="updateDepartment" parameterType="Department">
        update department
        set name=#{name} 
        where id=#{id};
    </update>
    
    <select id="queryDepartment" resultType="Department">
        select *
        from department
        where id=#{id};
    </select>
    
    <select id="queryAllDepartment" resultType="Department">
        select *
        from department;
    </select>
    
</mapper>
<?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.wcy.mapper.EmployeeMapper">

    <resultMap id="EmployeeMap" type="Employee">
        <id property="id" column="eid"/>
        <result property="name" column="ename"/>
        <result property="email" column="email"/>
        <result property="sex" column="sex"/>
        <result property="birth" column="birth"/>
        <!--多对一-->
        <association property="department" javaType="Department">
            <id property="id" column="did"/>
            <result property="name" column="dname"/>
        </association>
    </resultMap>

    <select id="queryAllEmployee" resultMap="EmployeeMap">
        select e.id eid, e.name ename, email, sex, d.name dname, birth, d.id did
        from employee e
                 join department d
                      on e.department = d.id
    </select>

    <select id="queryEmployee" resultMap="EmployeeMap">
        select e.id eid, e.name ename, email, sex, d.name dname, birth, d.id did
        from employee e
                 join department d
                      on e.department = d.id
        where e.id = #{id}
    </select>

    <insert id="addEmployee" parameterType="Employee">
        insert into employee (id, name, email, sex, department, birth)
        values (#{id}, #{name}, #{email}, #{sex}, #{department.id}, #{birth});
    </insert>

    <delete id="deleteEmployee">
        delete
        from employee
        where id = #{id};
    </delete>

    <update id="updateEmployee" parameterType="Employee">
        update employee
        set name=#{name},
            email=#{email},
            sex=#{sex},
            department=#{department.id},
            birth=#{birth}
        where id = #{id};
    </update>
</mapper>
  1. 测试,随便测一下
@Autowired
DepartmentMapper departmentMapper;

@Autowired
EmployeeMapper employeeMapper;

@Test
void test1() {
    for (Department department : departmentMapper.queryAllDepartment()) {
        System.out.println(department);
    }
}

@Test
void test2() {
    employeeMapper.addEmployee(new Employee(2, "eeee", "dafe@qq.com", 0, departmentMapper.queryDepartment(102)));
}

没啥问题,接下来就可以编写controller来使用了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot整合Mybatis的配置流程可以分为以下步骤: 1. 首先,需要在项目的pom.xml文件中添加相关的依赖,包括mybatis-spring-boot-starter和spring-boot-starter-jdbc等。这些依赖可以通过Maven或Gradle进行管理。 2. 接着,需要在应用程序的配置文件(一般是application.yml或application.properties)中进行相关配置。包括数据库连接信息、Mybatis的配置信息等。 3. 然后,创建实体类(entity)来映射数据库表。这些实体类通常使用注解来指定表名、字段名等信息。 4. 接着,创建数据访问对象(dao)接口,定义数据库操作的方法,使用Mybatis的注解或XML文件进行SQL语句的映射。 5. 接下来,创建服务层(service)和控制层(controller)来完成业务逻辑的处理和接口的调用。 6. 最后,在resources目录下创建mapper文件夹,编写对应的mapper接口和XML文件。XML文件中定义了具体的SQL语句,并与dao接口进行映射。 需要注意的是,以上步骤是整合Mybatis的一般配置流程,具体的实现方式可能会根据项目的需求和个人的习惯有所不同。可以参考和中提供的引用内容了解更多关于SpringBoot整合Mybatis的配置流程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot整合mybatis详细步骤](https://blog.csdn.net/kobe_IT/article/details/123548793)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [springBoot——SpringBoot 整合 Mybatis 流程](https://blog.csdn.net/DreamPossible20/article/details/128751096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值