前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mapper怎么用_当前余额和通用余额

mapper怎么用_当前余额和通用余额

作者头像
全栈程序员站长
发布于 2022-11-08 07:13:32
发布于 2022-11-08 07:13:32
1.9K00
代码可运行
举报
运行总次数:0
代码可运行

通用Mapper之TkMapper的使用

1.通用Mapper概述

通用Mapper是一个可以实现任意MyBatis通用方法的框架,提供了常规的增删改查操作以及Example相关的单表操作。解决MyBatis使用中90%的基本操作,使用它可以很方便的进行开发,可以节省开发人员大量的时间。

在线官方文档:https://gitee.com/free/Mapper/wikis/Home

2.Spring整合TkMapper

1.引入依赖包

在mybatis依赖的基础上,添加通用Mapper的依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--通用Mapper-->
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper</artifactId>
    <version>4.1.5</version>
</dependency>

2.进行配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
替换MyBatis集成Spring的包扫描bean
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <!-- 配置扫描dao的包 -->
    <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.ybzy.dao"/>
    </bean>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <!--集成通用Mapper-->
    <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.ybzy.dao"/>
        <!--注册通用Mapper,该接口包含通用的增删改查-->
        <property name="properties">
            <prop key="mappers">tk.mybatis.mapper.common.Mapper</prop>
        </property>
    </bean>

3.测试通用Mapper

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface UserMapper extends Mapper<User> {
 
}

继承 tk.mybatis.mapper.common.Mapper 接口后,在接口上指定泛型类型 User。当继承了Mapper 接口后,此时就已经有了针对User的大量方法,如下:

自定义方法,手写SQL

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MapperTest { 

private ApplicationContext ac;
@Before
public void init(){ 

ac = new ClassPathXmlApplicationContext("classpath:spring.xml");
}
@Test
public void testSpring(){ 

UserMapper  userMapper = ac.getBean(UserMapper.class);
List<User> userList= userMapper.getAllUser();
for (User user : userList) { 

System.out.println("user = " + user);
}
}
}

3.通用Mapper的CURD

1.增加操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert,不忽略空值,空值插入时为nullINSERT INTO tb_user ( id,name,phone) VALUES( ?,?,? ) 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Test
public void testInsert(){ 

User user= new User();
brand.setName("小白");
userMapper.insert(user);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insertSelective,忽略空值,只插入非空的值 :
INSERT INTO tb_user ( name ) VALUES( ? )
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Test
public void testInsertSelective(){ 

User user = new User();
user.setName("小黑");
userMapper.insertSelective(user);
}

2.查询操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 根据主键查询:
SELECT id,name,phone FROM tb_user  WHERE id = ?
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
public void testSelectByPrimaryKey(){ 

long id = 2L;
User user = userMapper.selectByPrimaryKey(id);
System.out.println(user );
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
根据Example条件查询:
SELECT id,name,phone FROM tb_user WHERE ( id in ( ? , ? , ? , ? ) ) 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 @Test
public void testExample(){ 

Example example = new Example(User.class);
Example.Criteria criteria = example.createCriteria();
List<Long> ids = new ArrayList<Long>();
ids.add(1L);
ids.add(2L);
ids.add(3L);
//第二个参数是集合对象,这里对应的类型虽然是Object,但是要和数据库对应的类型保持一致
criteria.andIn("id",ids);
List<User> users = userMapper.selectByExample(example);
for (User user : users) { 

System.out.println(user);
}
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
根据JavaBean条件查询:
SELECT id,name,phone FROM tb_user WHERE id = ? AND name = ? 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
public void testSelect(){ 

User user= new User();
user.setId(5L);
user.setName("大白白");
//把User作为查询条件,会忽略空值
List<User> users= brandMapper.select(brand);
for (User user: users) { 

System.out.println(user);
}
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
查询单条记录:
SELECT id,name,phone FROM tb_user WHERE id = ? AND name = ? 
注意:符合该条件的数据必须<=1条,如果大于了1条数据,则会报错
TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  @Test
public void testSelectOne(){ 

User user = new User();
user.setId( 3L);
User userinfo = userMapper.selectOne(user);
System.out.println(userinfo);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
查询所有:
SELECT id,name,phone FROM tb_user
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Test
public void testSelectAll(){ 

//执行查询
List<User> users = userMapper.selectAll();
for (User user : users) { 

System.out.println(user);
}
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
统计查询:
SELECT COUNT(id) FROM tb_user
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  @Test
public void testSelectCount(){ 

//查询总记录数
int count = userMapper.selectCount(null);
System.out.println(count);
}

3.修改操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
根据主键修改数据,不忽略空值:
UPDATE tb_user SET name = ?,phone= ? WHERE id = ? 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Test
public void testUpdateByPrimaryKey(){ 

User user = new User();
user.setId(5L);
user.setName("Name");
int count = userMapper.updateByPrimaryKey(user);
System.out.println(count);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
根据主键修改数据,忽略空值:
UPDATE tb_user SET name = ? WHERE id = ? 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  @Test
public void testUpdateByPrimaryKeySelective(){ 

User user = new User();
user.setId(5L);
user.setName("Name");
int count = userMapper.updateByPrimaryKeySelective(user);
System.out.println(count);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
构造条件修改数据,不忽略空值:
UPDATE tb_user  SET name = ?,phone= ? WHERE ( phone= ? )
这里phone为空,SQL语句仍然会执行修改操作。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Test
public void testUpdateByExample(){ 

User user = new User();
user.setName("白白");
//创建Example对象
Example example = new Example(User.class);
//Criteria 用来构造约束条件
Example.Criteria criteria = example.createCriteria();
//第一个参数是User对应的属性,第二个参数是属性约束值 相当于 where phone='6666'
criteria.andEqualTo("phone","6666");
//条件修改数据
int count = userMapper.updateByExample(user,example);
System.out.println(count);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
构造条件修改数据,忽略空值:
UPDATE tb_user SET phone= ? WHERE ( name = ? ) 
这里name为空,SQL语句不会做出修改操作
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Test
public void testUpdateByExampleSelective(){ 

User user = new User();
user.setPhone("5555");
//创建Example对象
Example example = new Example(Brand.class);
//Criteria构造约束条件
Example.Criteria criteria = example.createCriteria();
/** * 1.User对应的属性 * * 2.属性约束值,相当于 where name='白白' */
criteria.andEqualTo("name","白白");
int count = userMapper.updateByExampleSelective(user,example);
System.out.println(count);
}

4.删除操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
根据主键删除:
DELETE FROM tb_user WHERE id = ? 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   @Test
public void testDeleteByPrimaryKey(){ 

Long id=1L;
userMapper.deleteByPrimaryKey(id);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Example条件删除:
DELETE FROM tb_user WHERE ( id between ? and ? ) 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Test
public void testDeleteByExample(){ 

Example example = new Example(User.class);
Example.Criteria criteria = example.createCriteria();
List<Long> ids = new ArrayList<Long>();
ids.add(2L);
ids.add(5L);
criteria.andIn("id",ids);
userMapper.deleteByExample(example);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JavaBean条件删除:
DELETE FROM tb_user WHERE name = ? 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Test
public void testDelete(){ 

User user = new User();
user.setName("白白");
userMapper.delete(user);
}

4.分页插件pagehelper

1.引入依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.0</version>
</dependency>

2.配置mybatis拦截器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <!-- SqlSessionFactoryBean -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!--添加插件,拦截器插件-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<!--数据库方言:选择数据库类型-->
<prop key="helperDialect">mysql</prop>
<!--分页合理化参数-->
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>

3.分页类PageInfo

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class PageInfo<T> implements Serializable { 

private static final long serialVersionUID = 1L;
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list;
//前一页
private int prePage;
//下一页
private int nextPage;
//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;
//导航条上的第一页
private int navigateFirstPage;
//导航条上的最后一页
private int navigateLastPage;
}

4.使用分页插件

分页插件配置好后,直接调用PageHelper的静态方法startPage即可实现分页,在调用startPage的方法时,该方法必须写在执行查询selectAll()前面,否则分页无效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Test
public void testSelectAll(){ 

//page 当前页 size 每页显示多少条
int page = 1,size=10;
//分页处理,只需要调用PageHelper.startPage静态方法即可
PageHelper.startPage(page ,size);
//查询
List<User> users = userMapper.selectAll();
for (User user : users) { 

System.out.println(user);
}
//获取分页信息
PageInfo<User> pageInfo = new PageInfo<User>(users);
System.out.println(pageInfo);
}

5.SpringBoot整合TkMapper

1.添加依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
		<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!--通用mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<!--pagehelper 分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

2.启动类添加@MapperScan

修改启动类的@MapperScan注解的包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tk.mybatis.spring.annotation.MapperScan;
@SpringBootApplication
@MapperScan("cn.ybzy.demo.dao")
public class DemoApplication { 

public static void main(String[] args) { 

SpringApplication.run(DemoApplication .class, args);
}
}

3.配置application.yml

配置MyBatis

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mybatis:
# type-aliases扫描路径
type-aliases-package: cn.ybzy.demo.model
# mapper xml实现扫描路径
mapper-locations: classpath:mapper/*.xml 

配置通用Mapper

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
通用Mapper配置参考: https://gitee.com/free/Mapper/wikis
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#mappers 多个接口时使用逗号隔开
mapper:
mappers:  cn.ybzy.demo.dao
not-empty: false
identity: MYSQL

配置PageHelper

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PageHelper项目地址: https://github.com/pagehelper/Mybatis-PageHelper
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pagehelper: 
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql

4.创建Mapper接口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tkMapper完成了对单表的通用操作的封装,封装在Mapper接口和MySqlMapper接口
要完成对单表的操作,只需自定义Mapper接口继承Mapper接口和MySqlMapper接口
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface UserMapper extends Mapper<User>, MySqlMapper<User> { 

}

5.测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RunWith(SpringRunner.class)
@SpringBootTest(classes = DemoApplication .class)
public class UserMapperTest { 

@Autowired
private UserMapper userMapper ;
@Test
public void test(){ 

User user = new User();
user.setUsername("小白");
user.setPassword("123");
int i = userMapper .insert(user);
System.out.println(i);
}
/** * 使用PageHelper进行分页 */
@Test
public void test1(){ 

//带条件分页
Example example = new Example(User.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("status",0);
//分页
int pageNum = 1;
int pageSize = 3;
int start = (pageNum-1)*pageSize;
RowBounds rowBounds = new RowBounds(start,pageSize);
List<User> userList= userMapper.selectByExampleAndRowBounds(example,rowBounds);
for (User user: userList) { 

System.out.println(user);
}
//查询总记录数(满足条件)
int i = userMapper.selectCountByExample(example);
System.out.println(i);
}
/** * 使用PageHelper进行分页 */
@Test
public void test2(){ 

PageHelper.startPage(1, 3);
List<User> list = userMapper.selectAll();
PageInfo<User> pageInfo = new PageInfo<User>(list);
List<User> result = pageInfo.getList();
for (User u : result) { 

System.out.println(u.toString());
}
}
/** * 关联查询 * 所有的关联查询都可以通过多个单表操作实现 * 查询用户同时查询订单 */
@Test
public void test3(){ 

//根据用户名查询用户
Example example = new Example(User.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("username","小白");
//先根据用户名查询用户信息
List<User> users = userMapper.selectByExample(example);
User user = users.get(0);
//再根据用户id到订单表查询订单
Example example1 = new Example(Order.class);
Example.Criteria criteria1 = example1.createCriteria();
criteria1.andEqualTo("userId",user.getUserId());
List<Orders> ordersList = userMapper.selectByExample(example1);
for (Order order: ordersList) { 

System.out.println(order);
}
System.out.println(user);
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185287.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月6日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
tkMapper整合「建议收藏」
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
3780
tkMapper整合「建议收藏」
springboot 2.0 springboottest 事物自动回滚,事物不自动回滚 @Transactional @Rollback[通俗易懂]
@Transactional //支持事物,@SpringBootTest 事物默认自动回滚 @Rollback // 事务自动回滚,不自动回滚@Rollback(false)
全栈程序员站长
2022/08/30
1.2K0
tkMapper插件的详细讲解
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
7510
tkMapper插件的详细讲解
tkmapper教程_trello怎么用
基于MyBatis提供了很多第三方插件,这些插件通常可以完成数据操作方法的封装(GeneralDAO)、数据库逆向工程工作(根据数据表生成实体类、生成映射文件)
全栈程序员站长
2022/11/08
5320
tkmapper教程_tkr和tka的区别
tkmapper 中有对单表通用操作的封装,封装到Mapper接口和MySqlMapper接口;对单表操作,只需要自定义DAO接口继承Mapper接口和MySqlMapper接口即可
全栈程序员站长
2022/11/10
3490
品优购(IDEA版)-第二天
目标1:运用AngularJS前端框架的常用指令 目标2:完成品牌管理的列表功能 目标3:完成品牌管理的分页列表功能 目标4:完成品牌管理的增加功能 目标5:完成品牌管理的修改功能 目标6:完成品牌管理的删除功能 目标7:完成品牌管理的条件查询功能 目标N:通用Mapper
编程之心
2020/08/12
8.6K0
品优购(IDEA版)-第二天
java用tkmapper分组查询_springboot2.x整合tkmapper的示例代码
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java用tkmapper分组查询_springboot2.x整合tkmapper的示例代码,希望能够帮助大家进步!!!
Java架构师必看
2022/10/04
5050
TkMapper(通用mapper)「建议收藏」
2、在Application类上加注解@MapScan(“com.sxykj.ymall.user.mapper”),这个注解依赖的包一定是tk开头的(tk.mybatis.spring.annotation.MapperScan;)。 3、映射类extends 通用Mapper 4、配置pojo类中的属性:
全栈程序员站长
2022/11/08
1.7K0
TkMapper(通用mapper)「建议收藏」
JAVAEE框架技术之9-myBatis高级查询技术文档
Mybatis作为一个ORM框架,也对sql的高级查询作了支持,下面我来学习mybatis中的一对一,一对多, 多对多
张哥编程
2024/12/13
1570
JAVAEE框架技术之9-myBatis高级查询技术文档
Mybatis 使用通用 mapper
  通用 Mapper 都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。极其方便的使用 MyBatis 单表的增删改查。支持单表操作,不支持通用的多表联合查询。
Demo_Null
2020/09/28
1.8K0
Mybatis 使用通用 mapper
芋道 Spring Boot MyBatis 入门(四)之 tkmybatis
摘要: 原创出处 http://www.iocoder.cn/Spring-Boot/MyBatis/ 「芋道源码」欢迎转载,保留摘要,谢谢!
芋道源码
2019/11/23
2K0
Data Access 之 MyBatis(八)- MyBatis 通用 Mapper(Part B)
输出主键为null,实际插入数据库后已经生成了自增主键,只是程序没有获取到插入成功后生成的主键。 要获取生成的主键Value需要在Porsche实体类与数据主主键对应的属性上增加@GeneratedValue(strategy = GenerationType.IDENTITY) 再次执行测试
RiemannHypothesis
2022/08/19
6370
Data Access 之 MyBatis(八)-  MyBatis  通用 Mapper(Part B)
Mybatis分页查询[通俗易懂]
分页查询作为数据库交互最常用的几种操作之一,在日常开发中是非常常见的,比如前段请求需要一个分页的列表,往往有两种方式,一是把所有的数据都给到前段,前段分页。另外一种方式是前端通过传分页信息给后端,后端查询时进行分页,并将相应页的数据返给前端。第一种方式如果数据规模比较小的情况下可以使用,如果数据量较大,对内存、网络传输的消耗都是非常大的,所以实际开发中一般很少使用。第二种方式是后端进行分页,后端分页的实现又可以分为逻辑分页和物理分页,逻辑分页就是在进行数据库查询时一次性将数据查出来,然后将相应页的数据挑出返回,物理分页就是通过在查询时就查询相应的页的数据(比如直接在mysql查询语句添加limit)。很明显逻辑分页跟第一种前端分页的方式有着相同的弊端。
全栈程序员站长
2022/09/05
3.4K0
【Note_01】通用 mapper
一、通用 mapper 简介 最初我们手写 Mybatis 的 mapper.xml 文件,然后使用 Mybatis-generator 逆向工程生成 mapper.xml 文件,再发展到使用通用 mapper,支持自动生成 EntityMapper、mapper.xml 文件。 二、入门 Demo 1.引入依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <versio
用户8250147
2021/02/04
4860
SpringBoot整合MVC Mybatis plus 最全thymeleaf讲解(保姆级讲解,带Java代码案例讲解)
默认的静态资源路径为: classpath:/META-INF/resources/ 或者 classpath:/resources/ 或者 classpath:/static/ 或者 classpath:/public 或者 只要静态资源放在这些目录中任何一个, SpringMVC 都会帮我们处理。 我们习惯会把静态资源放在 classpath:/static/ 目录下。
编程张无忌
2021/01/26
1.3K0
SpringBoot整合MVC Mybatis plus  最全thymeleaf讲解(保姆级讲解,带Java代码案例讲解)
通用Mapper和PageHelper插件 学习笔记
前言 通过Mapper可以极大的方便开发人员。可以随意的按照自己的需要选择通用,极其方便的使用MyBatis单表的CRUD,支持单表操作,不支持通用的多表联合查询。 配置Mapper和PageHelper Maven配置 <!-- mapper插件 --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId>
用户2032165
2018/06/05
2.5K0
tkMapper的使用-超详细
基于mybatis提供了很多第三方插件,这些插件通常可以完成数据操作方法的封装、数据库逆向工程工作(根据数据表生成实体类、映射文件)
全栈程序员站长
2022/11/08
1.5K0
tkMapper的使用-超详细
一起来学SpringBoot | 第八篇:通用Mapper与分页插件的集成
在一起来学SpringBoot | 第七篇:整合Mybatis一文中,我们介绍了 Mybatis这款优秀的框架,顺便提及了民间大神开发的两款插件( 通用Mapper、 PageHelper),从此告别简单CURD代码的编写....
battcn
2018/08/03
8420
Mybatis-Plus之mapper Crud
MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
roydonGuo
2022/11/02
3560
Mybatis-Plus之mapper Crud
❤️爆肝六万字最全总结Java数据库编程MyBatis(建议收藏)
链接:https://pan.baidu.com/s/1FIDi_9QiTuhb4x7pksGOUQ 提取码:kevf
Maynor
2021/10/09
3940
❤️爆肝六万字最全总结Java数据库编程MyBatis(建议收藏)
相关推荐
tkMapper整合「建议收藏」
更多 >
目录
  • 通用Mapper之TkMapper的使用
  • 1.通用Mapper概述
  • 2.Spring整合TkMapper
    • 1.引入依赖包
    • 2.进行配置
    • 3.测试通用Mapper
  • 3.通用Mapper的CURD
    • 1.增加操作
    • 2.查询操作
    • 3.修改操作
    • 4.删除操作
  • 4.分页插件pagehelper
    • 1.引入依赖
    • 2.配置mybatis拦截器
    • 3.分页类PageInfo
    • 4.使用分页插件
  • 5.SpringBoot整合TkMapper
    • 1.添加依赖
    • 2.启动类添加@MapperScan
    • 3.配置application.yml
    • 4.创建Mapper接口
    • 5.测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档