spring cloud mybatis+mysql实现对数据库数据的访问

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

现在搭建一个简单的demo,通过mybatis配置获取数据库数据。

项目结构:

pom.xml添加依赖,完整依赖如下:



   4.0.0
   
      org.springframework.boot
      spring-boot-starter-parent
      2.1.4.RELEASE
       
   
   com.sinosoft
   mybatis-generator
   0.0.1-SNAPSHOT
   mybatis-generator
   Demo project for Spring Boot

   
      1.8
   

   
      
         org.springframework.boot
         spring-boot-starter
      

      
         org.springframework.boot
         spring-boot-starter-web
      
      
      
      
         org.mybatis.spring.boot
         mybatis-spring-boot-starter
         1.3.2
      
     
       
         mysql
         mysql-connector-java
         8.0.15
      

      
         org.springframework.boot
         spring-boot-starter-test
         test
      
   

   
      
         
            org.springframework.boot
            spring-boot-maven-plugin
         
         
            org.mybatis.generator
            mybatis-generator-maven-plugin
            1.3.2
            
               
                  mysql
                  mysql-connector-java
                  8.0.15
               
               
                  org.mybatis.generator
                  mybatis-generator-core
                  1.3.2
               
            
            
               
                  Generate MyBatis Artifacts
                  package
                  
                     generate
                  
               
            
            
               
               true
               
               true
               
               src/main/resources/mybatis/generatorConfig.xml
            
         
      
   


application.properties配置文件如下:

server.port=8888

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/scott?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456
#映射到dao层(即mapper生成的位置)
mybatis.type-aliases-package=com.sinosoft.mybatisgenerator.dao
#mapper.xml文件生成位置
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

接下来重点查看自动生成所需的配置文件generatorConfig.xml的配置:




    
    

    
    
        
        
        
        
        

        

        
        
            
             
        

        
        
        

        
        
            
            
        

        
        
            
            
        

        
        
            
        

        
        
            
        
        
        
        

注:数据库链接地址账号密码,这里是读取application.properties配置文件的。如果你的项目配置文件用的是yml格式的,则如下写法是读取不到,需手动填写完整。

在这里会使用插件mybatis-generator根据表结构自动生成mybatis xml文件和mapper、实体类。插件如下:

右键–>点击Run mybatis-generator:generate就会自动生成如下图所示的文件


启始类中配置如下:

@SpringBootApplication
@MapperScan(basePackages = "com.sinosoft.mybatisgenerator.dao")
public class MybatisGeneratorApplication {

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

}    

添加标签@MapperScan(basePackages = “com.sinosoft.mybatisgenerator.dao”)
在启动得时候,会自动去扫描com.sinosoft.mybatisgenerator.dao路径下mapper接口,即dao层。

在自动生成mapper接口类中添加标签@Mapper

@Mapper
public interface AuthClientMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(AuthClient record);

    AuthClient selectByPrimaryKey(Integer id);

    List selectAll();

    int updateByPrimaryKey(AuthClient record);
}

再写一个service,定义mapper接口中的所有方法。

public interface AuthClientService {

    int deleteByPrimaryKey(Integer id);

    int insert(AuthClient record);

    AuthClient selectByPrimaryKey(Integer id);

    List selectAll();

    int updateByPrimaryKey(AuthClient record);

}

接着写一个实现类,实现service中所有的方法:

@Service
public class AuthClientServiceImpl implements AuthClientService {
    /*在实现类中必须引用mapper接口,通过接口的方法映射到mapper.xml文件
    中配置的方法来获取数据库表的数据
    */
    @Autowired
    private AuthClientMapper mapper;

    @Override
    public int deleteByPrimaryKey(Integer id) {
        return 0;
    }

    @Override
    public int insert(AuthClient record) {
        return 0;
    }

    @Override
    public AuthClient selectByPrimaryKey(Integer id) {
        return mapper.selectByPrimaryKey(id);
    }

    @Override
    public List selectAll() {
        return null;
    }

    @Override
    public int updateByPrimaryKey(AuthClient record) {
        return 0;
    }
}

注:注意添加标签@Service。在实现类中必须引用mapper接口,通过接口的方法映射到mapper.xml文件中配置的方法来获取数据库表的数据。

最后写一个controller,向外暴露一个访问接口,来实现对数据库表时间的读取:

@RestController
public class AuthClientControl {
    @Autowired
    private AuthClientServiceImpl mapper;

    @RequestMapping("/getAuthClient")
    public String getAuthClient(@RequestParam(value = "id") Integer id){
        AuthClient authClient = mapper.selectByPrimaryKey(id);
        return authClient.getSecret();
    }
}

最后运行项目,访问http://localhost:8888/getAuthClient?id=1
页面打印出所有数据:

至此 表明成功!

你可能感兴趣的:(spring,cloud,mybatis)