statement的增删改查和动态的增删改查

一 statement的crud:

mybatis约定:

输入参数parameterType和输出参数resultType,在形式上都只能有一个

如果输入参数:是简单类型(8个基本类型+String),则可以使用任何占位符,#{xxx}

如果是对象类型,则只能写属性名#{属性名}

输出参数:如果返回值类型是一个对象(例如:user),则无论返回一个还是返回多个

resultType的写法都是一样,例如:org.user

注意事项:

1.如果使用的事物方式为jdbc,则需要手动提交,提交方式为session.commit()

2.所有的标签都必须有sql语句,但是sql参数值可选

有参数时session.delete(statement, z);

没参数时session.delete(statement);

二 mapper动态代理方式的crud(MyBatis接口开发):

原则:约定优于配置

硬编码:abc.java

                 Configuration conf = new Configuration();

                  con.setName("myProject");

配置方式:abc.xml   

                       <name>myProject</name>

约定:默认值就是myProject

具体实现的步骤:

1.基础环境:mybatis.jar/ojdbc.jar,conf.cml,mapper.xml

2.不同之处

约定的目标:省略掉statement,根据约定,直接找到要执行的sql语句

a.接口

建一个接口,接口中的方法必须遵循以下约定:

1.方法名与mapper.xml文件中标签的id值相同
2.方法的输入参数和mapper.xml文件中标签的parameter Type类型一致(无论结果返回一个还是多个,resultType中只写一个)
3.方法的返回值和mapper.xml文件中标签的resultType类型一致
  

除了以上约定,要实现接口中的方法 和Mapper.xml中SQL标签一一对应,还需要以下一点:

1. namespace的值,就是接口的全类名(接口 - mapper.xml 一一对应)

匹配的过程(约定的过程):

1. 根据 接口名 找到mapper.xml文件(根据的是namespace=接口全类名)

2. 根据接口的方法名 找到mapper.xml文件中的SQL标签(方法名=SQL标签id值)

以上两点可以保证:当我们调用接口中的方法时,程序能自动定位到某一个Mapper.xml文件中的sql标签

习惯:SQL映射文件(mapper.xml)和接口放在同一个包中(注意修改conf中映射文件的路径)

以上,可以通过接口的方法定位到SQL语句

执行:

usemapper x = session.getMapper(usemapper.class);//获取接口
        user result = x.queryUserByUsename(z);//执行接口里面的方法

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科学家「黑进」果蝇大脑跑NLP任务,发现效率比BERT高

来源&#xff1a;机器之心最近一段时间&#xff0c;有关摩尔定律终结的讨论时常出现&#xff0c;深度学习越来越高的算力需求与芯片制造厂商们「挤牙膏」式的换代速度产生了不可调和的矛盾。对此&#xff0c;一些研究者们正在专注于常规架构的效率提升&#xff0c;也有一些研究…

配置信息的优化,类型转换器

1. 优化&#xff1a; 可以将配置信息单独放入db.properties中&#xff0c;然后再动态引入 db.properties:kv <configuration> <properties resource"db.properties"/> 引入之后&#xff0c;使用${key} 2. MyBatis全局参数 在<configuration&g…

Attention Model

参考1: https://blog.csdn.net/malefactor/article/details/50550211 attention部分实现: https://blog.csdn.net/mpk_no1/article/details/72862348转载于:https://www.cnblogs.com/ying-chease/p/9448726.html

卫星互联网行业深度报告:战火早已熊熊燃烧

来源&#xff1a;万联证券1、低轨卫星加速建设&#xff0c;协同 5G 与地面通信互补融合1.1 卫星互联网纳入新基建&#xff0c;未来蓝海无限。卫星互联网是基于卫星通信的互联网&#xff0c;通过一定数量的卫星形成规模组网&#xff0c;从而辐射 全球&#xff0c;构建具备实时信…

Leetcode--416. 分割等和子集

给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]. 示例 2: …

LUGOU P3907 圈的异或

传送门 解题思路 其实就是找出所有的环判断&#xff0c;因为数据范围很小直接暴力做&#xff0c;注意要判断自环。 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm>using namespace std; cons…

新基建下的自动驾驶:单车智能和车路协同之争

来源&#xff1a;德勤Deloitte编辑&#xff1a;蒲蒲2020年3月&#xff0c;随着中央政治会议的正式定调&#xff0c;“新基建”&#xff0c;即新型基础设施建设&#xff0c;成为公众新焦点。4月&#xff0c;发改委明确新基建范围。在新基建涉及的细分领域中&#xff0c;5G、物联…

输入参数

输入参数&#xff1a;parameterType #{} ${}区别&#xff1a; 1. 类型为简单类型&#xff08;8个基本类型String&#xff09; #{任意值} ${value},其中的标识符只能是value #{}自动给String类型加上 ${}原样输出 但是适合动态排序&#xff08;动态字段&#xff09; s…

2038: [2009国家集训队]小Z的袜子(hose)

2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 15879 Solved: 7205[Submit][Status][Discuss]Description 作为一个生活散漫的人&#xff0c;小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天&#xff0c;小…

Jeff Dean三执笔:一文看尽2020年谷歌AI重大突破

来源&#xff1a;AI前线作者&#xff1a;Jeff Dean译者&#xff1a;核子可乐策划&#xff1a;钰莹 在二十年前刚刚加入谷歌时&#xff0c;我们关注的问题只有一个——如何面向这么多不同种类的联网计算机提供一整套质量出色且涵盖范围全面的网络信息搜索服务。到如今&#xff0…

输出参数

输出参数为resultType 1.简单类型&#xff08;8个基本类型String&#xff09; 2.输出参数为实体对象类型 3. 输出参数为实体对象类型的集合&#xff1a;虽然输出类型是集合&#xff0c;但是resultType依然写集合的元素类型 4. 输出参数类型为HashMap HashMap本身是一个集合…

模板 普通平衡树

Treap 版&#xff1a; 查询操作是最简单的&#xff0c;就是二叉搜索树。左旋右旋画一画就好了。 最近代码能力下降&#xff0c;码一码模板QAQ 1 #include<ctime>2 #include<cstdio>3 #include<cstring>4 #include<cstdlib>5 #include<algorithm>…

信号时频图的横纵坐标对调

博客1&#xff1a;如何翻转信号的时频图论文有时候需要绘制信号的时频图。Matlab有专用的函数spectrogram可以用来帮助我们绘制信号的时频图。默认的图例是横轴为频率&#xff0c;纵轴为时间。如果希望将横轴和纵轴对调&#xff0c;只需要在函数的末尾指定xaxis或yaxis即可。sp…

技术的顶点,是普惠人类还是超越人类

来源&#xff1a;大数据文摘我们很容易忽视我们在宏大的生态系统中的卓越地位&#xff0c;尤其是在一个容易依赖技术引领我们走向我们渴望的未来的时代。我们真的相信技术比人类更复杂和必要吗&#xff1f;被创造的东西真的能取代它的创造者吗&#xff1f;我们必须共同决定&…

HDU 2089 不要62

杭州人称那些傻乎乎粘嗒嗒的人为62&#xff08;音&#xff1a;laoer&#xff09;。 杭州交通管理局经常会扩充一些的士车牌照&#xff0c;新近出来一个好消息&#xff0c;以后上牌照&#xff0c;不再含有不吉利的数字了&#xff0c;这样一来&#xff0c;就可以消除个别的士司机…

Leetcode--149. 直线上最多的点数

给定一个二维平面&#xff0c;平面上有 n 个点&#xff0c;求最多有多少个点在同一条直线上。 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | o | o -------------> 0 1 2 3 4 示例 2: 输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]] 输出…

生态位构建-一种普遍的主动进化

来源&#xff1a;混沌巡洋舰人类正在塑造地球上生命进化的未来。我们不仅造成了大规模的物种灭绝&#xff0c;我们还迫使动物、植物和真菌适应我们的人造世界: 例如&#xff0c;城市鸟类现在唱得更高了&#xff0c;因为这种音调似乎有助于它们的歌声传递交通的声音。但是&#…

[引] 如何在Matlab中得到透明背景的图片?

% you created a figure and it is “current”. % the following, you could have guessed set(gcf,‘color’,‘none’); set(gca,‘color’,‘none’); % but this following little detail took me ages to figure out set(gcf,‘InvertHardCopy’,‘off’); 作者&#xf…

Openstack入门篇(十一)之neutron服务(控制节点)的部署与测试

1.Neutron的介绍 Neutron 为整个 OpenStack 环境提供网络支持&#xff0c;包括二层交换&#xff0c;三层路由&#xff0c;负载均衡&#xff0c;防火墙和 *** 等。Neutron 提供了一个灵活的框架&#xff0c;通过配置&#xff0c;无论是开源还是商业软件都可以被用来实现这些功能…

Leetcode--139. 单词拆分

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict&#xff0c;判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明&#xff1a; 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1&#xff1a; 输入: s "leetcode…