springboot+mybatis的一些问题和解决方法的记录

最近想要学习一下java的web框架,听说springboot搭建起来要简单很多,且网上有很多教程.所以就学习一下如何搭建现在把碰到的问题写一下给自己做一下记录.

1.创建项目
我这里使用idea.再勾选maven依赖那个地方可以选择自己想要的依赖库.但是后面也可以在pom里面配,所以我直接就只选了springweb.

创建项目点下一步

勾选springweb依赖

之后下一步就完成了创建.

2.创建controller文件
现在在 src.main.java.你的项目创建controller文件夹和controller文件

创建controller文件

在controller里面写下一个hello测试方法

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class BlogController {
    @ResponseBody
    @RequestMapping(value = "/hello")
    public String hello() {
        return "Hello World";
    }
}

打开浏览器输入如下地址发现工程已经基本搭建完毕.


搭建完成

是不是很简单呢.

3.配置mybatis的相关内容
先去application里面配置数据库等相关的东西

spring:
    datasource:
        name: test
        url: jdbc:mysql://127.0.0.1:3306/task?useCharactorEncoding=utf-8&serverTimezone=UTC&useSSL=false
        username: root
        password: root123
        #driver-class-name: com.mysql.jdbc.Driver    #导致异常 Loading class `com.mysql.jdbc.Driver'. This is deprecated.    使用新驱动
        driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  type-aliases-package: com.ocean.pojo
  #config-location: classpath:mybatis/mybatis-config.xml  #获取映射包的配置文件
  mapper-locations: classpath:mapping/*Mapper.xml

之后再pom里面引入以下依赖,(我这里还使用generator生成代码所以会多一些依赖)

        
            mysql
            mysql-connector-java
            6.0.6
        

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.0
        
        
            org.projectlombok
            lombok
            1.16.22
        

        
            org.mybatis.generator
            mybatis-generator-core
            1.3.2
         

在bulid 的 plugin里面配置generator的相关配置


                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.2
                
                    ${basedir}/src/main/resources/generator/generatorConfig.xml
                    true
                    true
                
            

4.generator的相关配置

在resources下面添加generator文件夹和generatorConfig.xml文件.文件结构如图


文件结构

然后再xml中写入如下配置内容




    
    

    
        
            
            
            
        
        
        
        
        
            
        

        
        
            
            
        

        
        
            
        

        
        
            
        


        
        

记得把数据库驱动包放在你写的位置

然后edit configuration 添加配置

添加generator配置

此时运行generator 可以获取到生成的代码

image.png

注意!!!同一张表一定不要运行多次,因为mapper的映射文件中会生成多次的代码,导致报错,切记

文件结构如下


文件结构

5.在主程序里面添加扫描注解

打开类DemoApplication.java,这个是springboot的启动类。我们需要添加点东西:


添加注解 扫描mapper

到这里基本上搭建完成了.

6.完成service层来完整项目结构
现在在service层写接口来完整项目结构

UserService.java

package com.winter.service;
import com.winter.model.User;
import java.util.List;
/**
 * Created by Administrator on 2017/8/16.
 */
public interface UserService {
 int addUser(User user);
 List findAllUser(int pageNum, int pageSize);
}

UserServiceImpl.java

package com.winter.service.impl;
import com.github.pagehelper.PageHelper;
import com.winter.mapper.UserMapper;
import com.winter.model.User;
import com.winter.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * Created by Administrator on 2017/8/16.
 */
@Service(value = "userService")
public class UserServiceImpl implements UserService {
 @Autowired
 private UserMapper userMapper;//这里会报错,但是并不会影响
 @Override
 public int addUser(User user) {
 return userMapper.insertSelective(user);
 }
 /*
 * 这个方法中用到了我们开头配置依赖的分页插件pagehelper
 * 很简单,只需要在service层传入参数,然后将参数传递给一个插件的一个静态方法即可;
 * pageNum 开始页数
 * pageSize 每页显示的数据条数
 * */
 @Override
 public List findAllUser(int pageNum, int pageSize) {
 //将参数传给这个方法就可以实现物理分页了,非常简单。
 PageHelper.startPage(pageNum, pageSize);
 return userMapper.selectAllUser();
 }
}

如果没有service包和service下面的文件这里可以自己创建并写入

7.在controller下写入测试方法完成数据交互

再在TestController.java下面写入

@Controller
public class TestController {

    @Autowired
    private UserServiceImpl userServiceImpl;

    @ResponseBody
    @RequestMapping(value = "/sql")
    public String sqltest() {
        User userTest = userServiceImpl.selectByPrimaryKey(1);
        return userTest ;
    }
}

这样就会发现自己能拿到数据库的数据了.

到这里就全部完成了.

最后附上一个我看到的教程

https://www.jb51.net/article/146932.htm

你可能感兴趣的:(springboot+mybatis的一些问题和解决方法的记录)