![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis
文章平均质量分 64
mybatis
L.2626
仅记录我的学习,注明出处按需转载
展开
-
Page<T> page = PageHelper.offsetPage();
PageHelper.offsetPage(start, limit)方法的作用是设置分页查询的起始位置和每页的记录数,并返回一个Page对象。在上面的示例中,PageHelper.offsetPage(start, limit)方法设置了起始位置和每页记录数,然后查询数据库获取数据,最后将查询结果封装到Page对象中,并输出分页相关信息。System.out.println("每页记录数:" + page.getPageSize());- limit: 每页的记录数,即一页显示多少条记录。原创 2024-06-04 09:42:56 · 435 阅读 · 0 评论 -
Spring集成MyBatis
Service的实现类需要添加@Service注解,由于在Spring配置文件中配置了自动扫描Service实现类所在的包,所以Spring在初始化时就会扫描到添加了@Service注解的类。根据在SpringMVC配置文件中的视图配置需要在WebContent/WEB-INF中新建jsp目录来存放所有的jsp文件。根据配置文件中配置的自动扫描接口的包名创建映射接口和XML映射文件。由于配置了自动扫描Mapper接口,所以在Service层可以使用@AutoWired注解自动注入Mapper。原创 2024-04-07 16:08:30 · 344 阅读 · 0 评论 -
MyBatis注解
SelectKey注解与前面的selectKey元素基本一致,其中before为false时功能等同于order="AFTER",before为true时功能等同于order="BEFORE"从MyBatis3.3.1开始,映射接口中的多个方法可以共用@Results注解,首先要在@Results注解中加上id属性。在映射接口中添加查询方法,通过@ResultMap注解共用@Results注解。@ResultMap中参数的值与@Results注解中id属性的值一致。@Select注解的参数为字符串类型。原创 2024-04-07 15:57:57 · 441 阅读 · 0 评论 -
MyBatis——配置优化和分页插件
分页查询时,查询方法返回的List对象实际上是Page<E>类型,如果需要取得分页信息,需要将结果强制类型转换为Page<E>类型。实现插件时,只需定义类实现MyBatis的Interceptor接口,并指定想要拦截的方法名即可。MyBatis中要想实现分页功能,需要使用limit子句实现分页的SQL语句,比较麻烦。$在解析时,会直接使用传入的参数作为字符串直接填充到SQL语句中,会导致SQL注入。在dataSource中采用${name}的形式引用属性文件中定义的参数。typeAliases(类型别名)原创 2024-04-07 14:46:03 · 437 阅读 · 0 评论 -
MyBatis缓存配置
对于每一次查询,都会根据查询的条件去本地缓存中查找是否在缓存中,如果在缓存中,就直接从缓存中取出,然后返回给用户;这个配置创建了一个 FIFO 缓存,并每隔 60 秒刷新,存储结果对象的 512 个引用,而且返回的对象被认为是只读的,因此在不同线程中的调用者之间修改它们会导致冲突 .可读写的缓存会返回缓存对象的拷贝,这种方式更安全,因此默认值是false。缓存会被视为是 read/write(可读/可写)的缓存,意味着对象检索不是共享的,而且可以安全地被调用者修改,而不干扰其他调用者或线程所做的潜在修改。原创 2024-04-07 13:49:12 · 875 阅读 · 0 评论 -
MyBatis——动态SQL
如果不想让where条件中出现“1=1”这种表达式时,就需要使用where元素 where元素的作用:如果该元素中有内容,就在生成SQL语句时加上where条件,如果该元素的内容以AND或者OR开头,就去除这两个单词。foreach实现动态更新,当参数是Map类型时,foreach元素的index属性值对应的不是索引值,而是Map中的key 实现通过指定的列名和对应的值去更新数据,在映射接口中添加如下方法。这里key作为列名,对应的值作为该列的值,通过foreach将需要更新的字段拼接在SQL语句中。原创 2024-04-03 16:15:56 · 832 阅读 · 0 评论 -
Mybatis——鉴别器映射
resultMap:当value值和column的值匹配时的结果映射,优先级高于resultType。discriminator元素可以有1个或者多个case子元素,case元素包含三个属性。resultType:当value值和column的值匹配时的结果类型。使用resultMap的extends属性来映射两个子类的属性。column:该属性用于设置需要进行鉴别比较值的列。value:该值用来匹配column指定字段的值。javaType:该属性用于指定列的类型。原创 2024-04-03 15:10:56 · 213 阅读 · 0 评论 -
Mybatis——一对多关联映射
第二种方式属于“关联的嵌套查询”,利用简单的SQL语句,通过多次查询得到想要的结果,也可以实现延迟加载效果。第一种方式属于“关联的嵌套结果映射“,即通过一次SQL查询根据表或指定的属性映射到不同的对象中。collection的ofType属性指定集合中元素的类型,必选项。resultMap元素中的extends属性可以实现结果映射的继承。实现根据用户id查询出所有用户信息,包括该用户的所有订单信息。集合的嵌套查询同样会执行额外的SQL查询。创建两个实体类和映射接口。原创 2024-04-02 13:36:16 · 947 阅读 · 0 评论 -
Mybatis——一对一映射
column:列名,将主查询中列的结果作为嵌套查询的参数,column=“{prop1=col1,prop2=col2}”,其中prop1和prop2将作为嵌套查询的参数。设置为延迟加载的对象,默认情况下,当调用该对象的equals、hashCode、toString、clone方法时,就会加载该对象的全部数据。最后一种方式属于“关联的嵌套查询”,利用简单的SQL语句,通过多次查询得到想要的结果,可实现延迟加载效果。嵌套查询会多执行SQL,当查询N条数据时,就会出现N+1次查询问题。原创 2024-04-02 13:23:58 · 700 阅读 · 0 评论 -
Mybatis——删除数据
在映射文件UserMapper.xml中添加如下代码。原创 2024-04-01 17:33:13 · 291 阅读 · 0 评论 -
Mybatis——更新数据
在映射器接口UserMapper中定义如下方法;原创 2024-04-01 17:29:26 · 244 阅读 · 0 评论 -
Mybatis——查询数据
当实体类的属性名与数据库表的字段名一一对应时,映射代码如下所示:select元素用于映射查询语句:UserMapper.xml。id属性:必填,是结果映射的唯一标识,与select元素中resultMap属性的值一致。表达式: user_name like"%"#{name}"%" #起到占位符的作用。id子元素:配置id对应的column(字段名)和property(属性名)type属性:必填,用于指定查询结果所映射到的Java对象类型。result子元素:配置普通结果对应的字段名和属性名。原创 2024-04-01 17:24:02 · 393 阅读 · 0 评论 -
Mybatis——增加数据
在mapper包下的UserMapper映射器接口中// 插入操作,int 是新增成功条数//////////原创 2024-04-01 16:30:17 · 477 阅读 · 0 评论 -
Mybatis动态代理机制
MyBatis在Mapper接口上使用了动态代理 代理机制是Java中常用的设计模式,分为静态代理和动态代理。静态代理:在程序编译时已经将接口、代理类和被代理类等确定下来动态代理:代理类在程序运行期间动态创建。原创 2024-03-30 17:04:35 · 423 阅读 · 0 评论 -
Mybatis——SqlSession的工作流程
key="net.onest.mapper.UserMapper.selectAllUsers" ,value为MappedStatement对象的形式维护到Configuration的一个Map类型的属性中。SqlSession根据Statement ID, 在MyBatis配置对象Configuration中获取到对应的MappedStatement对象 调用MyBatis执行器来执行具体的操作。MyBatis封装了对数据库的访问,把对数据库的会话和事务控制放到了SqlSession对象中。原创 2024-03-30 16:43:02 · 476 阅读 · 0 评论 -
MyBatis主要的类层次结构(Mybatis工具类)
Mapper接口的方法参数和映射文件中定义每个sql的parameterType类型相同 Mapper接口的方法返回的单个对象类型和映射文件中定义的每个sql的resultType类型相同。创建MyBatis的SQL映射XML文件,并且映射文件要同刚才创建的映射器接口在同一包中,与映射器接口命名也相同,所以映射文件名为UserMapper.xml。Mapper接口的方法名称和映射文件中定义的每个sql的id相同。Mapper接口的全限定名为映射文件的namespace的值。原创 2024-03-30 16:38:58 · 455 阅读 · 0 评论 -
Mybatis简述
MyBatis的核心思想是将SQL语句与Java代码分离,通过XML文件或注解提供SQL映射,实现数据操作与业务逻辑解耦。MyBatis可以使用 XML 或注解方式进行配置和映射,它是把实体类和SQL语句之间建立了映射关系,而Hibernate是在实体类和数据库表之间建立了映射关系。总的来说,MyBatis是一个功能强大、易于使用和灵活的持久层框架,可以帮助开发人员简化数据库访问的操作,并提高数据访问效率。1. 简单易用:MyBatis使用简单直观的SQL语句来操作数据库,无需编写复杂的JDBC代码。原创 2024-03-30 15:33:25 · 141 阅读 · 0 评论 -
Mybatis配置文件
XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)。映射文件的根元素为mapper,它的namespace属性为映射器接口的完全限定名。POOLED:这是JDBC连接对象的数据库连接池的实现,用来避免创建新的连接实例。driver – 是 JDBC 驱动的 Java 类的完全限定名。以下子元素的id属性值为接口中的某个方法名称。原创 2024-03-30 15:28:55 · 689 阅读 · 0 评论