回过头来重新梳理一下几个基础框架 一 持久层的变迁历史 想一想,我最原始的最初的持久层是jdbc,我大二不会框架用了很久原生的.... // 打开连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/gp-mybatis // 打开连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/gp-mybatis 半自动的Mybatis,之前的hibernate和springdata jpa对各种代码封装程度要高一点,提供了比较完整的工具,但是这也意味些我们对其自定义开发程度不高. 强大的Mybatis优点或者特性 1、 使用连接池对连接进行管理 2、 SQL 和代码分离,集中管理 3、 结果集映射 4、 参数映射和动态 SQL 5、 重复 SQL 的提取 6、 缓存管理
MyBatis 内置日志工厂基于运行时自省机制选择合适的日志工具。 如果应用部署在一个类路径已经包含 Commons Logging 的环境中,而又想使用其它日志工具,可以通过在 MyBatis 配置文件 mybatis-config.xml 里面添加一项 setting 日志配置 可以对包、映射类的全限定名、命名空间或全限定语句名开启日志功能来查看 MyBatis 的日志语句。 DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd 注意:如果你使用的是 SLF4J 或 Log4j 2,MyBatis 将以 MYBATIS 这个值进行调用。
@toc一、MyBatis简介1.1 MyBatis历史MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了 1.2 MyBatis特性MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集MyBatis可以使用简单的 ,则去镜像网站中下载没有,则去中央仓库中下载本人其他相关文章链接1.一、MyBatis简介:MyBatis历史、MyBatis特性、和其它持久化层技术对比、Mybatis下载依赖包流程2.二、搭建MyBatis 、集合、数组、Map)6.六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性7.七、MyBatis自定义映射resultMap8.八、(了解即可)MyBatis懒加载(或者叫延迟加载 )9.九、MyBatis动态SQL10.十、MyBatis的缓存11.十一、MyBatis的逆向工程12.十二、MyBatis分页插件
在MyBatis中,#{}和${}是用于在SQL语句中嵌入参数的两种不同方式。它们的核心区别在于预处理和潜在的SQL注入风险。 这样做的好处是可以防止SQL注入,因为MyBatis会对参数进行适当的转义处理。 然后,MyBatis会将id参数的值安全地绑定到问号(?)位置。${}(直接替换)${}进行的是直接字符串替换。你提供的字符串会在MyBatis创建SQL语句之前就被替换到SQL中。 对于#{},MyBatis使用ParameterMapping来处理每一个参数,将其转换为一个预处理的参数。 总之,在编写安全的MyBatis应用时,理解#{}和${}的区别是至关重要的,以确保你的应用不容易受到SQL注入攻击。
Mybatis官方提供了逆向工程,可以针对单表自动生成mybatis代码(mapper.java\mapper.xml\po类)企业中,逆向工程是个很常用的工具,比我们手动创建映射文件的配置信息方便很多 DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <! -- 生成模型的包名和位置 --> <javaModelGenerator targetPackage="com.dpb.model" targetProject="<em>mybatis</em>12-generate 生成成功 3.使用反向生成代码 创建maven项目 配置<em>mybatis</em>环境 ? 将生成的文件对应的拷贝进去 ?
ECMAScript 6 ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。 另外,一些情况下ES6也泛指ES2015及之后的新增特性,虽然之后的版本应当称为ES7、ES8等. ECMAScript 和 JavaScript的关系 要讲清楚这个问题,需要回顾历史。 ES6的兼容性问题 IE10+,chrome,Firefox,移动端,nodesjs现在都支持 兼容低版本的浏览器 支持在线转换(这种编译会加大页面渲染的时间) 支持提前编译(强烈建议这种方式,不影响浏览器渲染的时间 目录下的文件转换编译成新文件到lib下面 那么我们去创建两个目录 ,把index.js放到src下面,输入npm run build 运行,我们会看到自动编译的效果 转换的支持条件 let命令 接下来我们来学习一下ES6新增的命令
查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,如何查看提交历史 git log 官方栗子 运行下面的命令获取该项目: git clone https://github.com/scha 运行 每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了 --pretty 可以使用不同格式来显示提交历史,有一些内建的子选项供你使用。 ? 提交者的电子邮件地址 %cd 提交日期 %cr 提交日期(距今多长时间) %s 提交说明 当 oneline 或 format 与另一个 log 选项 --graph 结合使用时尤其有用,展示你的分支、合并历史 --graph 在日志旁以 ASCII 图形显示分支与合并历史。 --pretty 使用其他格式显示历史提交信息。 -- 仅显示某些文件或目录的历史提交,-- 文件名/目录名 --no-merges 不显示合并提交的历史记录 来看一个实际的例子,如果要在 Git 源码库中查看 Junio Hamano 在 2008
代码直接放在Github仓库【https://github.com/Damaer/Mybatis-Learning/tree/master/mybatis-05-CURD 】undefined需要声明的是 :此Mybatis学习笔记,是从原始的Mybatis开始的,而不是整合了其他框架(比如Spring)之后,个人认为,这样能对它的功能,它能帮我们做什么,有更好的理解,后面再慢慢叠加其他的功能。
否则会抛出异常 TooManyResultsException;但是若查询的数据只有一条,可以使用实体类或集合作为返回值 6.3、查询单个数据 /** * 查询用户的总记录数 * @return * 在MyBatis
完整代码示例见:https://github.com/vir56k/java_demo/tree/master/mybatisdemo6_query1 2.2 一对多映射:关联多个对象放入一个属性的集合中 mybatis 的 <collection> 标签 用于在关联关系中描述一个集合。 mybatis 会针对 id 做过滤重复的对象。 从打印的结果可以看到,数据库返回了 3条记录。而 mybatis 进行映射充足后,合并了重复项,list 集合中只有两条。 我的代码示例见:https://github.com/vir56k/java_demo/tree/master/mybatisdemo6_query2 3.参考: https://mybatis.org /mybatis-3/zh/sqlmap-xml.html
单击计划任务边上的 历史(History )连接。 如果一个计划任务从来没有运行的胡啊,那么这个历史的链接是不会显示的。 屏幕截图:任务执行历史 ? https://www.cwiki.us/display/CONF6ZH/Scheduled+Jobs
5G如此,在今天同样备受瞩目的Wi-Fi 6也是一样。 2020年,是Wi-Fi 6走向场景深化和全面商用普及的关键一年。 WiFi产业的历史,或许正在一次合流中,迎来时代山岭的翻越。 而回溯整个Wi-Fi发展历史,会发现这项技术在园区与企业场景中的应用,基本是用来支撑终端设备的网络联接。终端设备的上网需求,基本是Wi-Fi提供的核心能力。 从联接终端到联接新业务,从网络支撑到数字化转型全面支撑,这是Wi-Fi 历史上前所未有的剧变,也是华为Wi-Fi 6技术与产品恰逢其时的机遇。 这也是华为建设Wi-Fi 6产品与技术新标杆的立足点。 伦敦午后的Wi-Fi 6新标杆 在这场发布会之前,华为在Wi-Fi 6市场的技术领先、产业探索领先地位已经十分明显。
Mybatis系列目标:从入门开始开始掌握一个高级开发所需要的Mybatis技能。 这是mybatis系列第6篇。 com.javacode2018.chat04.Demo1Test - 影响行数:1 26:55.414 [main] INFO com.javacode2018.chat04.Demo1Test - 自增值为:6 db中我们去看一下,梁朝伟的id是6,如下: mysql> SELECT * FROM t_user; +----+-----------+-----+----------+-----+ | id | salary | sex | +----+-----------+-----+----------+-----+ | 5 | 黎明 | 30 | 50000.00 | 1 | | 6 salary | sex | +----+-----------+-----+----------+-----+ | 5 | 黎明 | 30 | 50000.00 | 1 | | 6
代码直接放在Github仓库【https://github.com/Damaer/Mybatis-Learning/tree/master/mybatis-05-CURD 】 需要声明的是:此Mybatis 学习笔记,是从原始的Mybatis开始的,而不是整合了其他框架(比如Spring)之后,个人认为,这样能对它的功能,它能帮我们做什么,有更好的理解,后面再慢慢叠加其他的功能。
删除远端的历史记录但是不影响最新的仓库内容是笔者一直想实现的功能,有两个很不错的用处: 有的历史提交不慎包含了比较敏感的信息,提交的时候没注意,过了一段时间才发现。 这个时候已经有了很多新的历史提交,无法再回退了。 有时候会拿Git仓库存储代码文件以外的内容,比如美术资源、依赖库等等。这时除了少数提交大部分历史提交是没意义的,还很占仓库空间。 例如先检查一下所有的历史提交: git rev-list --count HEAD 如果得到的数值是500,那么将n设置成499就可以看到所有的历史记录。 当然如果你回溯的历史提交不太远,给个大概能看到你要删除的历史提交即可。 在git rebase -i HEAD~n之后在交互式页面中,将需要删除的历史提交记录的操作从pick改为drop。 笔者也不太理解为什么删除历史记录还要解决与当前仓库快照冲突的问题,猜测可能因为笔者的历史提交记录包含了很多合并的提交。
参考链接: Java的历史 java的历史 Java is an object-oriented programming language. Java是1991年6月由James Gosling发起的一个名为“ Oak”的项目。其目标是实现比C / C ++更简单的虚拟机。 Java版本历史 (Version History of Java) Java is a general-purpose programming language. 下图显示了Java编程语言的版本历史。 /33218/history-of-java java的历史
-- Spring6 --> <repository> <id>repository.spring.milestone</id> <name>Spring --引入mybatis依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis "> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>spring6mybatis -- Spring6 --> <repository> <id>repository.spring.milestone</id> <name DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis
-- Spring6 --> <repository> <id>repository.spring.milestone</id> <name>Spring --引入mybatis依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis "> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>spring6mybatis -- Spring6 --> <repository> <id>repository.spring.milestone</id> <name DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis
直至 2017 年底,上游 Ceph 项目都采取每年发布两个稳定版本的做法。自“Mimic”发行版起,Ceph 项目将按 9 个月发布计划运作。直至“Luminous”发行版,上游项目都是开发版和长期稳定 (LTS) 版交替发布。例如,“Kraken”属于开发版,而“Luminous”则属于 LTS 版。在 LTS 版本达到 GA 时,上游项目停止更新开发版。在过去,红帽都使红帽 Ceph 存储的发行版与上游 Ceph 的 LTS 版一致。自“Infernalis”稳定发行版起,上游 Ceph 项目已采用了新的版本号编号方案。每一稳定发行版递增主要版本号。如果次要版本为 0,则该版本尚在开发之中。如果是 1,则表示此版本为候选发行版。如果次要版本为 2,则该版本已经稳定,可供普通用户使用。
回顾它的历史,就要从浏览器的历史讲起。 这是人类历史上第一个浏览器,从此网页可以在图形界面的窗口浏览。 当然,后来的历史是 Java 语言的浏览器插件失败了,JavaScript 反而发扬光大。 二、JavaScript 与 ECMAScript 的关系 要讲清楚这个问题,需要回顾历史。 三、ES6 新特性(2015) ES6的特性比较多,在 ES5 发布近 6 年(2009-11 至 2015-6)之后才将其标准化。两个发布版本之间时间跨度很大,所以ES6中的特性比较多。