TKMybatis基本用法
TKMybatis与Mybatis-plus都是mybatis的扩展,有相同的地方,也有不同的地方。
1.导入坐标
<!--mybatis依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency> <!--tk.mybatis依赖--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency>
需要注意的是,这里mybatis的版本必须在2.0.0+,不然会报错。
2.创建实体类
package com.example.easypoidemoadmin.entity; import lombok.Data; import javax.persistence.Column; import javax.persistence.Table; /** * @author zhongyushi * @date 2020/6/26 0026 * @dec 描述 */ @Data @Table(name = "comp") public class Company { @Id @Column(name = "name") private String name; @Column(name = "logo") private String logo; @Column(name = "dec1") private String dec; public Company(String name,String logo,String dec){ this.name=name; this.logo=logo; this.dec=dec; } public Company(){} }
这里通过Table注解来指定数据库中的表名,默认和实体类相同,这里为了简单,就修改了表名。
3.创建dao接口类
package com.example.easypoidemoadmin.dao; import com.example.easypoidemoadmin.entity.Company; import tk.mybatis.mapper.common.Mapper; /** * @author zhongyushi * @date 2020/6/26 0026 * @dec 描述 */ @org.apache.ibatis.annotations.Mapper public interface CompanyDao extends Mapper<Company> { }
通过集成Mapper方法来使用TKMybatis,注意不能把包导错了。
4.启动类添加包扫描
import tk.mybatis.spring.annotation.MapperScan; @SpringBootApplication @MapperScan("com.example.easypoidemoadmin.dao")
这里包扫描的注解也是使用TKMybatis的。
5.controller接口测试
@Autowired private CompanyDao companyDao; @GetMapping("/test") public void test(){ List<Company> companies = companyDao.selectAll(); System.out.println(companies); }
这里只使用了一个方法,还有一些常用的方法,比如insertSelective,它会只把有值(不为NULL)的属性插入到数据库。其他的雷同,主要包含Selective即可。
6.常用注解
6.1主键自增
mysql:
mysql可以在创建表时指定主键自增,因此在插入数据时不给id的值即可。
oracle:
@KeySql(sql = "select attach.nextval from dual", order = ORDER.BEFORE)
其实就是先创建一个序列,然后在这里去使用序列的值。
创建序列的语句:
create sequence xk_SEQ increment by 1 start with 1 minvalue 1 maxvalue 9999999 order cache 20 cycle;
xk_SEQ是序列名称。
7.分页
分页使用插件PageHelper,然后实例化一个PageInfo对象,里面包含了查询的数据列表,数据总条数等等。
public Result getList(String name,String dec, Integer page, Integer limit) { Map<String,Object> map=new HashMap<>(); map.put("name",name); map.put("dec",dec); List<Company> list =comDao.selectBySelective(map); PageHelper.startPage(page, limit); PageInfo pageInfo = new PageInfo(list); return new Result(200, pageInfo.getList(), (int) pageInfo.getTotal(), pageInfo.getPages()); }
.
就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !