springboot集成mybatis

springboot集成mybatis

springboot整合了各种框架,采用各种starter启动器来引入我们需要的东西,它采用约定优于配置的原则,极大了简化了配置,提高了开发效率。下面是springboot集成mybatis进行开发。
1.pom配置文件中引入如下依赖

        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
        

        
        
            mysql
            mysql-connector-java
            5.1.47
        

        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        

2.在springboot的核心配置properties文件中配置mybatis的相关信息

#编码设置,用于解决中文乱码问题
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
server.tomcat.uri-encoding=UTF-8

#页面映射配置
spring.mvc.view.prefix=/pages/
spring.mvc.view.suffix=.html

#数据库的相关配置
#配置数据源
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/book
spring.datasource.username=root
spring.datasource.password=123456

#修改端口号,也可不改,默认为8080
server.port=8088

#配置实体类所在的包
mybatis.type-aliases-package=com.jason.test.bean
#配置mapper文件路径
mybatis.mapper-locations=classpath*:com/jason/test/mapper/*.xml

3.编写mapper接口也就是dao层,需要在mapper接口类上添加@Mapper注解

@Mapper
public interface CheckUser {
    //登录验证用户信息
    int select (Map map);

    //查询用户信息
    List selectAll();

    //删除用户
    int del(int id);

    //用户修改
    int update(Map map);
}
注:    
@Mapper注解的的作用
1.为了把mapper这个DAO交给Spring管理
2.为了不再写mapper映射文件(用sql注解的方式)
3.为了给mapper接口自动生成一个实现类 自动根据一个添加@Mapper注解的接口生成一个实现类 

4.mapper接口所对应的mapper.xml文件(部分内容)





    
        
        
        
        
        
        
        
        
        
    

    
    

5.编写service层

@Service
public class CheckUserService {
    //service层调用dao层服务
    @Autowired(required = false) //表示如果无法自动注入时不报错,默认为true,当无法注入时报错
    private CheckUser checkUser;

    public int select(String username,String password){
        Map map=new HashMap();
        map.put("username",username);
        map.put("password",password);
        int user1=checkUser.select(map);
        return user1;
    }

    public List selectAll(){
        return checkUser.selectAll();
    }

    public int del(int id){
        return checkUser.del(id);
    }

    public int update(String username,String password,int id){
        Map map=new HashMap();
        map.put("username",username);
        map.put("password",password);
        map.put("id",id);
        return checkUser.update(map);
    }
}

6.编写controller 控制层

@Controller
public class TestController {
    //控制器调用service层服务层
    @Autowired
    private CheckUserService checkUserService;
    
    //项目启动跳到默认首页
    @RequestMapping(value = "/")
    public String pages(){
        System.out.println("进入项目默认首页");
        return "index/index";
    }
    //省略其他相关代码
}

7.启动类

@SpringBootApplication
@MapperScan(basePackages = "com.jason.test.dao") //扫描mapper接口包路径
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

}

通过以上7步,就完成了springboot中集成mybatis。

springboot集成mybatis时遇到的一些问题

1.当使用maven插件spring-boot:run 启动项目时会出现中文乱码。
这个时候需要在pom.xml中节点中加入

  
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                
                    true
                    
                    -Dfile.encoding=UTF-8
                
            
 

2.启动项目时报如下错误

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.jason.test.dao.CheckUser.select ,说明mapper.xml文件没有被编译成class文件。

这个时候需要在pom.xml中节点中加入

  
        
            
                src/main/java
                
                    **/*.xml
                
            
        

你可能感兴趣的:(springboot集成mybatis)