tk.mybatis 简单的使用方法

本文档介绍了tk.mybatis的简单使用步骤,包括在pom.xml中导入依赖、创建PersonZhuJie类、定义PersonZhuJieMapper接口、构建service包的接口和工具类、配置resource包下的xml文件和properties文件,以及编写PersonController。通过这些步骤,你可以快速理解tk.mybatis的基本操作。

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

一 pom.xml 导入依赖 (这里低版本会报错)

<dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
</dependency>

二 书写PersonZhuJie类

package com.example.demo.bean;


import javax.persistence.*;
import javax.validation.constraints.NotNull;

@Table(name = "per")
public class PersonZhuJie {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @NotNull(message = "用户名不能为空")
    private String name;
    @NotNull(message = "密码不能为空")
    private String password;

    @Column(name = "age")
    private int age;
    @Column(name = "sex")
    private String sex;
    @Column(name = "address")
    public String address;

    public Integer getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }


}

三 mapper 包书写PersonZhuJieMapper接口

package com.example.demo.mapper;

import com.example.demo.bean.PersonZhuJie;
import tk.mybatis.mapper.common.Mapper;

public interface PersonZhuJieMapper extends Mapper<PersonZhuJie> {
}

四 service包书写接口和工具类

目录结构如下
在这里插入图片描述
BaseService 书写所有的接口在里面

package com.example.demo.service;

import java.util.List;

public interface BaseService<T> {
    List<T> selectAll(T record);
    List<T> selectAll();
}

PersonZhujieService 继承BaseService ,有利于接口的管理

package com.example.demo.service;

import com.example.demo.bean.PersonZhuJie;

import java.util.List;

public interface PersonZhujieService extends BaseService<PersonZhuJie>{

}

BaseImpl实现BaseService接口里面的方法,这里可以调用tk.mybatis里封装的sql语句。

package com.example.demo.service.impl;

import com.example.demo.service.BaseService;
import org.springframework.beans.factory.annotation.Autowired;
import tk.mybatis.mapper.common.Mapper;    //这里注意不要导错包

import java.util.List;

public abstract class BaseImpl<T> implements BaseService<T> {
    @Autowired
    protected Mapper<T> mapper;

    public Mapper<T> getMapper() {
        return mapper;
    }

    @Override
    public List<T> selectAll(T record) {
        return mapper.select(record);
    }

    @Override
    public List<T> selectAll() {
        return mapper.selectAll();
    }
}

PersonZhujieImpl 继承BaseImpl,有利于管理接口

package com.example.demo.service.impl;

import com.example.demo.bean.PersonZhuJie;
import com.example.demo.service.PersonZhujieService;
import org.springframework.stereotype.Service;

@Service
public  class PersonZhujieImpl extends BaseImpl<PersonZhuJie> implements PersonZhujieService{
}

五 resource 包下的目录

在这里插入图片描述
personzhujie.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.PersonZhuJieMapper">
    <resultMap id="id" type="com.example.demo.bean.PersonZhuJie">
        <id column="id" property="id" jdbcType="INTEGER"/>
        <result column="name" property="name" jdbcType="VARCHAR"/>
        <result column="age" property="age" jdbcType="VARCHAR"/>
        <result column="address" property="address" jdbcType="VARCHAR"/>
        <result column="password" property="password" jdbcType="VARCHAR"/>
        <result column="sex" property="sex" jdbcType="VARCHAR"/>
    </resultMap>
</mapper>

application.properties

server.port=6785
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/booksystem?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
server.tomcat.uri-encoding=UTF-8
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

#指定全局配置文件
mybatis.config= classpath:mybatis/mybatis-config
#指定sql文件
mybatis.mapperLocations=classpath:mybatis/mapper/*.xml
mybatis.typeAliasesPackage=com.lgp.SpringBoot.bean

最后一步就是程序入口,这里很重要

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//@MapperScan(value = "com.example.demo.mapper")
@tk.mybatis.spring.annotation.MapperScan("com.example.demo.mapper")   //指向你的mapper路径
@SpringBootApplication
public class DemoApplication {

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

}

sql语句

/*
 Navicat Premium Data Transfer

 Source Server         : root
 Source Server Type    : MySQL
 Source Server Version : 50559
 Source Host           : localhost:3306
 Source Schema         : booksystem

 Target Server Type    : MySQL
 Target Server Version : 50559
 File Encoding         : 65001

 Date: 25/07/2019 18:07:40
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for per
-- ----------------------------
DROP TABLE IF EXISTS `per`;
CREATE TABLE `per`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `age` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0',
  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of per
-- ----------------------------
INSERT INTO `per` VALUES (1, 'Ewan McGregor', '34', 'AM', '', '123');
INSERT INTO `per` VALUES (2, 'Saoirse Ronan', '18', 'AM', '', '123');
INSERT INTO `per` VALUES (3, 'Quentin Tarantino', '39', 'AM', '', '234');
INSERT INTO `per` VALUES (4, 'muyuan', '0', NULL, NULL, '456');

SET FOREIGN_KEY_CHECKS = 1;

六 PersonController

package com.example.demo.controller;

import com.example.demo.bean.Person;
import com.example.demo.bean.PersonZhuJie;
import com.example.demo.mapper.PersonMapper;
import com.example.demo.service.PersonZhujieService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import javax.security.sasl.SaslServer;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
public class PersonController {
    

    @Autowired
    PersonZhujieService personZhujieService;
   

    @GetMapping("/findAll")
    public Map<String, Object> findAll(){

        Map<String,Object> map = new HashMap<String, Object>();
        map.put("people",personZhujieService.selectAll());
        return map;
    }

}

结果

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值