spring boot 集成 mybatis 入门级学习
来源:互联网 发布:在线数据分析软件 编辑:程序博客网 时间:2024/05/16 23:57
与mybatis的初次会面
接触springboot也不过月余,由于工作需要,jdbctemplate冗杂的sql拼接已经不再符合接下来的深入学习。我迫切地意识到,倘若不用spring-data-jpa操纵数据库,那就用mybatis吧。作为当前最流行的持久层框架之一,不学习它的方法,相当于与时代脱轨了。首先,得知道集成mybatis的方法有哪些。其实大致也就两种:1、基于注解;2、基于xml配置文件。不管使用哪种方法,引入mybatis的pom依赖都是必不可少的步骤。
a.在pom文件中添加mybatis-spring-boot-starter依赖以及mysql数据库驱动依赖:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version></dependency>
b. 然后,在数据库中新建一张user表:
c.在application.properties中添加mysql数据源:
spring.datasource.url=jdbc:mysql://localhost:3306/testspring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.jdbc.Driver
使用基于注解的方式
1.表建好后,在domain文件夹下新建一个User实体类,实体类的属性与数据库属性名称与数据类型一一对应。
public class User { private Long id; private String name; private Integer age; //省略get和set方法}
2.在mapper文件夹下创建UserMapper接口:
import com.liqiaoqi.domain.User;import org.apache.ibatis.annotations.*;import org.springframework.stereotype.Component;@Mapper//该注解是解决IDEA mapper注入时显示could not autowire的问题@Component(value = "userMapper")public interface UserMapper { @Select("SELECT * FROM user WHERE name = #{name}") User findByName(@Param("name") String name); @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})") int insert(@Param("name") String name, @Param("age") Integer age);}
注意:@Mapper注解必须加上。如果Mapper接口很多,可以直接在Application类前添加@MapperScan("mapper所在包名")注解。@Component注解也可以不加,前提是在用@Autowired注解注入mapper时不提示“could not autowired”错误。
3.在service文件夹下添加UserService类:
@Servicepublic class UserService { @Autowired private UserMapper userMapper; public String findByName(){ userMapper.insert("pinky",20); User u = userMapper.findByName("pinky"); return u.getName(); }}
4.然后在controller文件夹下添加UserController类:
@RestControllerpublic class UserController { @Autowired private UserService userService; @RequestMapping("/test") public String findByName(){ return userService.findByName(); }}
然后运行项目访问路径查看即可。
使用xml配置文件的方式
与基于注解方法不同,使用xml配置文件方法时,sql语句不在mapper接口中定义,而是剥离出来,在xml文件中单独定义。这样做的好处是能够使得sql语句更为灵活也更利于维护。 但两种集成方法大致是一样的,主要有以下区别:
1.UserMapper中不写@Select注解。
import com.liqiaoqi.domain.User;import org.apache.ibatis.annotations.*;import org.springframework.stereotype.Component;@Mapper//该注解是解决IDEA mapper注入时显示could not autowire的问题@Component(value = "userMapper")public interface UserMapper { User findByName(@Param("name") String name); int insert(@Param("name") String name, @Param("age") Integer age);}
2.在application.properties文件中添加mybatis的配置信息:
mybatis.config-locations=classpath:mybatis/mybatis-config.xmlmybatis.mapper-locations=classpath:mybatis/mapper/*.xmlmybatis.typeAliasesPackage=com.liqiaoqi.domain
3.添加UserMapper.xml。实现UserMapper映射的方法(即sql语句)将全部定义在该文件中。
<?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.liqiaoqi.mapper.UserMapper" > <resultMap id="UserResultMap" type="com.liqiaoqi.domain.User"> <id property="id" column="id" /> <result property="name" column="name" /> <result property="age" column="age" /> </resultMap> <insert id="insert"> INSERT INTO user (name,age) VALUES (#{name},#{age}) </insert> <select id="findByName" resultType="com.liqiaoqi.domain.User" > SELECT * FROM user WHERE name = #{name} </select></mapper>
除以上三点与基于注解方法稍有不同外,其余部分全部不作改变。两种方法结果相同。
以下是项目的完整结构:
以上源码:示例代码
参考资料
- spring boot 学习(五)SpringBoot+MyBatis(XML)+Druid
- springboot(六):如何优雅的使用mybatis 作者:纯洁的微笑
- Springboot 整合 Mybatis 的完整 Web 案例 作者:泥瓦匠BySocket
阅读全文
0 0
- spring boot 集成 mybatis 入门级学习
- Spring Boot入门——集成Mybatis
- 搭建spring boot集成mybatis项目入门
- Spring Boot 集成MyBatis
- Spring Boot 集成Mybatis
- spring-boot集成mybatis
- Spring boot集成Mybatis
- Spring Boot 集成MyBatis
- spring boot集成mybatis
- Spring Boot集成MyBatis
- Spring Boot 集成MyBatis
- Spring Boot 集成MyBatis
- Spring Boot 集成MyBatis
- Spring Boot 集成MyBatis
- Spring Boot集成mybatis
- Spring Boot集成Mybatis
- spring boot 集成mybatis
- Spring Boot 集成MyBatis
- [转]ubuntu 安装bcompare
- 【OpenCV开发之二】图像白平衡part_one
- DPDK-IP分片和重组库
- 协作方法——黑板模型
- 插入排序算法简介
- spring boot 集成 mybatis 入门级学习
- Android Material Design常用控件学习笔记
- Android开发总结: eclipse缺少Android XML File项
- Android Fragment 完全解析(下)
- FragmentTransaction
- java提高篇(十二)-----代码块
- python wechat_sdk SSLError
- 在 ASP.NET Core 中执行租户服务
- NAMP安装(二) Nginx的配置文件信息