如果不想每次创建 dao 接口时都继承 tkMapper中的两个接口,可以自己写一个通用的接口模板,只需要让这个通用的接口模板继承 tkMapper中的两个接口,然后自己创建的 dao 接口只需要继承这个通用的接口模板即可!
但是,需要注意的是,这个通用的接口模板千万不能写在 dao 目录下!因为 dao 目录下的接口会被扫描到,有固定的功能用处;而我们自定义的通用接口模板只是为了继承,没有其他特殊功能!
使用示例:
1、可在 dao 目录同级创建 general 目录,在 general 目录下创建 GeneralDao 接口,并继承 tkMapper中的两个接口 。
package com.luis.general;import tk.mybatis.mapper.common.Mapper;import tk.mybatis.mapper.common.MySqlMapper;/** * @Author: Luis * @date: 2022/11/9 14:39 * @description: 自定义的通用接口模板 */public interface GeneralDao<T> extends Mapper<T>, MySqlMapper<T> {}
2、创建 dao 接口,继承 GeneralDao 即可!
public interface UserDao extends GeneralDao<User> {}
4. 测试添加 Junit 和 springboot test 两个测试依赖:
<!-- junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><!-- springboot test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency>
写测试类进行测试:
@RunWith(SpringRunner.class)@SpringBootTest(classes = SpringbootTkMapperDemoApplication.class) //启动类.classpublic class UserDaoTest {@Autowiredprivate UserDao userDao; //如果爆红线不用管(或Dao接口上添加@Repository注解)@Testpublic void test() {User user = new User();user.setUserName("mike");user.setUserPwd("123");user.setUserRealname("zhangsan");user.setUserImg("user/default.jpg");int i = userDao.insert(user);System.out.println("========> i = " + i);}}
tkMapper 常用方法之增删改
insert
:普通添加insertUseGeneratedKeys
:可返回自增 id 的添加updateByPrimaryKey
:根据主键修改deleteByPrimaryKey
:根据主键删除
@RunWith(SpringRunner.class)@SpringBootTest(classes = SpringbootTkMapperDemoApplication.class) //启动类.classpublic class UserDaoTest {@Autowiredprivate UserDao userDao; //如果爆红线不用管(或Dao接口上添加@Repository注解)@Testpublic void testInsert() {User user = new User();user.setUserName("juno4");user.setUserPwd("321");user.setUserRealname("lin");user.setUserImg("user/default.jpg");/*** insert: 添加(自增的id不会返回)*/int i = userDao.insert(user);System.out.println("========> i = " + i);System.out.println(user.getUserId()); //null}@Testpublic void testInsertUseGeneratedKeys() {User user = new User();user.setUserName("juno3");user.setUserPwd("321");user.setUserRealname("lin");user.setUserImg("user/default.jpg");/*** insertUseGeneratedKeys: 添加(自增的id可以返回)* 注意:*1. 数据库中主键字段需要设置为自增*2. 实体类中主键属性需要使用@Id注解指定;并且需要使用包装类型Integer,不要使用int*/int i = userDao.insertUseGeneratedKeys(user);System.out.println("========> i = " + i);System.out.println(user.getUserId()); //10}@Testpublic void testUpdateByPrimaryKey() {User user = new User();user.setUserId(10); //必须指定要修改的iduser.setUserName("juno new");user.setUserPwd("000");user.setUserRealname("lin new");user.setUserImg("new.jpg");/*** updateByPrimaryKey:根据主键修改*/int i = userDao.updateByPrimaryKey(user);System.out.println("========> i = " + i);System.out.println(user);}@Testpublic void testDeleteByPrimaryKey() {/*** deleteByPrimaryKey:根据主键删除*/int i = userDao.deleteByPrimaryKey(9);System.out.println("========> i = " + i);}}
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2023全国统一中考时间 2023年全国中考时间是6月几号
- 七 SpringCloud - 微信支付
- 2023中秋国庆放假调休哪两天
- 2023中秋国庆怎么调休补班
- 2023中秋国庆加班怎么算加班费
- 2023年中秋国庆哪一天适合结婚
- 2023年10月8日补哪天的班
- 2023年10月28日开业好吗 日子吉利吗
- 中国的疆域
- 卧室里小飞虫哪来的