hibernate

Mybatis的前世今生

巧了我就是萌 提交于 2020-12-02 10:12:10
一、MyBatis的简介 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二、MyBatis的历史 原是 apache 的一个开源项目 iBatis , 2010年6月这个项目由 apache software foundation 迁移到了 google code ,随着开发团队转投 Google Code 旗下, ibatis3.x 正式更名为 Mybatis ,代码于2013年11月迁移到 Github 。 iBATIS 一词来源于“ internet ”和“ abatis ”的组合,是一个基于Java的持久层框架。 iBATIS 提供的持久层框架包括 SQL Maps 和 Data Access Objects(DAO) 三、MyBatis的基本说明 (1) 、 MyBatis 是一个工作在持久层的框架,它不再是一个标准的 ORM 框架 我们先看看Hibernate是如何对数据库进行操作 我们再来看看Mybatis如何对数据库进行操作 因为它只管理了SQL语句和Java之间的关联和映射

how to properly specify database schema in spring boot?

给你一囗甜甜゛ 提交于 2020-12-01 08:56:34
问题 in my spring boot / hibernate application, I need to connect to a Postgres database "ax2012_1", which belong to the "dbo" schema. I have the following application.properties: # Database db.driver: org.postgresql.Driver db.url: jdbc:postgresql://localhost:5432/ax2012_1 db.username: my_user_name db.password: my_password spring.datasource.url= jdbc:postgresql://localhost:5432/ax2012_1 spring.datasource.username=my_user_name spring.datasource.password=my_password spring.datasource.schema=dbo

how to properly specify database schema in spring boot?

末鹿安然 提交于 2020-12-01 08:55:10
问题 in my spring boot / hibernate application, I need to connect to a Postgres database "ax2012_1", which belong to the "dbo" schema. I have the following application.properties: # Database db.driver: org.postgresql.Driver db.url: jdbc:postgresql://localhost:5432/ax2012_1 db.username: my_user_name db.password: my_password spring.datasource.url= jdbc:postgresql://localhost:5432/ax2012_1 spring.datasource.username=my_user_name spring.datasource.password=my_password spring.datasource.schema=dbo

Is there are way to scroll results with JPA/hibernate?

﹥>﹥吖頭↗ 提交于 2020-12-01 06:43:40
问题 I found some hint in Toplink Query query = em.createQuery("SELECT e FROM Employee e ORDER BY e.lastName ASC, e.firstName ASC"); query.setHint("eclipselink.cursor.scrollable", true); ScrollableCursor scrollableCursor = (ScrollableCursor)query.getSingleResult(); List<Employee> emps = scrollableCursor.next(10); is there are jpa/hibernate alternative? 回答1: To my knowledge, there is nothing standard in JPA for that. With Hibernate, the closest alternative I'm aware of would be the Query /

一次SQL注入导致的"越权"

旧巷老猫 提交于 2020-11-30 14:57:05
原文来自 SecIN社区 —作者:tkswifty 相关背景   在实际的业务开发中,SQL交互往往是业务系统中不可或缺的一项。在Java中提供了类似Mybatis、Hibernate、SpringData JPA等来满足相关的数据库交互需要。但是由于种种原因,开发人员在处理应用程序和数据库交互时,使用字符串拼接的方式构造SQL语句,导致了SQL注入问题。那么有时候面对大量的接口存在SQL注入,迭代困难的时候,过滤器/拦截器便是很多开发人员的首选,通过过滤相关的SQL关键字,避免SQL注入得到进一步利用。   针对上述场景,很多时候需要加检查过滤器设计是否严谨,检查是否有漏网之鱼,导致SQL注入漏洞被攻击者进行利用。前段时间审计某项目时发现一处SQL注入导致的"越权",以下是相关的过程。 挖掘过程   系统基于SpringMVC进行开发,业务主要是与简历编辑相关。相关的问题接口主要在修改个人简历处。一般来说,这种修改个人信息的业务,除了修改内容以外,主要传递两个关键信息: 当前用户的身份凭证userId 当前用户的业务编号(这里是简历),resumeId   在进行接口业务请求时,将业务相关的关键参数userid聪当前用户的身份凭证(一般是session)获取,绑定个人用户身份,然后从前端获取需要修改的resumeId,最后在保存信息进行SQL交互时

国产服务器的安全监控之法

我只是一个虾纸丫 提交于 2020-11-29 08:37:18
从1993年中国第一台服务器诞生至今,国产服务器发展已将近二十载。二十载潮起潮落,国产服务器已涌现出联想、曙光、浪潮、华为、宝德等一批民族品牌。随之应运而生的问题是:如何对国产服务器进行监控,来全面掌握国产服务器的运行状况和趋势? 购买、使用国产服务器很简单,但服务器正式上线后,其数据流动、连接数、网络流量、系统负荷等各方面都会增加,安全问题也随之而来,再考虑到日志、数据库的重要性,每一位管理员都想随时随地的把握服务器的运行状态。系统负载、cpu使用率、内存占用、磁盘空间、网络流量、端口、进程、apache或tomcat的连接数、mysql的运行状态这些都是管理员想要监控到的属性,要了解服务器每时每刻的整体运行状态,单靠几个系统自带的性能监测命令是很难实现的。因此,管理人员需要一套服务器监控软件来实现针对于国产服务器的监控。 智和网管平台 是国内首家国产化网络管理平台,北京智和信通公司经过多年的探索,现以100%支持国产化解决方案,平台主要基于SNMP网络协议对服务器进行运维监控,当然如果是其他协议的设备也可以进行协议扩展。 智和网管平台采用了J2SE、XML、Web Service、Web、HTML5、JavaScript、Struts、Spring、Hibernate、SNMP、HTTP、JDBC、Swing、RMI、O-M Mapping、O-R Mapping、Muti

Linux Swap交换分区介绍总结

喜欢而已 提交于 2020-11-29 06:02:07
Swap交换分区概念 什么是Linux swap space呢?我们先来看看下面两段关于Linux swap space的英文介绍资料: Linux divides its physical RAM (random access memory) into chucks of memory called pages. Swapping is the process whereby a page of memory is copied to the preconfigured space on the hard disk, called swap space, to free up that page of memory. The combined sizes of the physical memory and the swap space is the amount of virtual memory available. Swap space in Linux is used when the amount of physical memory (RAM) is full. If the system needs more memory resources and the RAM is full, inactive pages in memory are moved to the

一言难尽,Jpa这个功能差点让我丢了工作

北城以北 提交于 2020-11-29 03:30:33
故事背景 前阵子,有位朋友在微信上问我数据被删了能不能恢复,我问了下原因,居然是因为一个配置项惹的祸。 故事细节 在 Spring Boot 中使用 jpa 来操作数据库,jpa 就不做详细的介绍了,相信大家都有所了解或者也用过。 在 jpa 中有一个配置项,可以让程序在启动的时候自动初始化表结构或者更新表结构的功能。听上去很不错,非常实用。 其实这是一个非常危险的功能,个人觉得不应该提供这种功能,只要留了口子就有可能会出问题。 这个配置就是: spring.jpa.hibernate.ddl-auto create( 危险系数 2 颗星 ) 应用启动的时候,如果数据库中没有对应的表,就会自动根据实体类的结构创建一个表结构。如果表已经存在了就会将表中的数据清空。 create-drop( 危险系数 3 颗星 ) 应用启动的时候,如果数据库中没有对应的表,就会自动根据实体类的结构创建一个表结构。如果表已经存在了就会将表中的数据清空。 程序停止的时候会将数据库中所有表删除掉。 update( 危险系数 1 颗星 ) 应用启动的时候,如果数据库中没有对应的表,就会自动根据实体类的结构创建一个表结构。如果表已经存在了就会判断有没有新增字段或者修改长度之类的,如果有则会更新表结构,不会影响数据。 validate( 危险系数 0 颗星 ) validate 不会更新和删除表或者数据

Mybatis常见面试题

旧城冷巷雨未停 提交于 2020-11-28 06:25:36
#{}和${}的区别是什么? 在Mybatis中,有两种占位符 #{} 解析传递进来的参数数据 ${}对传递进来的参数 原样 拼接在SQL中 #{} 是预编译处理,${}是字符串替换 。 使用#{}可以有效的防止SQL注入,提高系统安全性。 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 第1种: 通过在查询的sql语句中 定义字段名的别名,让字段名的别名和实体类的属性名一致 < select id= ”selectorder” parametertype= ”int” resultetype= ”me.gacl.domain.order”> select order_id id, order_no orderno ,order_price price form orders where order_id=#{id}; </ select> 第2种: 通过来映射字段名和实体类属性名的一一对应的关系 < select id= "getOrder" parameterType= "int" resultMap= "orderresultmap"> select * from orders where order_id=#{id} </ select> < resultMap type= ”me.gacl.domain

转载——java学习步骤

半城伤御伤魂 提交于 2020-11-26 08:41:33
第一步:首先要做好学习前的准备工作:java语言一般用于大型的服务器程序开发,所有有必要了解如下内容:Unix开发环境Unix系统原理、Unix开发环境、Unix常用命令。熟练掌握Unix常用命令;熟练构建下的Java开发环境。   第二步:然后进入Java语言基础的学习阶段,学习任何一门语言都要打好基础,曾经学过高级程序语言(C,C++等)来说,java语言基础有自己的特点,但是基本规律都是相通的,如:算法基础、常用数据结构、企业编程规范。掌握常见的数据结构和实用算法;培养良好的企业级编程习惯。   第三步:掌握java语言基础后接下来就是面向对象语言的共性:Java面向对象面向对象特性:封装、继承、多态等。掌握面向对象的基本原则以及在编程实践中的意义;掌握Java面向对象编程基本实现原理。   第四步:JDK核心API语言核心包、异常处理、常用工具包、集合框架。熟练掌握JDK核心API编程技术;理解API设计原则;具备熟练的阅读API文档的能力;JavaSE核心异常处理、多线程基础、IO系统、网络编程、Swing组件、JVM性能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、JDK新特性。熟练掌握JavaSE核心内容,特别是IO和多线程;初步具备面向对象设计和编程的能力;掌握基本的JVM优化策略。XML XML语法、XML解析(SAX、DOM)