tkMybatis使用

1、导包

 <!--TkMybatis-->
        <!--Mysql连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.17</version>
        </dependency> <!--Mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency> <!--durid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.16</version>
        </dependency> <!--tk-Mybatis-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>

2、在springboot的配置文件进行数据源配置

spring: 
 datasource: 
  url: jdbc:mysql://localhost:3316/test 
  username: root 
  password: 123456 
  driver-class-name: com.mysql.cj.jdbc.Driver

3、配置实体类和表的映射

@Table(name = "user") //数据库表名
public class User {

    @Id //表名该字段是主键,没有这个tkMybatis会把下面所有变量当成主键
    Integer id;

    @Column(name = "name") //如果变量名(username)和数据表的字段名(name)不一样,用该注解形成映射
    String username;

    Integer age;
。。。get/set方法。。。。
}

4、写接口继承Mapper<上面的实体类>

package com.User;

import tk.mybatis.mapper.common.Mapper;

public interface UserMapper extends Mapper<User> {
}

注意:Mapper是tk-mybatis里的通用Mapper

5、配置扫描包

@MapperScan(basePackages = "com.dao") //这个注解加到启动类上或者是配置类上 
public class Basicskill29Application {

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

}

6、测试

addCondition(“可以写sql语句的查询条件 例如age>18”)

andEqualTo("age", 10);//这里的age是对应User类里的变量名

package com.basicskill29;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import tk.mybatis.mapper.entity.Example;

import java.util.List;

@SpringBootTest
@RunWith(SpringRunner.class)
public class TkTest {

    @Autowired
    UserMapper userMapper;

    @Autowired
    UserConverter userConverter;

    @Test
    public void insert() {

        User user = new User();
        user.setAge(18);
//        user.setName("lisi");

//        int effectveRow = userMapper.insert(user);
//        System.out.println(effectveRow);

//        int insert = userMapper.insert(user);
//        System.out.println(insert);

        int i = userMapper.insertSelective(user);
        System.out.println(i);


    }

    @Test
    public void select() {
        // 根据主键查询(直接给主键值)
        //User user = userMapper.selectByPrimaryKey(5);


//        User u = new User();
//        u.setId(5);
//        User user = userMapper.selectByPrimaryKey(u);
//        System.out.println(user);
查询出的user对象的id不为null,tkMybatis已经自动把主键值填入对象中,(底层的xml里肯定用了useGeneratedKeys="true" keyProperty="id")





        // 根据条件查询
        Example example = new Example(User.class);

        // 创建具体的查询条件
        example.createCriteria()
                .andEqualTo("username", "aliang")
                //.andGreaterThan("age", 18)
                .andCondition("age > 18");//用sl语句的写法

        List<User> users = userMapper.selectByExample(example);
        System.out.println(users);
    }

    @Test
    public void update() {
        User user = new User();
        user.setId(8);
        user.setAge(20);
//        int i = userMapper.updateByPrimaryKey(user);
//        //int i1 = userMapper.updateByPrimaryKeySelective(user);
//        System.out.println(i);

        Example example = new Example(User.class);
        example.createCriteria().andEqualTo("age", 10);//这里的age是对应User类里的变量名
        int i1 = userMapper.updateByExampleSelective(user, example);
        System.out.println(i1);
    }

    @Test
    public void delete() {
        int i = userMapper.deleteByPrimaryKey(10);
        System.out.println(i);
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sure! 这里是一个简单的使用 TkMyBatis 的示例: 首先,你需要在你的项目中引入 TkMyBatis 的依赖,可以在 pom.xml 文件中添加以下内容: ```xml <dependency> <groupId>org.mybatis</groupId> <artifactId>tk-mybatis</artifactId> <version>版本号</version> </dependency> ``` 接下来,你需要创建一个实体类,用于映射数据库表的字段。例如,我们创建一个名为 User 的实体类: ```java public class User { private Long id; private String name; // 省略其他字段的 getter 和 setter 方法 } ``` 然后,你需要创建一个 Mapper 接口,用于定义数据库操作的方法。这个接口需要继承 `Mapper<T>`,其中 T 是你的实体类。例如,我们创建一个名为 UserMapper 的接口: ```java public interface UserMapper extends Mapper<User> { // 省略其他方法 } ``` 接下来,在你的配置文件中配置 MyBatisTkMyBatis。例如,在 application.properties 文件或 application.yml 文件中添加以下内容: ```yaml mybatis: mapper-locations: classpath:mapper/*.xml config-location: classpath:mybatis-config.xml ``` 在这个配置文件中,你需要指定 Mapper 接口和映射文件的位置。 然后,你可以创建一个名为 UserMapper.xml 的映射文件,在这个文件中定义具体的 SQL 查询语句。例如,我们可以编写一个简单的查询所有用户的 SQL: ```xml <mapper namespace="com.example.mapper.UserMapper"> <select id="selectAll" resultType="com.example.entity.User"> SELECT * FROM user </select> </mapper> ``` 最后,在你的代码中使用 UserMapper 接口来进行数据库操作。例如,你可以在你的 Service 类中注入 UserMapper 并调用其方法: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public List<User> getAllUsers() { return userMapper.selectAll(); } } ``` 这就是一个简单的 TkMyBatis 使用示例。当然,TkMyBatis 还提供了许多其他功能,比如条件查询、分页查询等,你可以根据具体需求进行使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值