关于Mybatis
一:Mybatis的优缺点
优点:
1.与JDBC相比,减少了百分之五十的代码量。
2.Mybatis是最简单的持久层框架,简单易学。
3.Mybatis灵活,不会对应用程序和现数据库设计强加任何影响,SQL卸载XML里,从程序代码中分离,降低耦合度,方便统一管理,可以重复使用。
4.提供XML标签,支持编写动态SQL,XML可以使用if、else。
5.提供映射标签,支持对象与数据库的ORM字段关系映射(在MXL中配置映射关系,也可以使用注解)。
缺点:
1.SQL语句的编写工作量大,尤其是字段多、关联表多时,对开发人员的SQL功底有一定的要求。
2.SQL语句依赖数据库,导致数据库移植性差,不能所以更换数据库。
二:Mybatis执行一个sql的步骤
1.创建sqlsessionfactory会发工厂。
2.通过sqlsessionfactor工厂创建sqlsession。
3.通过sqlsession执行数据库操作。
4.session.conmit()提交事务。
5.session.close()关闭会话。
三:JDBC的执行流程
1.注册驱动。
2.创建连接(connection)。
3.创建运行sql的语句(statemet)。
4.运行语句。
5.处理运行结果(resultSet)。
6.释放资源。
四:${}和#{}的区别
${}是字符串替换,#{}是预编译处理,可以防止sql注入,一般尽量使用#{}。
五:Mybatis中如何批量更新或者插入数据
使用<foreach>标签循环遍历。一般的像是传入sql语法中in中的参数集合,也需要用到<foreach>标签。
关于Mybatis的更多相关文章
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- [原创]mybatis中整合ehcache缓存框架的使用
mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...
- 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程
本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...
- mybatis plugins实现项目【全局】读写分离
在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...
- MyBatis基础入门--知识点总结
对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...
- Mybatis XML配置
Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...
- MyBatis源码分析(一)开篇
源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...
- (整理)MyBatis入门教程(一)
本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...
- MyBatis6:MyBatis集成Spring事物管理(下篇)
前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...
随机推荐
- oralce 11g 数据库及客户端client等的下载安装
下载地址:https://www.oracle.com/cn/database/technologies/microsoft-windows.html
- 2019.11.14 typeScript环境搭建
当前环境为windows系统,在VSCode下搭建typeScript环境.在mac系统下同window系统一样,只是安装好ts环境后可能会报tsc命令不能使用的错误,这个时候需要找到tsc命令所在的 ...
- 不同时间格式转换问题_python2
def unix_to_cst(data): """2019-03-17 11:00:00 --> Sun, 17 Mar 2019 11:00:00 GMT+08 ...
- java并发编程实践-线程安全性
线程是CPU资源调度的基本单位,如果一个程序中只有一个线程,则最多只能在一个处理器上运行,如果电脑/服务器是双处理器系统,则单线程的程序只能使用一半的CPU资源,所以,多线程是提高处理器资源利用率的重 ...
- win10_pyhive链接hive失败,提示:Could not start SASL
win10_pyhive链接hive失败,提示:Could not start SASL https://blog.csdn.net/weixin_45684985/article/details/1 ...
- Quine-McCluskey两级逻辑化简算法原理解析
转载请务必注明出处:https://www.cnblogs.com/the-wind/p/15764283.html 目录 1 背景介绍:两级逻辑 2 Quine-McCluskey两级逻辑化简 2. ...
- python abseil库(app, flags, logging)总结
absl (Abseil PythonCommon Libraries)(https://abseil.io/docs/python/)是用于构建Python应用程序的Python库代码集合,它包括三 ...
- python渗透测试入门——Scapy库
Scapy 是一个用来解析底层网络数据包的Python模块和交互式程序,该程序对底层包处理进行了抽象打包,使得对网络数据包的处理非常简便.该类库可以在在网络安全领域有非常广泛用例,可用于漏洞利用开发. ...
- Feign调用报错The bean 'XXX.FeignClientSpecification', defined in null, could not be registered....的解决办法
问题描述: 创建了两个远程调用类,一个是调用退款的,一个是调用折扣的 但是两个调用类是调用的同一个微服务 都叫@FeignClient(value = "xxx-shop") 如何 ...
- DVWA-SQL Injection(SQL注入)
SQL Injection,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的.结构,从而达到执行恶意SQL语句的目的. LOW: 代码审计: SQL Injection Source vuln ...