![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis
mybatis
搞钱自律
这个作者很懒,什么都没留下…
展开
-
mybatis单表注解配置
MyBatis提供了下面注解进行映射文件配置:@Select 查询数据注解@Insert 插入数据注解@Delete 删除数据注解@Update 修改数据注解@Options 选项配置@Results 手动映射配置。相当于xml的标签@Result : @results中的具体的某一列的映射信息配置准备复制《mybatis-crul(增删改查)》注意:使用注解,必须删除xxxMapper.xml文件,不然会报错第一步:修改mybatis-config.xml主配置文件 <原创 2020-08-04 18:00:28 · 98 阅读 · 0 评论 -
使用eclipse逆向mybatis代码
MyBatis的逆向工程能自动帮开发者生成数据库表对应的 pojo实体文件,自动生成映射文件自定生成表的各种(CRUD)的sql语句, 但是只能做单表操作,联合查询还得开发者自己动使用逆向工程得先在Eclipse安装逆向工程的插件第一步:eclipse安装mybatis逆向工程插件在线安装–搜索mybatis–然后一直安装。然后判断是否安装成功。有以下文件表示成功。没有则是失败。离线安装--下载插件包下载地址:https://github.com/mybatis/generator/原创 2020-08-06 18:05:37 · 251 阅读 · 0 评论 -
mybatis-crul(增删改查)
说明复制《MyBatis整合log4j日志框架》的代码,重命名为:mybatis-demo3-crul修改接口UserMapper.javapackage com.mybatis.mapper;import java.util.List;import com.mybatis.pojo.User;/* * 使用MyBatis的动态代理开发编写代码遵循四个原则 * 1.映射文件的namespace命名空间的值必须是对应接口的全限定名 2.映射文件的对应功能 id值必须等于映射接口中方法原创 2020-08-04 09:05:35 · 121 阅读 · 0 评论 -
mybatis typeAliases别名标签
在xxxxMapper.xml文件中User无论是作为参数还是作为查询返回数据类型,都需要写上全限定名,实际可以写上简单类名即可,但是需要配置别名MyBatis框架提供了两种别名机制,一种是自定义别名,一种是内置别名自定义别名单个的取别名第一步:修改mybatis-config.xml配置文件<?xml version="1.0" encoding="UTF-8" ?><!-- dtd约束 --><!DOCTYPE configuration PUBLIC原创 2020-08-04 16:47:47 · 178 阅读 · 0 评论 -
mybatis settings标签 mapUnderscoreToCamelCase属性
当查询结果集的列名和pojo的属性名不一样时,且他们有遵从驼峰命名法时,我们可以使用settings标签的 mapUnderscoreToCamelCase属性来解决这个映射问题。怎么算是遵守驼峰命名法如: 列名为: u_id,u_name,u_pwd pojo对应属性名为:uId,uName,uPwd ----------------------------------------------------------------------------原创 2020-08-04 16:34:20 · 973 阅读 · 0 评论 -
MyBatis整合log4j日志框架
说明log4j是一个日志输出框架,就是用于输出日志的。Mybatis的日志输出是通过Log4J输出的。主流框架大部分都是Log4j输出的。Spring框架也可以通过Log4j输出日志!!问题:既然Log4j功能类似System.out.println(),为什么使用log4j而不直接使用System.out.println()?答:Log4j提供了强大的日志输出的自定义功能。通过级别输出日志 (调试、信息、警告、错误、致命异常)可以指定输出到控制台,以及输出到文件。可以设置输出的日志格式原创 2020-08-03 15:17:31 · 496 阅读 · 0 评论 -
mybatis ResultMap手动映射
为什么要ResultMap标签MyBatis的查询结果集都是自动映射封装的,单行查询将数据库一条数据封装成对应的Java对象。多行查询,先将每一行封装成对象,再将每个对象添加到集合中,最后返回一个List集合对象。但是:必须保证查询结果集的字段名和pojo对象的属性名相同,否则无法自动封装问题: 如何解决查询结果集名称和pojo对象属性不同的映射封装?解决方案:使用手动映射封装 ResultMap标签可以使用mybatis的驼峰命名法-也必须遵循一定规则才行前提准备复制《myba原创 2020-08-04 16:35:38 · 454 阅读 · 0 评论 -
mybatis多表查询
多对一需求:查询指定编号员工的所有信息(包括部门信息)。1、N+1策略Many2OneMapper.javapackage com.mybatis.mapper;import com.mybatis.pojo.Employee;public interface Many2OneMapper { Employee selectByPrimaryKey(Integer id);}Many2OneMapper.xml<?xml version="1.0" encoding="UT原创 2020-08-06 17:01:14 · 105 阅读 · 0 评论 -
MyBatis方法多参数解决方案
Mybatis默认情况下是不支持传入多个参数的.只能传入一个参数.所谓的传入参数指定是Mybatis操作()的传入参数.方案1:将这些参数封装到一个对象里面(JavaBean/Map),再传入.方案2:给参数设置一个@Param注解支持,而且多参数的类型要统一问题:为什么不支持多个参数?因为Java语法1.7以前.是不能通过反射技术获得方法的参数名的.解决方案使用 @Param 参数注解UserMapper.javapackage com.mybatis.mapper;import原创 2020-08-05 10:00:22 · 408 阅读 · 0 评论 -
MyBatis-#{}和${}的区别
OGNL语言在MyBatis框架中支持两种 OGNL语法#{}${}第一种情况对比:添加数据#{}--UserMapper.java @Insert("insert into user(username,password,age) values(#{username},#{password},#{age})") @Options(useGeneratedKeys = true,keyColumn = "id",keyProperty = "id") int insertUserInfo(U原创 2020-08-05 11:08:54 · 167 阅读 · 0 评论 -
MyBatis-动态sql语句--基于xml配置
什么是动态SQL?就是相对与固定SQL。就是通过传入的参数不一样,可以组成不同结构的SQL语句. 这种根据参数的条件修改SQL结构的SQL语句,我们称为动态SQL语句.If 使用 <select id="selectByCondition" resultType="com.mybatis.pojo.User"> <!-- 错误写法 select * from user where name like '%#{name}%' or age = #{age} --> &原创 2020-08-05 16:29:03 · 305 阅读 · 0 评论 -
MyBatis整合Ehcache第三方缓存
学习地址:http://www.mybatis.org/ehcache-cache/第一步:下载ehcache下载地址:https://github.com/mybatis/ehcache-cache/releases第二步:将相关依赖包导入到lib文件夹中,并加入依赖第三步:Ehcache依赖 slfj 日志框架,必须要导入slfj的两个jar包第四步:修改mybatis-config.xml配置文件MyBatis开启二级缓存新版本已经默认支持开启二级缓存.可以不改<setti原创 2020-08-06 10:33:59 · 396 阅读 · 0 评论 -
MyBatis-动态SQL语句--基于注解方式
说明复制《mybatis-crul(增删改查)》代码。删除UserMapper.xml文件第一步:修改mybatis-config.xml<!-- 配置映射文件 --> <mappers> <mapper class="com.mybatis.mapper.UserMapper"/> </mappers>第二步:创建动态Sql类package com.mybatis.mapper;import java.util.List;i原创 2020-08-05 20:42:48 · 229 阅读 · 0 评论 -
MyBatis入门案例
Mybatis是什么Mybatis是一个持久层(DAO)框架。Web应用分为三层架构,分别是表现层,业务层,持久层。配置流程第一步:下载mybatis框架--使用浏览器打开以下链接https://github.com/mybatis/mybatis-3–找到releases关键字,然后点击如下图提示–进入到新的界面,选择你自己需要的版本依赖包,现在最新3.5.5。但我使用的是3.4.4版本。将框起来的点击下载。–解压下载文件–找到依赖包(jar包)第二步:创建一个普通java项原创 2020-08-03 11:40:40 · 121 阅读 · 0 评论 -
mybatis properties标签
一般开发会将单独的数据库连接字符串配置到一个独立的 以 .properties 的配置文件中Mybaits框架中配置文件 的 标签可以读取配置文件中的内容。并可以使用${}的语法设置给框架的数据库连接操作代码前提复制《MyBatis整合log4j日志框架》代码第一步:在classpath下面创建一个db.properties数据库连接配置文件mysql.driverClassName=com.mysql.jdbc.Drivermysql.url=jdbc:mysql://localhost:33原创 2020-08-04 15:23:33 · 512 阅读 · 0 评论 -
MyBatis缓存
在Mybatis里面,所谓的缓存就是将已经查询过的记录放在内存的缓冲区或文件上,这样如果再次查询,可以通过配置的策略,命中已经查询过的记录.从而提高查询的效率.缓存作用提高查询的效率.当我们访问京东网站等时,我们看到数据都是从数据库查出来,不断的从数据库中查的话,会出现一个问题,因为mysql数据库的数据是放在磁盘中的,从磁盘里查出来要做IO操作,IO操作是非常耗性能的。缓存图1、 数据放在数据库里,数据库的数据是放在磁盘里,磁盘里面查出来是要做IO操作, IO操作是非常耗性能的。2、 缓存数原创 2020-08-06 09:41:04 · 163 阅读 · 0 评论 -
mybatis useGeneratedKeys属性
没有使用useGeneratedKeys属性时--UserMapper.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- 配置映射namespace : 命名空间(通俗说法: 给当前映射文件的唯一标识:起一原创 2020-08-03 17:00:48 · 953 阅读 · 0 评论 -
数据库并发问题
什么是数据库并发问题?并发: 多个客户端同时同时访问数据库中某一条数据(秒杀)数据库可以拥有多个访问客户端,若多个客户端并发地访问数据库中相同的资源,如果没有采取必要的隔离措施,则会导致各种并发问题,破坏数据的完整性。这些并发问题归结为5类包括3类数据读问题(脏读,不可重复读,幻读)和2类数据更新问题(第一类丢失更新,第二类丢失更新)。 看图第一类丢失更新两个事务更新相同数据,如果一个事务提交,另一个事务回滚,第一个事务的更新会被回滚第二类丢失更新多个事务同时读取相同数据,并完成各自的事原创 2020-08-19 11:34:48 · 2382 阅读 · 0 评论 -
Spring和MyBatis继承--基于MapperFactoryBean类
第一步:创建java项目第二步:导入依赖包第三步:配置db.propertiesjdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/gj1jdbc.username=rootjdbc.password=123456jdbc.maxActive=10第四步:配置log4j.properties# Global logging configurationlog4j.rootLogg原创 2020-09-20 16:35:06 · 199 阅读 · 0 评论