TKMybatis
2024-08-28 10:36:29
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());
}
.
最新文章
- 在Linux下的中断方式读取按键驱动程序
- 【python】点分十进制ip与数字互转
- webservice MaxReceivedMessageSize :已超过传入消息(65536)的最大消息大小配额
- ubuntu14 谷歌输入法
- CSS水平垂直居中总结
- hibernate3与ehcache-2.8.3配合使用,在多个SessionFactory实例的情况下出现&ldquo;Another unnamed CacheManager already exists in the same VM&rdquo;问题
- ios 调用js方法(ios监听js方法执行)
- Android-关于屏幕适配的一些经验
- C#中获得汉字的首拼音(简化版)
- 【POJ2773】Happy 2006 欧几里德
- python 之路,Day11 (下)- sqlalchemy ORM
- Draw2d中的布局管理器Layout比较
- 实例化bean
- 关闭NetworkManager的作用
- 获取Windows服务下当前路径的方法
- 字符串匹配(二)----KMP算法
- Gym 101908C - Pizza Cutter - [树状数组]
- javascript 实现数据结构 - 队列
- flask 在模板中渲染表单
- 3.Liunx网络管理命令
热门文章
- 人均年薪50万以上,docker到底是什么?为什么这么火?
- 使用FOR XML PATH实现多行数据合并成一列
- KMP:补齐循环节
- 【uva 10600】ACM Contest and Blackout(图论--次小生成树 模版题)
- Codeforces301D. Yaroslav and Divisors
- 牛客编程巅峰赛S2第10场 - 钻石&;王者 C.牛牛的路径和 (位运算,dfs)
- Codeforces Round #171 (Div. 2) B. Books (模拟队列)
- Codeforces Round #501 (Div. 3) B. Obtaining the String (思维,字符串)
- js中for循环遍历的写法
- docker的FAQ