mapper

【MyBatis】映射文件示例

心不动则不痛 提交于 2020-03-02 19:53:59
本文以实例说明Mapper文件的标签的使用。 配置文件在 【MyBatis】配置文件示例 DAO文件 DepartmentMapper.java package com.atguigu.mybatis.dao; import com.atguigu.mybatis.bean.Department; public interface DepartmentMapper { public Department getDeptById(Integer id); public Department getDeptByIdPlus(Integer id); public Department getDeptByIdStep(Integer id); } EmployeeMapper.java package com.atguigu.mybatis.dao; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param; import com.atguigu.mybatis.bean.Employee; public interface EmployeeMapper { /

6、Spring Boot 2.x 集成 MyBatis

倖福魔咒の 提交于 2020-03-02 19:12:10
1.6 Spring Boot 2.x 集成 MyBatis 简介 详细介绍如何在Spring Boot中整合MyBatis,并通过注解方式实现映射。 完整源码: 1.6.1 创建 spring-boot-mybatis 项目 pom文件如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hw</groupId> <artifactId>spring-boot-mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-boot-mybatis</name> <description>Demo project for

springBoot 整合 mybatis+Oracle

丶灬走出姿态 提交于 2020-03-02 18:46:05
  现在比较流行的操作数据库操作层框架Mybatis,下面我们就来看看Springboot如何整合mybatis, 之前一直在用xml形式写sql,这次依然用xml的方式感觉这种还是比较灵活方便。   添加mybatis关键就是要引入mybatis-spring-boot-starter到pom文件中,如果你用MySQL,那就引入MySQL的pom文件,这里我用Oracle,淡然要引入Oracle的依赖了。添加完成mybatis和Oracle 在pom.xml 文件中的引入。 <!-- 链接Oracle数据库 oracle ojdbc不免费,需要手动引入jar包 --> <dependency> <groupId>oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- 集成mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId>

Mybatis(二)----框架入门

删除回忆录丶 提交于 2020-03-02 17:27:47
二、Mybatis框架入门 1、Mybatis的环境搭建 1、创建maven工程并导入坐标 2、创建实体类和dao的接口 3、创建Mybatis的主配置文件SqlMapConfig.xml 4、创建映射配置文件IUserDao.xml 注意事项 1、我们在工程中创建的 IUserDao.xml 和 IUserDao.java 接口,而Mybatis中把持久层的操作接口和映射文件叫做 Mapper ,所以 IUserDao=IUserMapper 2、目录的创建和包的创建方式是不一样的,在包结构,com.simon.dao是三级目录,在目录结构中com.simon.dao是一层结构。 3、mybatis的映射配置文件必须和dao接口的包结构相同。 4、映射配置文件的mapper标签的namespace属性的取值必须是dao接口的全限定类名。 5、映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名。 2、Mybatis的入门案列 读取配置文件 创建SqlSessionFactory工厂 创建SqlSession 创建Dao接口的代理对象 执行dao中的方法 释放资源 //导入配置文件 InputStream in = Resources . getResourceAsStream ( "SqlMapConfig.xml" ) ; /

SSM整合步骤

怎甘沉沦 提交于 2020-03-02 14:03:24
SSM- CRUD SSM : SpringMVC+Spring+Mybatis Create (新建) +Retrieve (查询) +Update(更新)+Delete(删除) 功能点 1:分页 2:数据校验:JQuery前端校验+JSR后端校验。 3:ajax 4:Rest风格URL:使用HTTP协议请求方式的动词,来表示对对资源的操作:GET(查询)、POST(新增)、PUT(修改)、DELETE(删除)。 技术点 1:基础框架-SSM (SpringMVC+Spring+MyBatis) 2:数据库-MySQL 5 3:前端框架-bootstrap快速搭建简洁美观的前端界面。 4:项目的依赖管理-Maven。 5:分页插件-pagehelper 6:逆向工程-MyBatis Generator 基础环境搭建 1:创建一个maven工程 2:引入项目依赖的jar包 spring springMVC Mybatis 数据库连接池,驱动包 其它包[ jstl , servlet-api , junit ] maven 配置文件增加配置 阿里云下载镜像 <!-- 中央仓库阿里云镜像下载--> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http:/

开发mybatis+jpa注意点

时光总嘲笑我的痴心妄想 提交于 2020-03-02 11:18:25
1.增删改查。 一、增操作,若是自动生成id,需要返回主键,注意若主键是Long类型的也请返回int类型,因为mybatis返回自动生成主键不支持Long。 mybatis ResultMap 应用 MyBatis在insert插入操作时返回主键ID的配置 很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键。 但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数。。。 接下来,我们看看MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中。 MySQL用法: <insert id="insert" parameterType="com.test.User" keyProperty="userId" useGeneratedKeys="true" > 上面配置中,“keyProperty”表示返回的id要保存到对象的那个属性中,“useGeneratedKeys”表示主键id为自增长模式。 MySQL中做以上配置就OK了,较为简单,不再赘述。 Oracle用法: <insert id="insert" parameterType="com.test.User"> <selectKey resultType=

MyBatis二级缓存

懵懂的女人 提交于 2020-03-02 10:13:55
一 MyBatis二级缓存原理 mybatis中的二级缓存是mapper级别的缓存,它是按照不同mapper有不同的namespace来区分的。也就是说,如果两个mapper的namespace相同,即使是两个mapper,那么这两个mapper中执行sql查询到的数据也将存在相同的二级缓存区域中。 二 MyBatis二级缓存使用 1开启二级缓存   由于mybaits的二级缓存是mapper范围级别,所以除了在SqlMapConfig.xml设置二级缓存的总开关外,还要在具体的mapper.xml中开启二级缓存。设置如下: [XML] 纯文本查看 复制代码 ? 1 2 3 < settings > < setting name = "cacheEnabled" value = "true" /> </ settings > 这是在SqlMapConfig.xml中设置的,还得在具体的mapper.xml中设置,如下: [XML] 纯文本查看 复制代码 ? 1 2 3 4 < mapper namespace = "com.itheima.dao.IUserDao" > <!--开启user支持二级缓存--> < cache /> </ mapper > 2 将需要缓存的类实现Serializable接口 [Java] 纯文本查看 复制代码 ? 1 2 3 4 5 6 7 8

mybatis 一级缓存 二级缓存

筅森魡賤 提交于 2020-03-01 12:29:27
1.一级缓存 一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个(内存区域)数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。 Mybatis默认开启一级缓存。 一级缓存的作用域是同一个SqlSession,在同一个sqlSession中两次执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取数据将不再从数据库查询,从而提高查询效率。当一个sqlSession结束后该sqlSession中的一级缓存也就不存在了。 @Test public void testCache1() throws Exception{ SqlSessionsqlSession = sqlSessionFactory.openSession();//创建代理对象 UserMapperuserMapper = sqlSession.getMapper(UserMapper.class); //下边查询使用一个SqlSession //第一次发起请求,查询id为1的用户 Useruser1 = userMapper.findUserById(1); System.out.println(user1); //

SpringBoot与MyBatis整合

和自甴很熟 提交于 2020-03-01 04:30:51
(1)首先使用spring Initializr快速创建一个项目,勾选web,mysql,jdbc,mybatis模块。 (2)在application.properties中: server.port=8082 #配置数据源相关参数 spring.datasource.url=jdbc:mysql://localhost:3306/egobuy?characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver #切换数据源类型为Druid spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #Druid连接池的特有属性 spring.datasource.maxActive=20 //最大约束 spring.datasource.minIdle=8// spring.datasource.initialSize=5//初始化数量 (3)将com....config.DataSourceConfig复制到包下: package com.szhhome.springbootmybatis

秒杀的几种方案(包括限制用户秒杀次数基于redis实现)

爷,独闯天下 提交于 2020-02-29 23:03:42
1. 效率最低(同步关键字,低并发可以,高并发不行,10000个线程,甚至十几秒钟才扣减一个库存) for update 也是悲观锁,会锁住当前行,影响性能 1.乐观锁机制(加version版本号) 3.用mybatis自带的行锁,同一时间只能有一个线程修改某一行数据 直接上代码: mapper代码: <?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"> <mapper namespace="com.example.mapper.ProductDao"> <!--FOR UPDATE 悲观锁没用--> <select id="getProductAmountById" resultType="com.example.entity.Product"> SELECT id ,amount,version FROM product WHERE id=1 FOR UPDATE; </select> <update id="subtracStock" > UPDATE product set amount = amount - #{buyAmount},