数据库对象

Oracle JDBC 连接池

孤人 提交于 2019-11-28 18:08:10
1、简介 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 2、为什么要用连接池 如果按照单个连接来进行数据库操作,在高并发的情况下会导致数据库连接数耗尽的问题,而且单个连接的频繁创建和关闭,极大地增加了数据库的开销。针对这些,数据库连接池技术就能很好的解决这些问题。 3、实现 定义连接对象 import java.sql.Connection; /** * */ public class PoolConnection { private Connection connect; //false 繁忙,true 空闲 private boolean status; public PoolConnection() { } public PoolConnection(Connection connect, boolean status) { this.connect = connect; this.status = status; } public Connection getConnect() { return connect; } public void setConnect

一篇文章让你马上入门Hibernate

时光怂恿深爱的人放手 提交于 2019-11-28 15:03:26
在前面我们学完了Struts2,接下来我们就要去学习第二个框架Hibernate。 那什么是Hibernate? Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的ORM框架,Hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲地使用对象编程思维来操纵数据库,Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。 顺带介绍一下什么是ORM。 ORM:对象关系映射,是一种程序技术,简单来说就是把我们程序中的实体类和数据库表建立起来对应关系。 那为什么要有对象关系映射呢? 假设一下,当你开发一个应用程序的时候,你可能会写不少数据访问层的代码,用来从数据库保存、删除、读取对象信息等等。你在DAO中写了很多的方法来读取对象数据,改变状态对象等等任务,而这些代码很多都是重复的。 对象映射关系赋予了程序一种强大的能力,让开发者仅仅掌握面向对象的思维来操作数据库,即在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。 HelloWorld 关于Hibernate的一些基本知识了解完之后

Hibernate对象状态之间的神奇转换

跟風遠走 提交于 2019-11-28 15:01:34
状态分类 在Hibernate框架中,为了管理持久化类,Hibernate将其分为了三个状态: 瞬时态(Transient Object) 持久态(Persistent Object) 脱管态(Detached Object) 有很多人好像对这些概念和它们之间的转换不太明白,那么本篇文章就是来解决这些问题的,看完了还不会你来找我。(开个玩笑~~) 详细描述 我们先来详细地了解一下三种状态: 1、瞬时态 对象由new操作符创建,且尚未与Hibernate中的Session关联的对象被认为处于瞬时态。瞬时态对象不会被持久化到数据库中,也不会赋予持久化标识,如果程序中失去了瞬时态对象的引用,瞬时态对象将被垃圾回收机制销毁。 2、持久态 持久化实例在数据库中有对应的记录,并拥有一个持久化标识。持久化的实例可以是刚刚保存的,也可以是刚刚被加载的。无论哪一种,持久化对象都必须与指定的Session对象关联。 3、脱管态 某个实例曾经处于持久化状态,但随着与之关联的Session被关闭,该对象就变成脱管状态。脱管状态的引用引用依然有效,对象可继续被修改。如果重新让脱管对象与某个Session关联,该脱管对象会重新转换为持久化状态。 瞬时态 持久态 脱管态 是否存于Session缓存中 × √ × 数据库中是否有对应记录 × √ √ 例如: public class HibernateTest {

Hibernate框架之Criteria查询 和注解

ぃ、小莉子 提交于 2019-11-28 13:53:36
今天呢,我就详细的写着 Hibernate框架的一种检索方式:Criteria查询。下面我写的这些案例,可能对于大牛没有什么好看的,但是对于初学者来说,却是一笔财富。 首先我们要知道的检索方式: Hibernate框架提供了5种检索对象的方式 1.导航对象图检索方式:根据已经加载的对象导航到其他对象 2.OID检索方式:按照对象的OID来检索对象 3.HQL检索方式:使用面向对象的HQL查询语言 4.QBC检索方式:使用QBC(Query By Criteria)API来检索对象,这种API封装了基于字符串形式的查询语句,提供了更加面向对象的查询接口 5.本地SQL检索方式:使用本地数据库的SQL查询语句 什么是Criteria Criteria是一种比hql更面向对象的查询方式。 Criteria 可使用 Criterion 和 Projection 设置查询条件。可以设置 FetchMode(联合查询抓取的模式 ) ,设置排序方式,Criteria 还可以设置 FlushModel (冲刷 Session 的方式)和 LockMode。 Criteria查询 就是 通过面向对象化的设计,将数据查询条件封装为一个对象 Criteria是一个接口,它继承了 另一个接口。 它里面有很多的方法,看图说话: 有了这些方法,我们可以再深度研究,这个方法里面的参数,有了什么接口或是类的类型

mybatis generator的generatorConfig.xml配置详解

元气小坏坏 提交于 2019-11-28 08:40:19
generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <!-- 配置生成器 --> <generatorConfiguration> <!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用${propertyKey}的方式来引用配置项 resource:配置资源加载地址,使用resource,MBG从classpath开始找,比如com/myproject/generatorConfig.properties url:配置资源加载地质,使用URL的方式,比如file:///C:/myfolder/generatorConfig.properties. 注意,两个属性只能选址一个; 另外,如果使用了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties都可以直接在generatorConfig.xml中使用 <properties

IDEA用Maven连接MySQL的jdbc驱动,并操作数据库

不羁的心 提交于 2019-11-28 07:49:10
1、在IDEA里创建Maven项目 1.1、点击Create New Project 1.2、选择Maven,JDK这里用的是1.8,点击Next 1.3、填入“组织名”、“项目名”,版本是默认的,点击Next 1.4、选择创建路径,点击Finsh 1.5、这是创建完成的界面 2、用Maven连接Mysql的JDBC驱动 2.1、打开src下的pom.xml文件, 在里面添加Mysql的jdbc包的引用,代码如下 1 <dependencies> 2 <dependency> 3 <groupId>mysql</groupId> 4 <artifactId>mysql-connector-java</artifactId> 5 <version>8.0.18</version> 6 </dependency> 7 </dependencies> 2.2、添加完成后,IDEA右下角会出现下图提示,点击提示中的Import Changes,Maven就会开始下载资源 2.3、下载时页面左下角出现正在下载的提示 2.4、下载完成变成绿勾 3、连接数据库第一种方式:直接注册驱动,向数据库插入数据(不推荐使用) 3.1、在src——main——java目录下,新建一个LinkDatabaseInsert的类 1 import java.sql.Connection; 2 import

JDBC的API详解之Connection

佐手、 提交于 2019-11-28 07:42:50
1.1.1 Connection:与数据库连接对象 1.1.1.1 作用一:创建执行SQL语句的对象 执行SQL语句对象: l Statement :执行SQL l CallableStatement :执行数据库中存储过程 l PreparedStatement :执行SQL.对SQL进行预处理。解决SQL注入漏洞。 1.1.1.2 作用二:管理事务 来源: https://blog.51cto.com/14473726/2431940

web技术第五式---Django的ORM

浪子不回头ぞ 提交于 2019-11-28 07:22:40
ORM对应的关系 类------------->表 类属性------->表字段 类对象------->表记录 1、ORM简介 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。那么,到底如何实现持久化呢?一种简单的方案是采用硬编码方式,为每一种可能的数据库访问操作提供单独的方法。 这种方案存在以下不足: 1.持久化层缺乏弹性。一旦出现业务需求的变更,就必须修改持久化层的接口 2.持久化层同时与域模型与关系数据库模型绑定,不管域模型还是关系数据库模型发生变化,毒药修改持久化曾的相关程序代码,增加了软件的维护难度。 ORM提供了实现持久化层的另一种模式,它采用映射元数据来描述对象关系的映射,使得ORM中间件能在任何一个应用的业务逻辑层和数据库层之间充当桥梁。Java典型的ORM中间件有:Hibernate,ibatis,speedframework。 ORM的方法论基于三个核心原则:   · 简单:以最基本的形式建模数据。   · 传达性:数据库结构被任何人都能理解的语言文档化。   · 精确性:基于数据模型创建正确标准化了的结构。 2、ORM的概念 让我们从O/R开始。字母O起源于"对象"

不得不玩玩NHibernate

假如想象 提交于 2019-11-28 06:30:57
1.0=>前言 放着好好的EF不用,为什么要来玩NHibernate了?那是因为现在的工作内容就是维护一个比较老的项目,第一版是公司找外包做的,跟数据库打交道这块用的NHibernate,虽然都是ORM,但是既然维护这个项目有一段时间要一直搞,那还是趁着周末休息的时间先自己玩玩NHibernate,提前熟悉下. 什么是NHibernate: 1.开源的ORM(对象关系映射)框架.ORM可以被认为是,基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。理想情况下,基于这样一个面向对象的接口,持久化一个OO对象应该不需要要了解任何关系型数据库存储数据的实现细节。 2.简化数据库操作的开发.功能 : 将 .Net实体对象 直接持久化 到数据库. 在ADO.NET基础上进行封装,只需要少量代码就可以完成持久化工作,通过映射文件保存映射信息,在业务层以面向对象的方式编程,不用考虑数据保存形式 2.0=>使用Hibernate的"3个准备,7个步骤" 一.=> 3个准备 : a-添加程序集; b-配置文件; c-添加实体类和实体配置文件; 添加程序集:你可以去 https://sourceforge.net/projects/nhibernate/ 下载程序集也可以用Nuget,咱们这里直接用Nuget安装 配置文件

JDBC

我们两清 提交于 2019-11-28 06:12:37
JDBC .JDBC是java访问数据库的标准规范,真正操作数据库还需要具体的实现类,也就是数据库驱动。怎么把数据库驱动jar包导入编译工具在网上都能搜到具体的操作步骤,这里不再赘述。 1连接数据库 1.1加载和注册数据库驱动,JDBC3之后可以跳过此步骤; public class Demo1 { public static void main(String[] args) throws ClassNotFoundException { // 抛出类找不到的异常,注册数据库驱动 Class.forName("com.mysql.jdbc.Driver");// Driver接口,所有数据库厂商必须实现的接口,表示这是一个驱动类 } } 1.2DriverManager 作用: 1) 管理和注册驱动 2) 创建数据库的连接 类中的方法: DriverManager 类中的静态方法 描述 Connection getConnection (String url, String user, String password) 通过连接字符串,用户名,密码来得到数据库的连接对象 Connection getConnection (String url, Properties info) 通过连接字符串,属性对象来得到连接对象 public class Demo2 { public