springboot整合mybatis

本文介绍如何使用MyBatis-Spring-Boot-Starter快速搭建MyBatis与Spring Boot集成环境,并通过示例演示基本的数据库操作。

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

官方说明MyBatis-Spring-Boot-Starter will help you use MyBatis with Spring Boot 

其实就是myBatisspring boot这么火热,为了迎合springboot也开发出一套解决方案来凑凑热闹, mybatis-spring-boot-starter,这个jar包含了mybatis核心包以及mybatis自动配置类。


开发步骤

1:pom依赖

                <!-- mybatis-起步依赖 -->
         < dependency >
             < groupId >org.mybatis.spring.boot</ groupId >
             < artifactId >mybatis-spring-boot-starter</ artifactId >
             < version >1.3.1</ version >
         </ dependency >
         < dependency >
             < groupId >org.springframework.boot</ groupId >
             < artifactId >spring-boot-starter-web</ artifactId >
         </ dependency >
         
         
         <!-- druid 起步依赖 -->
         < dependency >
             < groupId >com.alibaba</ groupId >
             < artifactId >druid-spring-boot-starter</ artifactId >
             < version >1.1.6</ version >
         </ dependency >
         <!-- mysql数据库驱动 -->
         < dependency >
             < groupId >mysql</ groupId >
             < artifactId >mysql-connector-java</ artifactId >
             < scope >runtime</ scope >
         </ dependency >    
        


注意:当你做了pom依赖就立马启动工程,那么启动会报错,为什么呢?因为Mybatis-springboot-starter在自动化配置的时候,需要使用到datasource,但是容器中还没有datasource(因为你都没告诉springboot你的数据库信息)所以第二步就是配置数据库信息

2:配置数据库信息

#jdbc配置
spring.datasource.druid.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8
spring.datasource.druid.username=root
spring.datasource.druid.password=root
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver


3:功能开发

功能一:根据用户id查询用户信息

package  com.wendao.demo.pojo;
 
import  java.util.Date;
import  java.util.List;
 
public  class  User {
     private  Integer id;
 
     private  String username;
 
     private  Date birthday;
 
     private  String sex;
 
     private  String address;
 
     private  List<Orders> orders;
     
     
     
     
     public  List<Orders> getOrders() {
         return  orders;
     }
 
     public  void  setOrders(List<Orders> orders) {
         this .orders = orders;
     }
 
     public  Integer getId() {
         return  id;
     }
 
     public  void  setId(Integer id) {
         this .id = id;
     }
 
     public  String getUsername() {
         return  username;
     }
 
     public  void  setUsername(String username) {
         this .username = username ==  null  null  : username.trim();
     }
 
     public  Date getBirthday() {
         return  birthday;
     }
 
     public  void  setBirthday(Date birthday) {
         this .birthday = birthday;
     }
 
     public  String getSex() {
         return  sex;
     }
 
     public  void  setSex(String sex) {
         this .sex = sex ==  null  null  : sex.trim();
     }
 
     public  String getAddress() {
         return  address;
     }
 
     public  void  setAddress(String address) {
         this .address = address ==  null  null  : address.trim();
     }
}


mapper接口

package  com.wendao.demo.mapper;
import  org.apache.ibatis.annotations.Select;
 
import  com.wendao.demo.pojo.User;
 
import  scala.annotation.meta.param;
public  interface  UserMapper {
     
     @Select ( "select * from user where id=#{id}" )
     public  User getUserById( int  id);
}  


测试:

@RunWith (SpringRunner. class )
@SpringBootTest
public  class  Springboot03MybatisApplicationTests {
 
     @Autowired
     private  UserMapper userMapper;
     @Test
     public  void  contextLoads() {
         
         System.out.println(userMapper.getUserById( 22 ).getUsername());
     }
     
     
}

测试结果报错,报错的原因是容器中没有userMapper对象,因为你只写了接口但是没扫描,扫描方式两种

1:全局扫描,在引导类加上@MapperScan注解

2018-03-04_130243.png


2:逐个扫描

2018-03-04_130343.png


注意,如果数据库字段和属性名不一致,需手动映射

@Results ({  
     @Result (id= true ,property= "id" ,column= "id" ),  
     @Result (property= "name" ,column= "name1" ),  
     @Result (property= "age" ,column= "age1" )  
})




功能2:添加用户

@Insert ( "insert into user (username,sex)values(#{username},#{sex})" )
public  void  addUser( @Param ( "username" )String username, @Param ( "sex" ) char  sex);

功能3:添加用户

@Insert ( "insert into user (username,sex)values(#{username},#{sex})" )
public  void  addUser1(User user);

功能4:更新用户

@Update ( "update user set username=#{username} where id=#{id}" )
public  void  updateUser( @Param ( "username" )String username, @Param ( "id" ) int  id);

功能5:删除用户

@Delete ( "delete from user where id=#{id}" )
public  void  deleteById( int  id);

功能6:添加用户成功后返回主键

@Insert ( "insert into user (username,sex)values(#{username},#{sex})" )
@Options (useGeneratedKeys =  true , keyProperty =  "id" )
public  void  addUser3(User user);


注解只需了解基本单表增删改查即可,如果想进一步了解,请参考http://www.mybatis.org/mybatis-3/zh/java-api.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值