码迷,mamicode.com
首页 > 编程语言 > 详细

记录一次springboot整合mybatis的xml方式

时间:2020-01-20 12:51:07      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:就是   ping   rop   service   mys   enc   ring   org   数据库   

java 1.8.0_231

因为刚开始学mybatis的时候图省事,看着xml这么多的配置文件就头大,然后就选择了使用注解的方法,但是后来做项目的时候,发现全注解的方式对于动态SQL语句的支持是真的一言难尽,于是这时候就想起了xml的好处,经过一番周折终于配置好了,这篇随笔就记录一下需要注意的地方

技术图片首先这个是项目目录,其中有一个result/Result是用于定义响应码code来负责前后端分离用的,这里先不做讨论

application.properties文件

mybatis.mapperLocations是用来指定读取数据xml文件的位置
mybatis.mapperLocations=classpath:mybatis/*.xml

spring.datasource.url=jdbc:mysql://localhost:3306/jihisea?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

 

 

pom文件的依赖

<dependencies>
        <!-- springboot web -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot</artifactId>
            <version>2.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
            <version>2.2.2.RELEASE</version>
            <scope>test</scope>
        </dependency>

    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

技术图片

 

User这一个类就是建立数据实体,注意数据格式要和数据库中一一对应,先写出

int id;

String username;

String password;

然后再右键Generate选择生成Getter Setter 和 toString()

技术图片创建mapper文件夹 UserMapper接口映射文件

技术图片记得在Application上创建MapperScan扫描mapper文件夹

 

 

 技术图片 UserService类中使用@Autowired注入UserMapper 然后再方法getusername中返回一个userMapper.getusername();

这样就可以在Controller中使用了

技术图片

 

 

 

 

 

 

 其中@Controller表示这是一个控制类  @Autowired就是将UserService注入到这个类中,@RequestMapping("/test") 就是表示请求映射 也就是localhost:8080/ 这个 " / "后面跟test 就使用该注解下的内容

@ResponseBody 表示响应实体,加了这个之后, 底下方法里返回的值就会直接显示在浏览器界面上,就比如我在下面的getusername里面定义了一个String类型的s作为userService中getusername的值,表达的是

<?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.jihisea.hexb.mapper.UserMapper" >
    <select id="getusername" resultType="String">
        select username from login where id = #{id}
    </select>
</mapper>

这个xml文件中查询id为2的 username值,返回的数据就赋予给了s  因为@ResponseBody的原因打开浏览器,

技术图片 返回hxb对应数据库中id为2的用户名,成功。

其中有一点需要注意的地方就是我发现如果在controller中技术图片

 

 

 

注入的是userMapper时也可以使用userMapper.getusername(2)来调用 ,感觉UserService就是进行了一遍二次包装。

记录一次springboot整合mybatis的xml方式

标签:就是   ping   rop   service   mys   enc   ring   org   数据库   

原文地址:https://www.cnblogs.com/Hexiaobin/p/12217274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!