mapper

java对象拷贝

痞子三分冷 提交于 2020-01-24 05:58:42
java赋值是复制对象引用,如果我们想要得到一个对象的副本,使用赋值操作是无法达到目的的: @Test public void testassign(){ Person p1=new Person(); p1.setAge(31); p1.setName("Peter"); Person p2=p1; System.out.println(p1==p2);//true } 如果创建一个对象的新的副本,也就是说他们的初始状态完全一样,但以后可以改变各自的状态,而互不影响,就需要用到java中对象的复制,如原生的clone()方法。 如何进行对象克隆 Object对象有个clone()方法,实现了对象中各个属性的复制,但它的可见范围是protected的,所以实体类使用克隆的前提是: ① 实现Cloneable接口,这是一个标记接口,自身没有方法。 ② 覆盖clone()方法,可见性提升为public。 @Data public class Person implements Cloneable { private String name; private Integer age; private Address address; @Override protected Object clone() throws CloneNotSupportedException { return

1、mybatis源码学习@Mapper注解

我的梦境 提交于 2020-01-24 04:58:44
1、@Mapper自动配置的程序入口在 MybatisAutoConfiguration类的最下面, (mybatis-spring-boot-autoconfigure-x.x.x.jar,org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration中的内部类实现) 根据名字可以看出,这个是自动配置,用到了spring-boot的自动配置相关注解 @org . springframework . context . annotation . Configuration //Import注解引入 @Mapper扫描类 @ Import ( { AutoConfiguredMapperScannerRegistrar . class } ) @ ConditionalOnMissingBean ( MapperFactoryBean . class ) public static class MapperScannerRegistrarNotFoundConfiguration { @PostConstruct public void afterPropertiesSet ( ) { logger . debug ( "No {} found." , MapperFactoryBean . class . getName

异常记录——使用Mybatis报BindingException

做~自己de王妃 提交于 2020-01-24 00:26:39
异常信息 org.apache.ibatis.binding.BindingException nested exception is org.apache.ibatis.binding.BindingException: Parameter 'deviceNO' not found. Available parameters are [deviceNo, deviceId, param1, param2] 场景回溯 业务场景:车辆表,需要更新指定编号车辆的设备Id(编号和设备ID均非主键),因而在对应的mapper.xml中自定义了SQL语句,结果调用对应接口时爆出异常 当然可以直接使用Mybatis-plus的EntityWrapper,这样做虽然方便,但是第一影响性能,第二造成职责划分不清(SQL的拼装属于dao层,它从来就不该在Service层完成) 原因排查 apache的ibatis将原因说的很清楚:Parameter 'deviceNO' not found. Available parameters are [deviceNo, deviceId, param1, param2] ,没找到xml里使用占位符表示的参数(#{deviceNO}),能用的参数有deviceNo、deviceId等,很明显是发生了拼写错误 xml: Mapper接口:

通用mapper 和 分页助手 pageHelper

半腔热情 提交于 2020-01-23 03:48:10
通用mapper 类似于hibernate的全自动功能 针对单边映射,extends Mapper<T> ,提供了很多单表通用的api功能 select(record),单表的字段条件,selectByExample(example) new Example(bean.class) 封装pojo类,example.createCriteria().andLike(),andEqualTo() 增加模糊查询 连表和多表操作: 通过自己写sql语句完成, 通用mapper还提供了SelectByIdListMapper 接口,通过主键集合查询pojo实体集合 insertListMapper ,一次插入多个pojo实体类 pageHelper中有两个类 PageInfo 和 PageResult new PageInfo (list),封装list结果集,通过getTotal() getList() 可以分别拿到总记录数和结果集 来源: CSDN 作者: Keson_11 链接: https://blog.csdn.net/Keson_wecanmakeit/article/details/103752879

Mybatis逆向工程构建项目实例.

人走茶凉 提交于 2020-01-23 03:30:32
Mybatis逆向工程构建项目实例. 2016/11/06更新: 因为有博友可能需要这份代码, 所以我就直接发到百度云上面和大家共享, 如果链接失效请大家留言提示即可. 下载地址: http://pan.baidu.com/s/1i57E8PR mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、pojo等) 有了sql表的结构后, 我们就可以利用逆向工程直接生成相应的Dao和JavaBean代码, 这样能够大大减少我们平时开发的工作量. 但是我还是觉得使用逆向工程局限性很大, 例如我们的逆向工程main方法只能执行一次, 如果再次执行就会继续生成相应的Dao和JavaBean, 除非我们把之前生成的全都删除. 这样对于代码的扩展性就不是很好, 如果我们需要对表结构进行修改, 那么我们就必须对生成的Dao和JavaBean进行一个个修改. 下面就直接进入开发阶段: 1, 数据库表结构 2,将逆向工程导入到Eclipse中 3,使用逆向工程 逆向工程目录结构: 这里的bean和dao都是使用逆向工程自动生成的两个包, 我们只需要将相应的Dao和Javabean拷贝到相应的project下即可. 看下生成Dao和Bean的代码: 1 import java.io

ssm之spring+springmvc+mybatis整合初探

我是研究僧i 提交于 2020-01-22 22:03:21
1、基本目录如下 2、首先是向lib中加入相应的jar包 3、然后在web.xml中加入配置,使spring和springmvc配置文件起作用。 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <!-- needed for ContextLoaderListener --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </context-param> <!-- Bootstraps the root web application context before servlet initialization

mybatis缓存之一级缓存

故事扮演 提交于 2020-01-22 11:22:21
一级缓存:与数据库同一次会话期间查询到的数据会放在本地缓存中,以后如果需要获取相同的数据,直接从缓存中拿,没必要再去查询数据库。 package com.gong.mybatis.test; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import com.gong.mybatis.bean.Department; import com.gong.mybatis.bean.Employee; import com.gong.mybatis

Centos进入dracut模式,报 /dev/centos/swap does not exist,如何恢复

五迷三道 提交于 2020-01-22 00:52:25
1、问题介绍 本问题是在Centos7.7系统上部署k8s时,关闭了swap,手工删除/dev/centos/swap后出现的, 问题本身具有一定的普遍性 2、解决问题 2.1、进入dracut,挂载系统根分区 参考: https://blog.csdn.net/weixin_43905458/article/details/104059550 2.2、修改/etc/defaut/grub dracut# mkdir tmp1 dracut# mount /dev/centos/root tmp1 dracut# vi tmp1/etc/defaut/grub GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet" 修改为 GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rhgb quiet" 2.3、挂载boot分区 2.3.1、找到boot分区设备 dracut# cat tmp1/etc/fstab # # /etc/fstab # Created by anaconda on Thu Jan 2 21:15:59 2020 # # Accessible filesystems,

【SSM】SSM之MyBatis框架:mappers 映射器的两种映射方案

隐身守侯 提交于 2020-01-21 23:55:05
mappers 映射器的两种映射方案: 要定义 SQL 映射语句先要告诉 MyBatis 到哪里去找到这些语句。 Java 在这方面没有提供一个很好的方法, 所以最佳的方式是用mappers 映射器告诉 MyBatis 到哪里去找映射文件。mappers 映射器提供了两种映射方案,一是直接指定相应的mapper .xml文件,二是指定与mapper .xml相关联的接口。例如: < mappers > <!--指定mapper.xml的相对路径--> < mapper resource = " org/mybatis/builder/AuthorMapper.xml " /> <!--指定mapper.xml的绝对路径--> < mapper url = " file:///var/mappers/AuthorMapper.xml " /> </ mappers > < mappers > <!--指定相关联的接口的全限定路径--> < mapper class = " org.mybatis.builder.AuthorMapper " /> <!--指定包下所有相关联的接口--> < package name = " org.mybatis.builder " /> </ mappers > 前面所述俱是用的第一种方案,下面介绍一下第二种方案,第二种方案才是推荐的方案

json

南笙酒味 提交于 2020-01-21 23:49:21
@Test public void test1() throws Exception { //1.创建Person对象 Person p = new Person(); p.setName("张三"); p.setAge(23); p.setGender("男"); //2.创建Jackson的核心对象 ObjectMapper ObjectMapper mapper = new ObjectMapper(); //3.转换 /* 转换方法: writeValue(参数1,obj): 参数1: File:将obj对象转换为JSON字符串,并保存到指定的文件中 Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中 OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中 writeValueAsString(obj):将对象转为json字符串 */ String json = mapper.writeValueAsString(p); //{"name":"张三","age":23,"gender":"男"} //System.out.println(json);//{"name":"张三","age":23,"gender":"男"} //writeValue,将数据写到d://a.txt文件中 //mapper