Spring Boot 中使用 tkMapper( 二 )

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);}}PS:其實還有根據自定義條件修改或刪除的方法(使用方法參考帶條件的查詢示例)
tkMapper 常用方法之查詢
  • selectAll:查所有
  • selectByPrimaryKey:根據主鍵查所有
  • selectByExample:根據條件查所有
  • selectByRowBounds:分頁查詢
  • selectByExampleAndRowBounds:帶條件的分頁查詢
  • selectCount:查總記錄數
  • selectCountByExample:根據條件查總記錄數
@RunWith(SpringRunner.class)@SpringBootTest(classes = SpringbootTkMapperDemoApplication.class) //啟動類.classpublic class UserDaoTest {@Autowiredprivate UserDao userDao; //如果爆紅線不用管(或Dao接口上添加@Repository注解)@Testpublic void testSelectAll() {/*** selectAll:查詢所有*/List<User> users = userDao.selectAll();for (User user : users) {System.out.println(user);}}@Testpublic void testSelectByPrimaryKey() {/*** selectByPrimaryKey:根據主鍵查詢*/User user = userDao.selectByPrimaryKey(10);System.out.println(user);}@Testpublic void testSelectByExample() {//封裝查詢條件Example example = new Example(User.class);Example.Criteria criteria = example.createCriteria();//條件信息(根據Criteria對象的各種方法進行設置)criteria.andEqualTo("userRealname", "lin");// criteria.orEqualTo("userPwd", "123");// criteria.andLike("userName", "%i%");/*** selectByPrimaryKey:根據條件查詢(PS:根據條件修改或刪除與此類似)*注意:需要設置查詢條件信息,并傳入條件對象*/List<User> users = userDao.selectByExample(example);for (User user : users) {System.out.println("========> " + user);}}@Testpublic void testSelectByRowBounds() {//分頁查詢信息int pageNum = 2; //第幾頁int pageSize = 3; //每頁顯示多少行int start = (pageNum - 1) * pageSize; //起始顯示的下標RowBounds rowBounds = new RowBounds(start, pageSize);/*** selectByRowBounds:查所有的分頁查詢*/List<User> users = userDao.selectByRowBounds(new User(), rowBounds);for (User user : users) {System.out.println("========> " + user);}/*** selectCount:查詢總記錄數*/int count = userDao.selectCount(new User());System.out.println("========> count = " + count);}@Testpublic void testSelectByExampleAndRowBounds() {//封裝查詢條件Example example = new Example(User.class);Example.Criteria criteria = example.createCriteria();criteria.andEqualTo("userRealname", "lin");//分頁查詢信息int pageNum = 2; //第幾頁int pageSize = 2; //每頁顯示多少行int start = (pageNum - 1) * pageSize; //起始顯示的下標RowBounds rowBounds = new RowBounds(start, pageSize);/*** selectByExampleAndRowBounds:帶條件的分頁查詢*/List<User> users = userDao.selectByExampleAndRowBounds(example, rowBounds);for (User user : users) {System.out.println("========> " + user);}/*** selectCountByExample:根據條件查詢總記錄數*/int count = userDao.selectCountByExample(example);System.out.println("========> count = " + count);}}

推薦閱讀