关系型数据库表结构设计技巧 - 物理主键、悲观锁、乐观锁

物理主键作为关联的外键         关系型数据库,由多个数据表构成。不同表之间可能存在关联关系。表之间的关联关系,正是关系型数据库得名的原因。一个表由多个字段构成。其中可能有多个字段适合作为主键。主键字段,就是表中每一行都不会有重复数据的字段。         主键,可以分为两种:物理主键和逻辑主键。         每一张数据库的表,都可以使用自增长的id字段作为物理主键。 多表之间的外键关
阅读本文

数据库学习任务四:数据读取器对象SqlDataReader、数据适配器对象SqlDataAdapter、数据集对象DataSet

数据库应用程序的开发流程一般主要分为以下几个步骤:创建数据库使用Connection对象连接数据库使用Command对象对数据源执行SQL命令并返回数据使用DataReader和DataSet对象读取和处理数据源的数据      在与数据库的交互中,要获得数据库访问的结果可以两种方法实现,一是通过DataReader对象从数据源中获取数据并进行处理;二是通过DataSet对象将数据存
阅读本文

如何在.Net中使用MongoDB

如何在.Net中使用MongoDB  最近在研究mongodb,针对.net 中使用mongodb的文章要么是早期的驱动版本,要么资料很少,所以写个随笔记录一下什么是MongoDB  MongoDB是基于文档的存储的(而非表),是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的
阅读本文

Hibernate学习笔记二:Hibernate缓存策略详解

一:为什么使用Hibernate缓存:  Hibernate是一个持久层框架,经常访问物理数据库。  为了降低应用程序访问物理数据库的频次,从而提高应用程序的性能。  缓存内的数据是对物理数据源的复制,应用程序在运行时从缓存中读取数据,在特定时间或事件会同步缓存和物理数据源的数据 二:什么是Hibernate缓存:  Hibernate缓存分为两种:一级缓存,二级缓存。    1.一级缓存:又称为
阅读本文

JDBC(二)

二、编写JDBC程序2.1、搭建实验环境      1、在mysql中创建一个库,并创建user表和插入表的数据。  SQL脚本如下: 1 create database jdbcStudy character set utf8 collate utf8_general_ci; 2 3 use jdbcStudy; 4 5 create table users( 6 id i
阅读本文

C#连接MySql数据库代码

之前学JAVA的时候,老师讲数据库的时候,讲到可以用一个类来连接数据库,叫做Dao层,今天要用C#做上位机,也有一些数据要写到数据库中去,我就想,能不能也给C#写一个这样的Dao层来连接数据库,我就去百度,结果看到有一个帖子写了这样的,我就把代码复制下来看,但是他直接在这个类里面处理数据了,于是我综合了Java的代码,和这份代码,改出来了现在连接数据库的类DButil 1 public cla
阅读本文

数据库—关系型数据库

数据库分为层次模型、网状模型、关系模型,下面我们就来看看JAVA中经常用到的关系模型。关系模型是指把世界看成是由实体和联系组成的,所谓实体就是指在现实世界中客观存在并可相互区别的事物,其中,实体所具有的某一特性称为属性。表是关系型数据库的核心单元,它是数据库存储的地方。简单的讲,关系型数据库是以表作为实体,以主键和外键关系作为实体之间联系的一种数据库结构。
阅读本文

C#打开SDE数据库的几种方式总结

谢灿软件1.通过指定连接属性参数打开数据库  /// <param name=“server“>数据库服务器名</param> /// <param name=“instance“>SDE的端口,默认安装时“port:5151“</param> /// <param name=“user“>SDE的用户名</param> /// <param nam
阅读本文

2.redis通用keys操作

1.查询所有keykeys *2.模糊匹配keys si[t|m]e3.匹配某个不确定的字符keys si?e4.随机返回keyrandomkey5.查询key类型type age6.判断key是否存在exists site7.删除keydel age8.重命名keyrename site wangzhi9.重命名key,如果重命名的key存在,不覆盖;重命名的key不存在,就新建key10.使用
阅读本文

简单的数据库连接池实例(java语言)

1.概述频繁的创建和销毁数据库连接消耗非常多的系统资源,创建一个池子, 管理一定数量的连接,用的时候去池中取,用完了放回池中,这时比较通用的做法。 2.关键字LinkedList  synchronized  InvocationHandler  CountDownLatch 3. 代码3.1 ConnectionPool.javapackage com.rocky.pool; import ja
阅读本文

我所理解的Mongodb 的优势

更高的写负载 处理很大的规模的单表:数据库扩展是非常有挑战性的,当单表格大小达到5-10GB时,MySQL表格性能会毫无疑问的降低。如果你需要分片并且分割你的数据库,MongoDB将很容易实现这一点。 不可靠环境保证高可用性设置副本集(主-从服务器设置)不仅方便而且很快,此外,使用MongoDB还可以快速、安全及自动化的实现节点(或数据中心)故障转移。使用基于位置的数据查询,查的更快MongoD
阅读本文

Mongodb 的劣势

MongoDB中的数据存放具有相当的随意性,不具有MySQL在开始就定义好了。对运维人员来说,他们可能不清楚数据库内部数据的数据格式,这也会数据库的运维带来了麻烦。 1. 事务关系支持薄弱。这也是所有NoSQL数据库共同的缺陷,不过NoSQL并不是为了事务关系而设计的,具体应用还是很需求。2. 稳定性有些欠缺,这点从上面的测试便可以看出。3. MongoDB一方面在方便开发者的同时,另一方面对
阅读本文

Oracle 12C 新特性之 恢复表

RMAN的表级和表分区级恢复应用场景:1、You need to recover a very small number of tables to a particular point in time. In this situation, TSPITR is not the most effective solution because it moves all the objects in t
阅读本文

Java代码工具箱之链接Oracle

1. 需要oracle的 odbc  jar包2. 代码3. 注意:ps对象和statement对象最好用完立即释放,尤其是读写数据库代码出现在 for 循环语句中时。    否则会出现游标不够的情况,超出游标最大数等游标错误!4. 案例:我在将Excel导入到Oracle数据库中时,由于搜索网上代码,未深刻领会。在遍历Excel的每一行数据时,都执行 pre = con.prepareState
阅读本文

转载 hibernate一级缓存和二级缓存的区别

缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。  缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓
阅读本文

Yii2.0 数据库查询

User::find()->all(); 此方法返回所有数据; User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子); User::find()->where([‘name‘ => ‘小伙儿‘])->one(); 此方法返回 [‘name‘ => ‘小伙儿‘] 的一条数据; User::find()->where([‘name‘ => ‘小伙
阅读本文

【Oracle】 oracle数据库的并发初步理解

先从一个列子来说:我们经常听到说某某网站的每天访问用户数有几十,几千,几百万甚至上千万,同时在线用户数有几万,几十万的。从这个列子我们来分析,数据库并发的概念。首先,这儿有两个名词,一个是每天访问的用户数,一个是同时在线用户数。那么这两个数据是不是就是数据库的并发数呢?Oracle数据库的一个相对比较稳定的并发数是200左右,也就是说一台比较好的服务器,并发数在200时,还能够正常的运行,不会死机
阅读本文

Java中判断进行数据库批量操作是否成功

第一种方法是向公司中的前辈学来的:1 int[] result = XXX.batchSave(XXX, XXX); 2 for (int i : result) { 3 if (i < 0 && i != statement.SUCCESS_NO_INFO) 4 return false; 5 } 6 return true;第二种是我之前自己想的,一直在用的:1 //JFinal中是用Db完成
阅读本文