- 博客(111)
- 收藏
- 关注
原创 Java中会存在内存泄漏吗,简述一下
理论上Java因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是Java被广泛使用于服务器端编程的一个重要原因);然而在实际开发中,可能会存在无用但可达的对象,这些对象不能被GC回收,因此也会导致内存泄露的发生。例如hibernate的Session(一级缓存)中的对象属于持久态,垃圾回收器是不会回收这些对象的,然而这些对象中可能存在无用的垃圾对象,如果不及时关闭(close)或清空(flush)一级缓存就可能导致内存泄露。
2024-08-28 10:46:46
461
原创 JVM参数主要有几种分类
这也是⾮标准化参数,相对来说不稳定,随着JVM版本的变化可能会发生变化,主要用于JVM调优和debug。不稳定参数以-XX 开头,此类参数的设置很容易引起JVM 性能上的差异,使JVM存在极大的不稳定性。标准参数,顾名思义,标准参数中包括功能以及输出的结果都是很稳定的,基本上不会随着JVM版本的变化而变化。标准参数以-开头,如:java -version、java -jar等,通过java -help可以查询所有的标准参数。表示在将来的JVM版本中可能会发生改变,但是这类以-X开始的参数变化的⽐较小。
2024-08-27 14:04:28
248
原创 spring介绍
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。是降低对象之间的耦合关系的设计思想。应用在权限认证、日志、事务。Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。
2024-08-27 11:12:24
545
原创 Mybatis面试系列六
有了namespace,自然 id 就可以重复,namespace 不同,namespace+id 自然。Mybatis 动态 sql 可以在 Xml 映射文件内,以标签的形式编写动态 sql,执行原理。3、Mybatis 的 Xml 映射文件中,不同的 Xml映射文件,id是否可以重复?使用的,如果没有namespace,就剩下 id,那么,id重复会导致数据互相覆盖。不同的Xml映射文件,如果配置了namespace,那么 id可以重复;集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。
2024-06-14 14:58:15
452
原创 Mybatis面试系列五
对应的xml,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二。如果采用自增长策略,自动生成的键值在 insert 方法执行完后可以被设置到传入。然后,就可以在xml像下面这样使用(推荐封装为一个map,作为单个参数传递给。insert 方法总是返回一个 int 值 ,这个值代表的是插入的行数。3、在mapper中如何传递多个参数?2、如何获取自动生成的(主)键值?3、第三种:多个参数封装成map。参数,更多参数一致往后加即可。1、如何执行批量插入?
2024-06-07 15:20:14
233
原创 Mybatis面试题系列四
Dao 接口即 Mapper 接口。接口的全限名,就是映射文件中的 namespace的值;的拦截方法内拦截待执行的sql,然后重写 sql,根据 dialect 方言,添加对应的物。Mapper 接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符。Mapper 接口里的方法,是不能重载的,因为是使用全限名+方法名的保存和寻。分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件。对象的属性逐一赋值并返回,那些找不到映射关系的属性,是无法完成赋值的。Dao接口里的方法,
2024-06-07 14:47:25
448
原创 MyBatis面试题系列三
Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的。第 1种: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类。2、当实体类中的属性名和表中的字段名不一样 ,怎么办?使用#{}可以有效的防止 SQL注入,提高系统安全性。第 2种:在sql语句中拼接通配符,会引起sql注入。来映射字段名和实体类属性名的一一对应的关系。第1种:在Java代码中添加sql通配符。3、模糊查询like语句该怎么写?set 方法来赋值;
2024-06-07 14:26:22
273
原创 MyBatis面试题(Mybaits的优点、缺点、适用场合、与Hibernate有哪些不同)
2、Mybatis 直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高,非常。何影响,SQL 写在 XML里,解除 sql与程序代码的耦合,便于统一管理;2、与 JDBC 相比,减少了 50%以上的代码量,消除了JDBC大量冗余的代码,不。3、Hibernate 对象/关系映射能力强,数据库无关性好,对于关系模型要求高的。2、对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis将是。1、SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写。
2024-05-17 16:30:29
328
原创 MyBatis面试题-什么是Mybatis?
java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最。statement等繁杂的过程。1、Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时。2、MyBatis可以使用XML或注解来配置和映射原生信息,将POJO映射成数。3、通过xml文件或注解的方式将要执行的各种statement配置起来,并通过。据库中的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建。
2024-05-17 16:13:16
133
原创 Hibernate 注释
到现在为止,你已经看到 Hibernate 如何使用 XML 映射文件来完成从 POJO 到数据库表的数据转换的,反之亦然。Hibernate 注释是无需使用 XML 文件来定义映射的最新方法。你可以额外使用注释或直接代替 XML 映射元数据。Hibernate 注释是一种强大的来给对象和关系映射表提供元数据的方法。所有的元数据被添加到 POJO java 文件代码中,这有利于用户在开发时更好的理解表的结构和 POJO。如果你想让你的应用程序移植到其它 EJB 3 的 ORM 应用程序中,您必须使用注释
2021-07-08 17:56:15
291
1
原创 Hibernate O/R 映射
O/R 映射目前为止我们已经通过应用 Hibernate 见识过十分基础的 O/R 映射了,但是还有三个更加重要的有关映射的话题需要我们更详细的探讨。这三个话题是集合的映射,实体类之间的关联映射以及组件映射。集合映射如果一个实例或者类中有特定变量的值的集合,那么我们可以应用 Java 中的任何的可用的接口来映射这些值。Hibernate 可以保存 java.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.u
2021-07-08 17:42:31
233
原创 Hibernate实例
让我们看一个独立应用程序利用 Hibernate 提供 Java 持久性的例子。我们将通过不同的步骤使用 Hibernate 技术创建 Java 应用程序。创建 POJO 类创建应用程序的第一步就是建立 Java 的 POJO 类或者其它类,这取决于即将要存放在数据库中的应用程序。我们可以考虑一下让我们的 Employee 类使用 getXXX 和 setXXX 方法从而使它们变成符合 JavaBeans 的类。POJO (Plain Old Java Object) 是 Java 的一个对象,这种对
2021-07-08 17:35:05
518
原创 Hibernate 映射类型
当你准备一个 Hibernate 映射文件时,我们已经看到你把 Java 数据类型映射到了 RDBMS 数据格式。在映射文件中已经声明被使用的 types 不是 Java 数据类型;它们也不是 SQL 数据库类型。这种类型被称为 Hibernate 映射类型,可以从 Java 翻译成 SQL,反之亦然。在这一章中列举出所有的基础,日期和时间,大型数据对象,和其它内嵌的映射数据类型。原始类型日期和时间类型二进制和大型数据对象JDK 相关类型...
2021-07-07 17:58:23
132
原创 Hibernate 映射文件
一个对象/关系型映射一般定义在 XML 文件中。映射文件指示 Hibernate 如何将已经定义的类或类组与数据库中的表对应起来。尽管有些 Hibernate 用户选择手写 XML 文件,但是有很多工具可以用来给先进的 Hibernate 用户生成映射文件。这样的工具包括 XDoclet, Middlegen 和 AndroMDA。让我们来考虑我们之前定义的 POJO 类,它的对象将延续到下一部分定义的表中。public class Employee { private int id;
2021-07-07 17:50:08
278
原创 Hibernate 持久化类
Hibernate 的完整概念是提取 Java 类属性中的值,并且将它们保存到数据库表单中。映射文件能够帮助 Hibernate 确定如何从该类中提取值,并将它们映射在表格和相关域中。在 Hibernate 中,其对象或实例将会被存储在数据库表单中的 Java 类被称为持久化类。若该类遵循一些简单的规则或者被大家所熟知的 Plain Old Java Object (POJO) 编程模型,Hibernate 将会处于其最佳运行状态。以下所列就是持久化类的主要规则,然而,在这些规则中,没有一条是硬性要求。
2021-07-07 17:40:02
123
原创 Hibernate 会话
Session 用于获取与数据库的物理连接。 Session 对象是轻量级的,并且设计为在每次需要与数据库进行交互时被实例化。持久态对象被保存,并通过 Session 对象检索找回。该 Session 对象不应该长时间保持开放状态,因为它们通常不能保证线程安全,而应该根据需求被创建和销毁。Session 的主要功能是为映射实体类的实例提供创建,读取和删除操作。这些实例可能在给定时间点时存在于以下三种状态之一:瞬时状态: 一种新的持久性实例,被 Hibernate 认为是瞬时的,它不与 Session 相
2021-07-07 17:35:33
168
原创 Hibernate 配置
Hibernate 需要事先知道在哪里找到映射信息,这些映射信息定义了 Java 类怎样关联到数据库表。Hibernate 也需要一套相关数据库和其它相关参数的配置设置。所有这些信息通常是作为一个标准的 Java 属性文件提供的,名叫 hibernate.properties。又或者是作为 XML 文件提供的,名叫 hibernate.cfg.xml。我们将考虑 hibernate.cfg.xml 这个 XML 格式文件,来决定在我的例子里指定需要的 Hibernate 应用属性。这个 XML 文件中大多
2021-07-06 18:03:49
326
原创 Hibernate ORM 概览
JDBC 代表 Java Database Connectivity ,它是提供了一组 Java API 来访问关系数据库的 Java 程序。这些 Java APIs 可以使 Java 应用程序执行 SQL 语句,能够与任何符合 SQL 规范的数据库进行交互。JDBC 提供了一个灵活的框架来编写操作数据库的独立的应用程序,该程序能够运行在不同的平台上且不需修改,能够与不同的 DBMS 进行交互。为什么是对象关系映射(ORM)?当我们工作在一个面向对象的系统中时,存在一个对象模型和关系数据库不匹配的问
2021-07-05 17:55:24
147
原创 Hibernate简介
Hibernate 是一个高性能的对象关系型持久化存储和查询的服务,其遵循开源的 GNU Lesser General Public License (LGPL) 而且可以免费下载。Hibernate 不仅关注于从 Java 类到数据库表的映射,也有 Java 数据类型到 SQL 数据类型的映射,另外也提供了数据查询和检索服务。这个教程将指导你如何以简单的方式使用 Hibernate 来开发基于数据库的 Web 应用程序。...
2021-07-05 17:44:08
197
原创 Maven常用指令
需要在pom.xml所在目录中执行以下命令。1、Mvn compile执行 mvn compile命令,完成编译操作执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。2、 Mvn clean执行 mvn clean命令,执行完毕后,会将target目录删除。3、 Mvn test执行 mvn test命令,完成单元测试操作。执行完毕后,会在target目录中生成三个文件夹:surefire、 surefire-reports(测试报告)、test-classes(测试的字节
2021-06-21 14:40:02
1948
原创 项目构建与Maven的关系
1、构建的概念构建过程项目构建方式1)AntAnt只是一个项目构建工具,它没有集成依赖管理。Ant在进行项目构建时,它没有对项目目录结构进行约定,需要手动指定源文件、类文件等目录地址。同时它执行task时,需要显示指定依赖的task,这样会造成大量的代码重复。2)MavenMaven不仅是一个项目构建工具,更是一个项目管理工具。它在项目构建工程中,比ant更全面,更灵活。Maven在进行项目构建时,它对项目目录结构拥有约定,知道你的源代码在哪里,类文件应该放到哪里去。它拥有生命周期的
2021-06-21 13:45:58
145
原创 Maven模型介绍及原理分析
1、Maven介绍Maven(麦文)项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 ApacheJakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。Maven这个单词来自于意第绪语(犹太语),意为
2021-06-21 13:28:36
766
原创 项目中的jar包如何管理
项目开发中遇到的问题1、都是同样的代码,为什么在我的机器上可以编译执行,而其他的机器上就不行?2、为什么在我的机器上可以正常打包,而配置管理员却打包不成功?3、项目组加入了新的人员,我要给他说明编译环境如何设置,但是让我挠头的是,有些细节我也记不清楚了。4、我的项目依赖一些jar包,我应该把他们放哪里?放源码库里?5、这是我开发的第二个项目,还是需要上面的那些jar包,再把它们复制到我当前项目的svn库里,那第三个、第四个项目呢?6、我写了一个数据库相关的通用类,并且推荐给了其他项目组,现在已
2021-06-21 13:18:45
439
原创 基本快照 | Basic Snapshotting
git addgit-add - 将文件内容添加到索引此命令使用工作树中的当前内容更新索引,以准备下一个提交的内容。它通常会将现有路径的当前内容作为一个整体添加,但通过一些选项,还可以使用它仅添加对所应用的工作树文件进行的部分更改的内容,或删除工作树中不存在的路径了。“索引”包含工作树内容的快照,并且这个快照被当作下一次提交的内容。因此,在对工作树进行任何更改之后,在运行commit命令之前,必须使用add命令将任何新的或修改的文件添加到索引。在提交之前,命令可以执行多次。它只在add命令运行时添
2021-06-16 16:34:47
137
原创 Hibernate的基本用法
一、Hibernate的基本用法Hibernate是轻量级Java EE应用的持久层解决方案,Hibernate不仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度缩短处理数据持久化的时间。目前主流数据库依然是关系数据库,而Java语言则是面向对象的编程语言,当把二者结合在一起使用时相当麻烦,而Hibernate减少了这个问题的困扰,它完成对象模型和基于SQL的关系模型的映射关系,使得应用开发者可以完全采用面向对象的方式来开发应用程
2021-04-08 11:45:20
1938
原创 Git 指南 | Guides
Git 是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以 GPL 发布。最初目的是为更好地管理 Linux 内核开发而设计。独立的个人开发人员不会与其他人交换补丁,并使用以下命令单独在单个资源库中工作。git-init [1]创建一个新的存储库。git-log [1]看看发生了什么。git-checkout [1]和git-branch [1]来切换分支。git-add [1]来管理索引文件。git-diff [1]和git-status [1]
2021-04-07 13:33:01
202
1
原创 docker-compose
Usage: ps [options] [SERVICE...]Options:-q Only display IDs列出容器。$ docker-compose ps Name Command State Ports------------------------------------------------------------------------------
2021-04-06 16:24:42
100
原创 NPM-编码风格
npm的编码风格有点不同寻常。它不同于差异,而是一种精心设计的风格,旨在减少视觉混乱,使错误更明显。如果你想贡献npm(非常鼓励),你应该让你的代码符合npm的风格。注意:这涉及npm的代码,而不是您可以从npm注册表下载的特定软件包。保持行短于80个字符。线条太短而不是太长会更好。将长列表,对象和其他语句分成多行。如果块需要换行到下一行,请使用大括号。如果没有,请不要使用它。if (foo) bar()while (foo) { bar()}如果有一个以逗号分隔的事物列表,并且它包含
2021-04-06 11:52:07
139
原创 Template Syntax(模板的语法)
Vue.js使用基于HTML的模板语法,允许您声明性地将渲染的DOM绑定到底层Vue实例的数据。所有Vue.js模板都是有效的HTML,可以通过符合规范的浏览器和HTML解析器进行解析。引擎盖下,Vue将模板编译成虚拟DOM渲染函数。结合反应性系统,Vue能够智能地找出最少量的组件,以便在应用程序状态更改时重新呈现并应用最少量的DOM操作。如果您熟悉虚拟DOM概念并喜欢JavaScript的原始力量,那么您还可以直接编写渲染函数而不是模板,并提供可选的JSX支持。数据绑定的最基本形式是使用“Musta
2021-04-06 10:30:31
188
原创 编写库 | Authoring Libraries
除了打包应用程序代码,webpack 还可以用于打包 JavaScript library。以下指南适用于希望流水线化(streamline)打包策略的 library 作者。假设你正在编写一个名为 webpack-numbers 的小的 library,可以将数字 1 到 5 转换为文本表示,反之亦然,例如将 2 转换为 ‘two’。基本的项目结构可能如下所示:+ |- webpack.config.js+ |- package.json+ |- /src+ |- index.js
2021-04-01 10:42:18
133
原创 webpack资产管理 | Asset Management
webpack 是一个模块打包器。webpack 处理带有依赖关系的模块,生成一系列表示这些模块的静态资源。在 webpack 出现之前,前端开发人员会使用 grunt 和 gulp 等工具来处理资源,并将它们从 /src 文件夹移动到 /dist 或 /build 目录中。同样方式也被用于 JavaScript 模块,但是,像 webpack 这样的工具,将__动态打包(dynamically bundle)__所有依赖项(创建所谓的依赖图( dependency graph)。这是极好的创举,因为现在
2021-03-29 14:29:21
259
原创 npm入门
npm为您和您的团队打开了整个JavaScript的世界。它是世界上最大的软件注册机构,每周下载量约为30亿次。该注册表包含600,000多个包(构建代码块)。来自各大洲的开源开发人员使用npm来共享和借用包,许多组织也使用npm来管理私有开发。npm由三个不同的组件组成:网站命令行界面(CLI)注册表使用该网站发现包(构建代码块),设置个人资料以及管理您的npm体验的其他方面。例如,您可以设置Orgs(组织)来管理对公共或私有包的访问。该 CLI 从终端中运行。这是大多数开发人员与 npm 交
2021-03-28 15:18:30
198
原创 The Vue Instance(Vue实例)
当创建一个Vue实例时,它将在其data对象中找到的所有属性添加到Vue的反应性系统中。当这些属性的值改变时,视图将“反应”更新以匹配新值。// Our data objectvar data = { a: 1 }// The object is added to a Vue instancevar vm = new Vue({ data: data})// These reference the same object!vm.a === data.a // => true/
2021-03-26 13:44:22
500
原创 MyBatis 动态SQL
MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意的 SQL 映射语句中。动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似。在
2021-03-26 10:28:19
60
原创 MyBatis XML映射文件
Mapper XML 文件MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):cache – 给定命名空间的缓存配置。cache-ref – 其他命名空间缓存配置的引用。resultMap – 是最复杂也是最强大
2021-03-25 11:45:55
711
原创 MyBatis XML配置
MyBatis XML配置MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集, 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。XML 映射配置文件MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息。
2021-03-24 17:29:47
255
原创 Spring 理论与用例实践
Spring 是目前各个企业必备的技术,也是各个框架技术需要整合的组件。Spring 生态技术目前已经是互联网开发中必不可少的一个技术栈。相信读者能通过本文的学习,打下一定的 Spring 技能基础,为后面 Spring 生态的扩展技术做充足的准备。本文大致包含了以下几方面的讲解:Spring 多种开发方式:XML 方式、注解方式、Schema 方式、P 命名空间方式等;Spring 核心基石:控制反转 IoC/依赖注入 DI ;Spring 切面编程:AOP。Spring 起源于 2003 年
2021-01-28 21:12:31
134
原创 Spring 整合 Web 项目实例
Spring 是目前各个企业必备的技术,也是各个框架技术需要整合的组件。Spring 生态技术目前已经是互联网开发中必不可少的一个技术栈。相信读者能通过本文的学习,打下一定的 Spring 技能基础,为后面 Spring 生态的扩展技术做充足的准备。本文大致包含了以下几方面的讲解:Spring IoC 容器初始化,将 Spring IoC 容器中所有的 Bean 实例化为对象,将各个 Bean 依赖的属性值注入;在 Web 应用服务器启动时,Spring IoC 容器初始化过程;根据三层结构拆分
2021-01-28 21:04:35
512
原创 Spring 整合 MyBatis 项目实例
本文大致包含了以下几方面的讲解:通过 StudentMapper.xml 将类和表建立起映射关系;将 studentService 及属性 studentMapper 注入 Spring IoC 容器,StudentService 接口及实现类 StudentServiceImpl 的实现过程;通过 Spring 产生 MyBatis 最终操作需要的动态 Mapper 对象(StudentMapper 对象);在 Spring IoC 容器中如何创建 MyBatis 的核心类 SqlSessionF
2021-01-28 17:52:23
685
原创 weblogic不能启动的解决方案;发现启动过程中AdminServer.lok文件报错,导致weblogic不能启动
1、问题现象weblogic不能正常访问;节点2启动双机可以带起weblogic文件系统也能带起服务IP但不能带起weblogic服务。2、问题解决1)手动启动weblogic脚本,发现启动过程中AdminServer.lok文件报错,导致weblogic不能启动;2)进一步发现该AdminServer.lok异常;3)用fsck修复文件系统;首先要停止weblogic服务。unmount /weblogic通过fsck /dev/fslv02 修复文件系统...
2020-06-08 13:57:34
3071
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人