springBoot集合myBatis实现数据库交互

springMvc配置太复杂?试试boot啊
springBoot集合myBatis实现数据库交互_第1张图片

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

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


  <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>1.5.9.RELEASEversion>
        <relativePath/> 
    parent>

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

    <dependencies>
        
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starterartifactId>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>1.1.1version>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
        dependency>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>3.8.1version>
            <scope>testscope>
        dependency>
    dependencies>
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            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


<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映射文件

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

参数说明
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();

   } 
}

项目结构
springBoot集合myBatis实现数据库交互_第2张图片
项目结构很重要,业务代码必须放在启动类的子包下面,不然会扫不到,导致依赖注入失败,然后命名也很重要不然会产生冲突无情报错,我之前就因为把映射文件夹命名为mapper而产生冲突报错

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

springBoot集合myBatis实现数据库交互_第3张图片

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

springBoot集合myBatis实现数据库交互_第4张图片

你可能感兴趣的:(java)