hibernate

Java面试题全集(13)

孤街醉人 提交于 2021-01-17 08:37:20
Java面试题全集(13) 白玉 IT哈哈 121、解释一下网络应用的模式及其特点。 答:典型的网络应用模式大致有三类:B/S、C/S、P2P。其中B代表浏览器(Browser)、C代表客户端(Client)、S代表服务器(Server),P2P是对等模式,不区分客户端和服务器。B/S应用模式中可以视为特殊的C/S应用模式,只是将C/S应用模式中的特殊的客户端换成了浏览器,因为几乎所有的系统上都有浏览器,那么只要打开浏览器就可以使用应用,没有安装、配置、升级客户端所带来的各种开销。P2P应用模式中,成千上万台彼此连接的计算机都处于对等的地位,整个网络一般来说不依赖专用的集中服务器。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求作出响应,提供资源和服务。通常这些资源和服务包括:信息的共享和交换、计算资源(如CPU的共享)、存储共享(如缓存和磁盘空间的使用)等,这种应用模式最大的阻力安全性、版本等问题,目前有很多应用都混合使用了多种应用模型,最常见的网络视频应用,它几乎把三种模式都用上了。 补充:此题要跟"电子商务模式"区分开,因为有很多人被问到这个问题的时候马上想到的是B2B(如阿里巴巴)、B2C(如当当、亚马逊、京东)、C2C(如淘宝、拍拍)、C2B(如威客)、O2O(如美团、饿了么)。对于这类问题,可以去百度上面科普一下。 122、什么是Web Service

(十一)Spring从入门到入土——Spring整合JPA

孤街醉人 提交于 2021-01-15 10:54:07
1、jpa入门 Java持久层api,替代jdbc,Java持久化规范。JPA是Hibernate的一个抽象,是一种ORM规范,是Hibernate功能的一个子集,Hibernate是JPA的一个实现 jpa和jdbc优缺点: jdbc: 本质:处理Java对象和关系型数据库表之间的转化 优点:性能最高,操作数据库最底层 缺点: 1.使用复杂(重复代码很多),移植数据库很麻烦 ​ 2.性能优化需要自己处理,没有提供数据缓存,需要自己实现。 ​ 3.面向的是sql语句操作,不是面向对象的。 jpa: 本质:只是对于jdbc再次做了一层封装 优点: 1.程序员操作很简单,代码简单。 ​ 2.直接面向持久对象操作 ​ 3.提供世界级数据缓存(一级缓存,二级缓存,查询缓存) ​ 4.数据库移植性很强,很少的修改(通过配置方言):把各种数据库抽取了一个方言接口,不同的数据库实现类一个方言接口,需要换数据库,只需要修改方言实现,驱动jar文件,连接数据库信息(4个:驱动,url地址,用户名,密码) 缺点: 1.不能干预sql语句的生成。find方法默认查询表的所有字段 2.一个项目中如果对sql语句的优化比较高,不适用jpa(不过jpa中有对原生sql的支持) ​ 3.如果一个表中有上亿的数据,也不适合用jpa和jdbc(可以使用数据库读写分析,分库分表方案解决) 适用的项目规模:中小型

深入理解 Java 垃圾回收机制

拈花ヽ惹草 提交于 2021-01-15 06:56:59
http://www.cnblogs.com/andy-zcx/p/5522836.html 深入理解 Java 垃圾回收机制 一:垃圾回收机制的意义 java 语言中一个显著的特点就是引入了java回收机制,是c++程序员最头疼的内存管理的问题迎刃而解,它使得java程序员在编写程序的时候不在考虑内存管理。由于有个垃圾回收机制,java中的额对象不在有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存; 内存泄露:指该内存空间使用完毕后未回收,在不涉及复杂数据结构的一般情况下,java的内存泄露表现为一个内存对象的生命周期超出了程序需要它的时间长度,我们有是也将其称为“对象游离”; 二:垃圾回收机制的算法 java语言规范没有明确的说明JVM 使用哪种垃圾回收算法,但是任何一种垃圾回收算法一般要做两件基本事情:(1)发现无用的信息对象;(2)回收将无用对象占用的内存空间。使该空间可被程序再次使用。 1。引用计数法(Reference Counting Collector) 1.1:算法分析: 引用计数算法是垃圾回收器中的早起策略,在这种方法中,堆中的每个对象实例都有一个引用计数器,点一个对象被创建时,且该对象实例分配给一个变量,该变量计数设置为1 ,当任何其他变量赋值为这个对象的引用时,计数加1 ,(a=b

org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested ...

笑着哭i 提交于 2021-01-13 21:03:28
原因: 这个问题的解决方案很简单,主要是因为数据库中不存在相关的表或者列。 org.springframework.dao.InvalidDataAccessApiUsageException: Parameter with that position [1] did not exist; nested exception is java.lang.IllegalArgumentException: Parameter with that position [1] did not exist org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [select * from xxx]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate

java零基础之---常见java面试题

社会主义新天地 提交于 2021-01-13 08:31:32
看到别人分享的面试题,感觉蛮全面的,分享出来,慢慢研究答案。 一、Java 基础 1.JDK 和 JRE 有什么区别? 2.== 和 equals 的区别是什么? 3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? 4.final 在 java 中有什么作用? 5.java 中的 Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们之间有什么区别? 8.String str="i"与 String str=new String("i")一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用 final 修饰吗? 14.接口和抽象类有什么区别? 15.java 中 IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有哪些? 19.Collection 和 Collections 有什么区别? 20.List、Set、Map 之间的区别是什么? 21.HashMap 和 Hashtable 有什么区别? 22.如何决定使用 HashMap 还是 TreeMap? 23.说一下

Mybatis入门看这一篇就够了

早过忘川 提交于 2021-01-12 09:09:15
什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。是一个基于Java的持久层框架 为什么我们要用Mybatis? 无论是Mybatis、Hibernate都是ORM的一种实现框架,都是对JDBC的一种封装! 到目前为止,我们已经在持久层中学了几种技术了... Hibernate jdbc SpringDAO 那我们为啥还要学Mybatis呢???现在Mybatis在业内大行其道,那为啥他能那么火呢?? Hibernate是一个比较老旧的框架,用过他的同学都知道,只要你会用,用起来十分舒服...啥sql代码都不用写...但是呢,它也是有的缺点:: 处理复杂业务时,灵活度差, 复杂的HQL难写难理解,例如多表查询的HQL语句 而JDBC很容易理解,就那么几个固定的步骤,就是开发起来太麻烦了,因为什么都要我们自己干.. 而SpringDAO其实就是JDBC的一层封装,就类似于dbutils一样,没有特别出彩的地方.... 我们可以认为, Mybatis就是jdbc和Hibernate之间的一个平衡点 ...毕竟现在业界都是用这个框架,我们也不能不学呀! Mybatis快速入门 其实我们已经学过了Hibernate了

java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem异常

廉价感情. 提交于 2021-01-09 05:42:53
今天一不小心就碰到了这样的问题,以前从来没有碰到过,在网上搜了很多办法,思路正确,但是还是要根据自己的程序改变。 一开始写的是hql语句进行统计每个月的数据,但是试了很久,程序一直提醒hql语句异常,没办法,只能修改查询语句了,就改成了sql语句进行统计。 错误就由此产生了,一发不可收拾啊: java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem这个异常解决办法很简单,首先要弄懂 hibernate中 createQuery 与 createSQLQuery 的区别: 前者用的hql语句进行查询,后者可以用sql语句查询 前者以 hibernate生成的Bean为对象装入list返回 后者则是以对象数组进行存储 所以使用createSQLQuery有时候也想以 hibernate生成的Bean为对象装入list返回,就不是很方便 不过createSQLQuery有这样一个方法可以直接转换对象 Query query = session.createSQLQuery(sql). addEntity(XXXXXXX.class) XXXXXXX 代表以 hibernate生成的Bean的对象,也就是数据表映射出的Bean hql语句:对每个月的数据进行统计

Java生鲜电商平台-统一格式返回的API架构设计与实战

十年热恋 提交于 2021-01-07 07:29:49
Java生鲜电商平台-统一格式返回的API架构设计与实战 说明:随着互联网各岗位精细化分工的普及,出现了很多的系统架构设计,比如常见的前后端分离架构,后端提供接口给前端,前端根据接口的数据进行渲染,大家各执其职,效率也非常的高,但是随着接口的增加,如果不统一的规范就会额外的增加大量的沟通成本以及学习成本,对管理者而言是非常的不利。为此,我在这篇文章分享给大家一个 Java生鲜电商平台中 如何返回统一格式的API的整体架构设计。 一般系统的大致整体架构图如下: 需要说明的是,有些小伙伴会回复说,这个架构太简单了吧,太low了,什么网关啊,缓存啊,消息中间件啊,都没有。因为这篇主要介绍的是API接口,所以我们聚焦点,其他的模块小伙伴们自行去补充。 接口交互 前端和后端进行交互,前端按照约定请求URL路径,并传入相关参数,后端服务器接收请求,进行业务处理,返回数据给前端。 针对URL路径的restful风格,以及传入参数的公共请求头的要求(如:app_version,api_version,device等),老顾这里就不介绍了,小伙伴们可以自行去了解,也比较简单。 后端服务器如何实现把数据返回给前端? 返回格式 后端返回给前端我们一般用JSON体方式,定义如下: { #返回状态码 code: integer, #返回信息描述 message: string, #返回值 data:

Spring boot jpa hibernate HQL query with group by gives Validation failed for query

随声附和 提交于 2021-01-07 06:59:47
问题 In spring boot app I have an ElementEntity: .... @Entity public class ElementEntity { @Id int id; Double quantity; String form; String color; String type; String description; @ManyToOne @JoinColumn(name = "form") private FormEntity form; } And I have here FormEntity: @Entity public class FormEntity { ..... @OneToMany @JoinColumn(name = "links") private List<LinksEntity> links; } I want using HQL to generate a query that will sum the values of quantity field, group by color and and to return

Spring boot jpa hibernate HQL query with group by gives Validation failed for query

僤鯓⒐⒋嵵緔 提交于 2021-01-07 06:58:51
问题 In spring boot app I have an ElementEntity: .... @Entity public class ElementEntity { @Id int id; Double quantity; String form; String color; String type; String description; @ManyToOne @JoinColumn(name = "form") private FormEntity form; } And I have here FormEntity: @Entity public class FormEntity { ..... @OneToMany @JoinColumn(name = "links") private List<LinksEntity> links; } I want using HQL to generate a query that will sum the values of quantity field, group by color and and to return