mapper

Java类型转换报错java.lang.ClassCastException: com.sun.proxy.$Proxy7 cannot be cast to

岁酱吖の 提交于 2020-02-27 01:40:17
类型转换异常 java.lang.ClassCastException: com.sun.proxy.$Proxy7 cannot be cast to 这个错误的原因只有一个类型转换异常。 在一个子类实现父类的接口时,并且在强制转换时一定要使用父类的接口,否则就会报这个错误。 接口代码 package com.xxr.mapper; public interface UserMapper { void AddUser(); void SelectUser(); void DeleteUser(); void UpUser(); } 子类代码 package com.xxr.mapper.Impl; import com.xxr.mapper.UserMapper; public class UserImpl implements UserMapper { public void AddUser() { System.out.println("增加"); } public void SelectUser() { System.out.println("查询"); } public void DeleteUser() { System.out.println("删除"); } public void UpUser() { System.out.println("修改"); } }

SpringBoot集成TkMybatis插件

为君一笑 提交于 2020-02-26 22:48:29
前提: 基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件。 在本篇总结教程,不在进行SpringBoot集成Mybatis的概述。 如有需要,请查看我另一篇文章 SpringBoot集成MyBatis ,这里不再赘述。 一. 实现步骤 1. 引入TkMybatis的Maven依赖 2. 实体类的相关配置,@Id,@Table 3. Mapper继承tkMabatis的Mapper接口 4. 启动类Application或自定义Mybatis配置类上使用@MapperScan注解扫描Mapper接口 5. 在application.properties配置文件中,配置mapper.xml文件指定的位置[可选] 6. 使用TkMybatis提供的sql执行方法 PS : 1. TkMybatis默认使用继承Mapper接口中传入的实体类对象去数据库寻找对应的表,因此如果表名与实体类名不满足对应规则时,会报错,这时使用@Table为实体类指定表。(这种对应规则为驼峰命名规则) 2. 使用TkMybatis可以无xml文件实现数据库操作,只需要继承tkMybatis的Mapper接口即可。 3. 如果有自定义特殊的需求,可以添加mapper.xml进行自定义sql书写,但路径必须与步骤4对应。 6. 如有需要

Spring框架(二):Spring整合Mybatis、添加事物

﹥>﹥吖頭↗ 提交于 2020-02-26 14:56:41
Spring 整合 MyBatis 案例 实现功能:在数据库中根据id查找用户的信息 一、创建与数据库表中对应的实体类 使用 lombok 简化创建 User 类 package com . kuang . pojo ; @Data @AllArgsConstructor @NoArgsConstructor public class User { //注意 字段与表中列名对应 private int id ; private String name ; private String pwd ; } 二、写出这个类的映射接口,接口里有我们查询数据库的方法 package com . kuang . mapper ; import com . kuang . pojo . User ; import java . util . List ; public interface UserMapper { public List < User > getUserList ( ) ; } 三、写出接口的XML文件 xml 中有查询语句 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd

MyBatis完全使用指南

 ̄綄美尐妖づ 提交于 2020-02-26 05:57:07
MyBatis完全使用指南 转 http://www.jianshu.com/p/1c7c7d1bba33 MyBatis MyBatis作为一个轻量的SQL映射框架,确实很简单,但是知识点挺多,实际使用中还是会有时想不起来某个标签该怎么写,所以整理了这篇文章,以备查询。由于MyBatis如此简单,使得这一篇文章基本把实际使用中常碰到的事情都涵盖了,包括: MyBatis中的一些概念 MyBatis包含的内容 SQL映射 动态SQL 一、 MyBatis中的一些概念 MyBatis的架构 1. MyBatis 是个什么东西 在使用MyBatis的项目里,日志中往往会出现很多拼接SQL语句的log,这其实说明了MyBatis底层还是使用JDBC来实现的。在JDBC的基础上,为了性能考虑,所有的语句都是基于 SqlSession 。顾名思义,维护这个类的实例其实就是维护了一个对于某个数据库的连接的会话,在这个会话里可以有缓存啊什么之类的。 2. mapper 接口是怎么映射成SQL语句的 目前多数开发者还是会使用XML来进行MyBatis的配置,包括MyBatis的核心配置和SQL映射配置。其实和注解一样,XML本身只不过是一个元数据的载体,最终起作用的还是MyBatis的核心类。其中有这样几个比较重要的: SqlSessionFactoryBuilder ,用来创建

Spring Boot(七):Mybatis 多数据源最简解决方案

淺唱寂寞╮ 提交于 2020-02-26 01:30:15
说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务。我们遇到的情况是后者,网上找了很多,大都是根据 Jpa 来做多数据源解决方案,要不就是老的 Spring 多数据源解决方案,还有的是利用 Aop 动态切换,感觉有点小复杂,其实我只是想找一个简单的多数据支持而已,折腾了两个小时整理出来,供大家参考。 废话不多说直接上代码吧 我们以 Mybatis Xml 版本为例,给大家展示如何如何配置多数据源。 配置文件 Pom 包就不贴了比较简单该依赖的就依赖,主要是数据库这边的配置: mybatis.config-location=classpath:mybatis/mybatis-config.xml spring.datasource.test1.jdbc-url=jdbc:mysql://localhost:3306/test1?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true spring.datasource.test1.username=root spring.datasource.test1.password=root spring.datasource.test1.driver-class-name=com.mysql.cj.jdbc

mapper一对多简单写法笔记

浪尽此生 提交于 2020-02-25 19:13:25
分表存储,并且查询数据 <?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.questionnaire.study.mapper.DivOptingsContenMapper"> <resultMap id="BaseResultMap" type="com.questionnaire.study.pojo.DivOptingsConten"> <id column="num" property="num" jdbcType="INTEGER"/> <result column="content" property="content" jdbcType="VARCHAR"/> <result column="options" property="options" jdbcType="VARCHAR"/> <result column="strength_index" property="strengthIndex" jdbcType="VARCHAR"/> <result column=

mybatis调用存储过程

做~自己de王妃 提交于 2020-02-25 12:08:51
1.mybatis调用oracle存储过程 <?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="xxxMapper"> <resultMap type="java.util.LinkedHashMap" id="cursorMap"> </resultMap> <select id="getXXX" parameterType="map" useCache="false" statementType="CALLABLE"> <![CDATA[ CALL 存储过程名称( --parameterType="map" 使用map封装参数,直接输入key名称就可以获取到 --mode=IN 输入参数 #{iCompanyid, jdbcType=VARCHAR, mode=IN}, #{iProjid, jdbcType=VARCHAR, mode=IN}, #{iCurPage, jdbcType=DOUBLE, mode=IN}, --当前页 #{iPageSize, jdbcType=DOUBLE,

MyBatis-日志、分页、缓存

非 Y 不嫁゛ 提交于 2020-02-24 20:07:35
日志 如果一个数据库的操作出现了异常,这时候我们需要排错,日志就是最好的助手。 之前使用的是输出语句或者debug。现在使用的是日志工厂。 在MyBatis中具体使用哪一个日志实现,在设置中进行设定即可。在设定的时候注意区分大小写。 STDOUT_LOGGING STDOUT_LOGGING标准日志输出。 在MyBatis核心配置文件中,配置日志。 < settings > < setting name = " logImpl " value = " STDOUT_LOGGING " /> </ settings > Log4j Log4j 是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件。 我们可以控制每一条日志的输出格式。 通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 1、导入log4j的包 < dependency > < groupId > log4j </ groupId > < artifactId > log4j </ artifactId > < version > 1.2.17 </ version > </ dependency > 2、编写 log4j.properties

Redis实现存取数据+数据存取

柔情痞子 提交于 2020-02-23 05:45:53
添加依赖: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>2.1.3.RELEASE</version> </de Mapper接口: package com.nf147.sim.mapper; import com.nf147.sim.entity.News; import java.util.List; public interface NewsMapper { List<News> query(); void add(News news); } 映射文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE

还在用逆向工程?太Low了,试试通用Mapper吧!

房东的猫 提交于 2020-02-22 15:53:53
什么是通用Mapper? 通用mapper 可以极大的方便开发人员进行ORM,提供极其方便的单表增删改查。 什么是通用mapper,一句话简单说,它就是个辅助mybatis极简单表开发的组件。它不是为了替代mybatis,而是让mybatis的开发更方便。 可以按照自己的需要选择通用方法,还能很方便的开发自己的通用方法。 为什么要用通用Mapper? 原生Mybatis的痛点 1、mapper.xml文件里有大量的sql,当数据库表字段变动,配置文件就要修改 2、需要自己实现sql分页,select * from table where . . . limit 1,3 自己手写分页,除了传参page、pageSize,还需要返回条目总数count。 3、数据库可移植性差:如果项目更换数据库,比如oracle-->mysql,mapper.xml中的sql要重新写,因为Oracle的PLSQL 和mysql 支持的函数是不同的。 4、生成的代码量过大。 5、批量操作,批量插入,批量更新,需要自写。 如何使用通用Mapper? 1、导入依赖/jar包 通用Mapper是配合MyBatis使用的,请确保你已经是MyBatis的环境。 <!-- 通用Mapper --> <dependency> <groupId>com.github.abel533</groupId>