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);}}
tkMapper 关联/多表查询说明:所有的关联/多表查询都可以由多个单表查询组成情景:基于以上的用户表,新添加一个订单表 orders,订单表中有订单信息,但是也有用户 id;
关联/多表查询实现方式:
方式一:多次使用单表查询,然后封装数据
方式二:自定义查询方法和 SQL
要求:在查询用户表的同时还要查询出用户的订单信息,这就涉及到了两张表的查询 。
具体业务要求:根据用户名查询用户的所有信息,包括订单信息 。
数据准备新建订单表 orders:
DROP TABLE IF EXISTS `orders`;CREATE TABLE `orders`(`order_id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) NOT NULL,`receiver_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,`receiver_mobile` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,`receiver_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,PRIMARY KEY (`order_id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Compact;INSERT INTO `orders` VALUES (1, 1, 'luis', '13344445555', '湖北武汉');
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2023全国统一中考时间 2023年全国中考时间是6月几号
- 七 SpringCloud - 微信支付
- 2023中秋国庆放假调休哪两天
- 2023中秋国庆怎么调休补班
- 2023中秋国庆加班怎么算加班费
- 2023年中秋国庆哪一天适合结婚
- 2023年10月8日补哪天的班
- 2023年10月28日开业好吗 日子吉利吗
- 中国的疆域
- 卧室里小飞虫哪来的