springBoot集合myBatis实现数据库交互

本文介绍了如何在SpringBoot项目中集成MyBatis进行数据库交互。首先创建一个Maven SpringBoot项目,然后在pom.xml中添加MyBatis依赖。接着配置application.yml文件,指定mybatis-config.xml的位置。在mybatis-config.xml中设置typeAliases和mappers。Mapper映射文件用于连接Java实体类和数据库对象,每个文件对应一个Dao接口。通过在namespace中绑定Dao接口,MyBatis能自动找到对应的SQL语句。最后,创建Dao接口,并在Controller中直接注入Dao接口进行测试。注意项目结构和命名规范,避免扫描不到或冲突的问题。

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

springMvc配置太复杂?试试boot啊
这里写图片描述

新建一个maven springboot 项目
我上一篇配的那个就挺好,

pom,在上一篇的基础上加上myBatis的配置


  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!-- 依赖 -->
        <!-- 核心模块,包括自动配置支持、日志和YAML -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- 测试模块,包括JUnit、Hamcrest、Mockito -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 引入Web模块 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!--mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

1 先在resources中配好配置文件application.yml

 server:
  port: 8010

 spring :
    datasource :
        url :你的数据库地址
        username :你的数据库用户名
        password : 你的数据库密码
        driver-class-name : com.mysql.jdbc.Driver

 #指定mybatis映射文件的地址
 mybatis :
  mapper-locations : classpath:mapper/*.xml

  config-location : classpath:mybatis-config.xml

3 在application.yml中指定的位置配好myBatis的配置文件mybatis-config.xml

<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>

        <typeAlias alias="Integer" type="java.lang.Integer" />
        <typeAlias alias="Long" type="java.lang.Long" />
        <typeAlias alias="HashMap" type="java.util.HashMap" />
        <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
        <typeAlias alias="ArrayList" type="java.util.ArrayList" />
        <typeAlias alias="LinkedList" type="java.util.LinkedList" />
        <typeAlias alias="pd" type= "spring.unit.PageData" />

    </typeAliases>

    <mappers>  

         <mapper resource="mybatis/userMapper.xml"/>


    </mappers> 
</configuration>

参数说明
typealias
用来为已经存在的类型重新定义名字的,通过命名,可以使代码变得更加清晰。

mappers
用来在mybatis初始化的时候,告诉mybatis需要引入哪些Mapper映射文件。
Mapper映射文件
是Java实体类与数据库对象之间的桥梁。在实际的使用过程中,一般一个Mapper文件对应一个数据库操作Dao接口。

4,在上面配置文件中指定的位置写好mapper映射文件

<mapper namespace="spring.dao.userDao" >
        <select id="selectUserInfo" resultType="pd">
            select
            *
            from
            userInfo
        </select>
</mapper> 

参数说明
namespace
在mybatis中,映射文件中的namespace是用于绑定Dao接口的,当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句

5 写namespace绑定的dao层接口(PageData是我自己写的一个map类,可以随意替换需要的数据类型)

public interface userDao {
    public PageData selectUserInfo();
}

6写好dao层接口后,本来是需要些service层,通过service调用dao层接口,再通过controller调用service,但这里为了测试方便直接用controller依赖注入dao层来调用接口

@RestController
@RequestMapping("/user")
public class userController {
    @Autowired
     userDao dao;
    @RequestMapping("/getInfo")
   public PageData getUserInfo(){

    return  dao.selectUserInfo();

   } 
}

项目结构
这里写图片描述
项目结构很重要,业务代码必须放在启动类的子包下面,不然会扫不到,导致依赖注入失败,然后命名也很重要不然会产生冲突无情报错,我之前就因为把映射文件夹命名为mapper而产生冲突报错

Result Maps collection does not contain value for sys.dao.userDao.Map

这里写图片描述

当然如果一切顺利很快就可以把数据库的数据查出来

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值