springboot不能缺少的mybatis

150 阅读1分钟

web免不了与数据库打交道 如何整合使用mybatis来管理mysql数据库呢? 首先运行sql代码创建一个表,当然也可以图形化界面创建

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `userName` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `passWord` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `realName` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

INSERT INTO `user` VALUES (1, 'admi', '123', '管理员');
INSERT INTO `user` VALUES (2, 'ayuba', 'ayubai', '管理员');

这样是为了测试是否连接成功

开始整合mybatis

springboot推荐yml配置

spring:
  datasource:
    username: hl
    password: Hl_hl123
    url: jdbc:mysql://192.168.10.71:3306/support?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver

使用自己的数据库账号密码测试一下能不能用图形界面连接上

首先引入三个依赖

		<!--jdbc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
         <!--mybatis-start-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

创建mapper包下的SystemMapper接口

@Mapper
public interface SystemMapper {

    @Select("${sql}")
    List<LinkedHashMap<String,Object>> getPublicItems(@Param(value = "sql") String sql);

    @Select("show tables;")
    List<LinkedHashMap<String,Object>> ShowTables();
}

然后创建service文件夹下面的SystemService类

@Service
public class SystemService {

    @Autowired
    private SystemMapper systemMapper;
    
    List<LinkedHashMap<String,Object>> ShowTables(){
        return systemMapper.ShowTables();
    }
}

然后再controller里面就能使用了

	@Autowired
	SystemMapper systemMapper;

注意mapper里面的@Mapper注解,如果不想每个mapper都重复的写,也可以在springboot启动类,上面添加包的名

@MapperScan(basePackages = "com.hello.mapper")