本文共 2896 字,大约阅读时间需要 9 分钟。
实体类等文件的生成
在进行开发的过程中,在建好数据库数据表之后,我们还需要自己去对实体类、Mapper、Xml等文件进行编码,在这里Mybatis提供了一个generator插件,可以帮我们快速生成这些文件,节约时间。
首先我们需要在pom.xml文件当中进行导入这个插件的依赖。
代码段如下所示:添加依赖,进行导入到maven,等待导入完成即可。org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 mysql mysql-connector-java 5.1.44 true
依赖添加完成之后,我们在resources下新建一个generatorConfig.xml文件
需要修改的地方PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
最后在idea右侧打开maven,双击运行一下这个插件就可以生成对应的文件了。
UPDATE详解 updateByExample传入一个对象,将整条数据都更新,如果对象中没有值的属性,就自动设置为null,如下:
传入的参数是一个map数据类型,而且在执行sql语句时的set每一列都会发生改变,所以在前台传递过来的数据有些列的数据不存在则会被置为空,并且可以在后面加上where条件查询。Mapper文件当中的方法调用:简单来说,在update更新操作,第一个参数需要传递一个更新的对象也就是实体类,第二个参数看xml当中的接口是否包含了where条件,包含了再加一个参数Example类对象作为where条件即可。
int updateByExample(@Param("record") OvertimemealTaxiregistration record, @Param("example") OvertimemealTaxiregistrationExample example);
updateByExampleSelective
将一行中某几个属性更新,而不改变其他的值
参数详解
xxxMapper.updateByExampleSelective(参数一,参数二);
参数1:这个参数是让传入一个对象,就是你要修改的那条数据所对应的对象,有人肯定要问了,如果要将整个对象传进来那为什么不直接用updateByExample,这个不是更加方便吗? 解释:这里的对象可以里面可以只有一个参数,其他都为null,但是当更新的时候,只会更新有属性的那一列,其他列之前是什么样,现在还是什么样子,不会去修改参数2:传入xxxExample就可以
在mapper当中进行定义的时候需要加上@Param,定义如下:
int updateByExampleSelective(@Param("record") OvertimemealTaxiregistration overtime ,@Param("example") OvertimemealTaxiregistrationExample example);
注意在使用的时候,参数对应,简单来说就是第一个参数对应的是更新的对象,第二个参数对应的是where条件。
updateByPrimaryKeySelective
对字段进行判断再更新(如果为Null就忽略更新),如果你只想更新某一字段,可以用这个方法。可以看到xml文件当中的sql语句。
传入一个实体类对象,对其进行判断是否为空,为空将不进行更新,且在最后面还可以加上一个where条件查询(根据主键)这里主键是id。Mapper当中对应的方法定义,在这里只需要传递一个实体类即可,因为后续的where条件也是根据这个实体类对象得到的。
int updateByPrimaryKeySelective(OvertimemealTaxiregistration record);
updateByPrimaryKey
这个方法和上一个方法的区别是:对你注入的字段全部更新,且可以根据id(主键)进行更新操作。
这里的Mapper对应方法传递的参数与上一个方法一致。int updateByPrimaryKey(OvertimemealTaxiregistrationExample record);
select、insert、delete详解
在上面介绍了update更新的接口,在后面的select、insert、delete方法与这个update同理,只需要注意传递给sql语句的是实体类还是where子条件。
其中关于实体Example这个类。可以去看一下Criteria这个类的代码。
总结下来就是我们可以通过这个类给特定的属性进行where查询。如下代码demo所示:()转载地址:http://xkqzi.baihongyu.com/