MyBatis

Java 通过layui的分页插件laypage对数据进行分页

♀尐吖头ヾ 提交于 2020-05-07 19:31:30
最近要在SpringMVC+MyBatis项目的某个页面对数据进行分页,大致思路为在页面创建两个隐藏的输入框保存当前页面pageNum和每页显示数据的条数pageSize,每次分页时,修改对应的值即可,然后把pageNum和pageSize传到后台给pageHelper 1. MyBatis层(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"> <mapper namespace="com.zghky.dao.***"> <cache-ref namespace="com.zghky.dao.***"/> <resultMap id="getTestMap" type="Op"> <id column="id" property="id" /> <result column="geography_position" property="account.geographyPosition"/> <result column="op_type" property="opType"/> <result column="op_time"

spring security进阶 使用数据库中的账户和密码认证

跟風遠走 提交于 2020-05-07 19:11:35
spring security 使用数据库中的账户和密码认证 [TOC] 示例工程地址 一、原理分析 前台的登录请求发送到后端后会由spring security进行拦截,即controller层由框架自己提供。这样用户名和密码的认证就需要在service层完成,所以框架需要在service层获取到我们自己的数据库账号信息。 spring security 提供了一个接口 **UserDetailsService **来让用户提供账号和密码,其内容如下 public interface UserDetailsService { UserDetails loadUserByUsername(String username) throws UsernameNotFoundException; } 用户实现这个接口中的loadUserByUsername方法,通过数据库中查询的账号和密码构造一个UserDetails对象返回给spring security,然后框架自己完成认证操作。 其中UserDetails也是一个接口,spring security用它来封装当前进行认证的用户信息 public interface UserDetails extends Serializable { Collection<? extends GrantedAuthority>

spring boot 启动控制台循环打印 Logging initialized using &apos;class org.apache.ibatis.logging.stdout.StdOutImpl

亡梦爱人 提交于 2020-05-07 12:03:16
spring boot 启动控制台一直循环打印 Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl 如下图 出现该问题之前,改了mybatis的 mapper.xml 文件,新增了一个查询方法以及对应的 <select>标签。 怀疑是这个新增的标签以及sql 的问题,起初用 -- sql 以及 /* sql */ 注释掉标签内的sql ,重启springboot 发现问题依然存在,以为只是标签的问题,而不是sql 的问题。 各种检查标签<select>中的每个属性。后来发现是sql 的问题。 这三个指定参数类型的地方,类型不能用双引号括住。 来源: oschina 链接: https://my.oschina.net/iyinghui/blog/4268997

MyBatis-Plus(概述、快速入门、日志配置、主键生成策略、自动填充、CRUD、性能分析插件、条件构造器、代码生成器)

安稳与你 提交于 2020-05-07 11:57:51
文章目录 MyBatis-Plus (一)概述 (二)快速入门 1. 创建数据库和表 2. 创建SpringBoot项目导入项目依赖 3. 配置 application.properties 4. 主体测试代码 (三)日志输出 1. 配置 2. 结果 (四)基本操作测试 1. 数据插入测试&雪花算法 2. 主键生成策略 2.1 主键自增 2.2 注解TableId 3. 更新数据操作 4. 自动填充 5. 查询操作 6. 分页查询 7. 删除操作 8. 逻辑删除 9. 乐观锁操作 (五)性能分析插件 1. 配置 2. 测试 (六)条件构造器 1. isNotNull、ge、gt、lt、le 2. eq 3. between 4. 模糊查询 5. inSql 6. orderByAsc、orderByDesc (七)代码生成器 1. 新建一个SpringBoot项目 2. 编写代码生成器 3. 测试结果 MyBatis-Plus (一)概述 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生;是 MyBatis 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配,效率翻倍! 官网地址: https://mp.baomidou.com/ 特性: 无侵入、损耗小、强大的 CRUD 操作、支持

【spring-boot】如何使用apollo

*爱你&永不变心* 提交于 2020-05-07 11:57:32
文章背景 本文介绍如果在spring boot中接入apollo 官方文档: https://github.com/ctripcorp/apollo/wiki#%E4%B8%80%E6%99%AE%E9%80%9A%E5%BA%94%E7%94%A8%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97 使用官方的apollo 演示环境(Demo): 106.54.227.205 账号/密码:apollo/admin 添加配置 spring-boot中如何使用呢 pom.xml中添加配置 <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.1.0</version> </dependency>  配置文件中添加apollo地址 app: id: komiles apollo: meta: http://106.54.227.205:8080 bootstrap: enabled: true namespaces: application 启动类中添加代码 添加@EnableApolloConfig注解 package com.example.apollodemo; import com.ctrip

程序员都闯过多大的篓子?网友:差点把公司搞黄

喜欢而已 提交于 2020-05-07 00:04:46
对于互联网公司而言,程序员的重要性不言而喻,因为大部分互联网公司都是虚拟资产,比如各种各样的程序等,而这些都是程序员研发的成果,可谓牵一发而动全身。如果这些程序经过了错误的处理,很可能会酿成大祸甚至灭顶之灾,轻则损失收益,重则有可能将公司搞黄。有程序员圈子就开启了这个讨论话题:作为程序员,你都闯过多大的篓子? 对于这样的话题,各路程序员的答案有如下几种:订单分不出去,损失几千万的流水;损失900万条用户数据;测试环境内容推给用户;不小心把公司核心用户所有数据删除,1分钟后办公室电话被打爆,还好有备份;实验环境的一台服务器直接删掉root目录。 最狠的是这名网友的回复:差点把公司搞黄! 不要以为这些程序员是在开玩笑,这些都是有真实案例的。曾经有某个智能硬件公司,其程序员原本是打算在测试环境进行测试,但不小心上传到了正式的生产环境,导致大量用户数据错乱,传导到消费者便是设备工作状态失效,瞬间各路客户的投诉就像雪片般飞来;还有一个创业的互联网小公司,某名核心程序员受到了不公正的待遇被迫离职,在受够了领导的嘴脸之后,这名程序员精心策划了一条删库之路,直接导致该公司瘫痪破产,虽然公司知道这名核心程序员做了手脚,但无奈找不到证据,只能自食其果。所以,千万不要得罪程序员! 如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis

2020 java Mybatis 面试题及答案(最全版本持续更新)

南笙酒味 提交于 2020-05-06 20:24:47
前言 涵盖各大公司会问到的面试点,同时随着版本的升级,可能也会有一些面试题更新,也会同步保持更新,因为篇幅原因(其实是我懒,哈哈)所以列了一部分答案,所有的答案见下文,总共485页合计20个技术点,文末自取pdf。 1、什么是Mybatis? (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。 (2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 (3)通过xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java对象和 statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。 2、Mybaits的优点: (1)基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。 (2)与JDBC相比

源码分析——MyBatis核心接口SqlSession的实现原理

痴心易碎 提交于 2020-05-06 20:15:45
在上一篇文章中( 《MyBatis动态代理调用过程源码分析》 ),我们知道了MyBatis动态代理的核心是 MapperProxy ,在它内部封装了动态代理的调用逻辑,而我们也知道了在使用动态代理进行操作的时候实际上还是调用的 SqlSession 中的API去实现的,那么我们今天就来分析一波 SqlSession 的源码,由于 SqlSession 中方法很多,我们就已查询方法为例进行分析。 一. 核心接口SqlSession SqlSession 是MyBatis对外提供的核心接口,通过它可以执行数据库读写命令、获取映射器、管理事务等; DefaultSqlSession 是 SqlSession 接口的实现类,它是真正执行数据库操作的门面类,它内部封装着复杂的数据库操作逻辑; SqlSessionFactory 是 SqlSession 的工厂类,负责创建 DefaultSqlSession 实例(详见 DefaultSqlSessionFactory::openSession 方法); SqlSessionManager 是对 SqlSession 的一种加强,当用户调用CRUD方法时,会查询 ThreadLocal 中 当前线程是否已经创建 SqlSession ,如果没有创建则调用 SqlSessionFactory 创建 SqlSession 调用 对应的方法

【mybatis】mybatis动态order by 的问题, 注意 只需要把#{} 改成 ${} 即可

别说谁变了你拦得住时间么 提交于 2020-05-06 16:46:49
先说解决方案: 注意 只需要把#{} 改成 ${} 即可 再看 使用过程: Mapper.java List<IntegralGoods> findInUid(@Param("uidList") List<String> uidList,@Param("order") String order,@Param("orderType") String orderType); 首先,是这样的mybatis拼接的sql语句 < select id ="findInUid" parameterType ="com.pisen.cloud.luna.ms.jifen.base.domain.IntegralGoods" resultMap ="baseResBean" > select a.id as 'id', a.uid as 'uid', a.create_date as 'createDate', a.update_date as 'updateDate', a.update_id as 'updateId', a.create_id as 'createId', a.brand_uid as 'brandUid', a.tid as 'tid', a.stock as 'stock', a.name as 'name', a.goods_code as 'goodsCode', a

nacos配置管理与服务发现

守給你的承諾、 提交于 2020-05-06 12:48:44
maven配置 父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.ivan</groupId> <artifactId>pinellia</artifactId> <packaging>pom</packaging> <version>1.0.0-SNAPSHOT</version> <modules> <module>pinellia-common</module> <module>pinellia-service</module> <module>pinellia-service-api</module> <module>pinellia-auth</module> <module>pinellia-gateway</module> <