
数据库
梵城中的燕
生如夏花之绚烂
展开
-
oracle索引(二)使用规则
好的索引可以提高我们所写的项目的性能,坏的索引则可能会降低性能和效率!oracle使用索引的规则分为3种,一种可以可以使用,另一种是会降低性能,最后一种索引直接停用!可以使用: 1.索引适合建立在大表上. 2.建立的索引列应该是where条件经常使用的. 4.在需要排序和分组的索引列上建立降低性能: 1.如果结果集在所有数据3%到15%值下,如果这些东西多则不建议使用!停用索引: 1.使用原创 2016-11-18 17:29:35 · 755 阅读 · 0 评论 -
mybatis的动态sql标签
MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意转载 2017-01-12 13:47:55 · 716 阅读 · 0 评论 -
‘’文字与格式字符串不匹配‘’和“格式代码出现俩次”和时间传到前台不符合格式
这里说的都已oracle为例。 一直纠结一个问题,往数据库存date格式一个数据,出来为啥子就是long类型的呢? 今天才明白,数据库不管你存是什么格式的,那么他存储时间格式是固定的。想要返回用户自定义格式的时间,我常用的俩种方法: 在get中设置,这是因为我用springmvc,数据回到页面需要调用get方法。 示例://转化时间格式 public String getUpdate原创 2017-01-22 16:39:40 · 1216 阅读 · 0 评论 -
oracle实施问题Could not get a databaseId from dataSource
前几天去业主哪里实施,项目启动失败,并且报错这样的错误,但是在正常的开发环境中不可能包这样的错误的。 我们用的数据库是oracle,而这个”Could not get a databaseId from dataSource”这个错误很明显是oracle的错误,一开始我以为是数据源出了问题,ip或者是用户密码,实例等出了问题,但是一番改正,项目启动还是报这个错误。 百般实验之后,确定是配置问题,原创 2017-04-24 14:50:46 · 27922 阅读 · 2 评论 -
oracle时间函数,new_day()
1原创 2017-05-18 11:07:58 · 1403 阅读 · 0 评论 -
oracle时间函数(二),trunc()
oracle的trunc()函数是一个截取函数,也就是说,这个函数也可以用来截取字段中的字符,这里我来说截取时间。trunc()的基本格式:trunc(datetime,String str) datetime代表时间,字段也好,时间也行,str代表要截取的时间。上例子://取年份,表示该年1月1号,00:00::00select trunc(sysdate,'yy') from dual;原创 2017-05-18 11:32:48 · 665 阅读 · 0 评论 -
oracle时间函数(三)last_day(),add_months(),month between()
正常来说,日期的推算可以用直接字段加减,比如:select new_time+1 from db_user;select new_time-23 from db_user;last_day()函数,直接会展示本月的最后一天。select lase_day(sysdate) from dual;add_months()函数,前后几个月:select add_months(sysdate,3) from原创 2017-05-18 13:59:00 · 7345 阅读 · 0 评论 -
oracle函数总结
这几天抽时间对sql做了下强化,这里单独对oracle函数进行总结。其实,主要是对时间的操作,那么主要说下时间: 不一一分开了,直接上了://当前时间SELECT SYSDATE FROM DUAL;//下一个星期几的时间,这里是下个星期4的时间select next_day(sysdate,5) from dual;//本月第一天,其实这个最容易得到了select trunc(sys原创 2017-06-19 13:44:43 · 299 阅读 · 0 评论 -
log4j总体小结和getresource()
以前一直是人家搭好框架,配置好东西,我直接写代码,这几天想自己弄个log4j,竟然一直报错,菜鸡啊。。。。于是,整了一天,还算有成果的成功了。首先,使用log4j,最基本的3个jar文件:slf4j-api-1.7.7.jarslf4j-log4j12-1.7.21.jarlog4j-1.2.17.jar这是实现日志记录最基本的,不然,各种报错,这个类没有加载到,那个类没有找到。。。。完成这些,原创 2017-06-30 14:35:33 · 448 阅读 · 0 评论 -
oracle 缺失右括号 (missing right parenthesis)
这里简单的记录一下! 这种无非是sql有问题:第一种可能:sql真的确实括号,或者是sql的拼接问题,仔细一找就出来了。 另一种是我刚遇到的,sql嵌套子查询中用了 order by。// 这里只粘贴一部分AND HIS.ASSORTMENT_CODE IN (SELECT ASSORTMENT_CODE FROM ASSOR***CREW WHERE COMPANY_CODE = ...原创 2018-07-27 16:27:02 · 16168 阅读 · 0 评论 -
mybatis和hibernate
hibernate的一大亮点是面向对象编程,这和java的开发不就不谋而合了,而且,程序人员也习惯面向对象的开发;但是mybatis只能是手写sql.hibernate对jdbc封装的很细致,对各种模板都做了归总,对各种数据库也做了处理,如果中途开发换数据库的话,那么对于程序员的工作是少的;但是mybatishaunted就需要在写一套数据库操作了.hibernate的扩展性好,比如可以用全称无原创 2016-11-24 20:45:27 · 424 阅读 · 0 评论 -
hibernate的get()和load()介绍一
hibernate作为一个开源的轻量级的mvc的数据持久层框架,对jdbc进行了细致的封装,让使用更加简单,是程序员更加可以注重对业务逻辑的编写.但是,因为hibernate在采用的面向对象的编程,是我们在编程过程中需要对面向对象的语言进行解析,生成sql语句,然后进行数据的封装耗时比较多.这也体现了hibernate的性能是不如jdbc和mybatis的.但是hibernate也进行了性能提升的改原创 2016-11-24 11:38:31 · 514 阅读 · 0 评论 -
hibernate的get()和load()介绍二
接着上一篇.hibernate的get()和load()介绍一其实,get()和load()的实现机制也是不一样的,当然这是更深层次的东西,get()查出来的就是当前对象,如果数据库没有数据,那么get()返回的值是空,所以,如果对返回值做操作时,我们要注意空指针了. load()是延迟装载,等到你用的时候在查询,那么是说我们执行方法什么都不做吗?不是的,load()用的一个代理,执行方法是产生一原创 2016-11-24 12:04:47 · 442 阅读 · 0 评论 -
exists和in异同
先看例子:select * from role r where roleId in(select roleId from user)select * from role r where roleId exists(select roleId from user where userId=r.roleId)这里用in或者exists,最后结果是一样的,都是列出user表中存在原创 2016-11-18 18:28:38 · 1962 阅读 · 0 评论 -
oracle索引(一)索引创建
索引就是为了加快查询的速度,特高我们开发项目的性能,利用的原理就是减少io流!优点: 1.索引就是为了加快查询速度,所以好的索引的查询速度快! 2.在索引插叙过程中,会对数据进行排序,减少排序时间,这个在分组或者排序操作中是很有用的. 3.加快表和表之间的联系. 4.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 缺点: 1.使用索引,需要用到相对原来磁盘和内存的1.2倍大小原创 2016-11-18 17:10:45 · 495 阅读 · 0 评论 -
join连接查询之外连接和交叉连接
这个是个重点!join连接的分为内连接,外连接和交叉连接.外连接分左外连接:用到关键字left join,使用是以left jion关键字左边的表作为基表并且全部展示,右边的表和基表关联的信息展示! 另一种展示方式,用(+)标示:select * from db_stu s left join db_class c on s.cid = c.cid;或者:select * fr原创 2016-11-18 18:52:18 · 562 阅读 · 0 评论 -
内连接和自然连接
内连接和等值连接是一样的! 自然连接展示俩个表中字段相同而且数据类型一样的.内连接(inner join):select * from db_stu s inner join db_class c on s.cid = c.cid;或者是:select * from db_stu s,db_class c where s.cid=c.cid;自然连接(natural join)原创 2016-11-18 19:01:20 · 2207 阅读 · 0 评论 -
序列
我的天,序列其实就是一个自我循环,可以递增,可以递减,可以重复循环的id生成器,个人感觉,我们在些项目的时候,有uuid就够了,为毛还要有序列这个东西呢?… 删除: drop sequence 序列名 ;CREATE SEQUENCE sequence //创建序列名称 [INCREMENT BY n]//递增的序列值是n如果n是正数就递增,如果是负数就递减 [START WITH n]原创 2016-11-18 19:45:45 · 470 阅读 · 0 评论 -
触发器
简单介绍一下dml(数据库操作语言)的触发器.触发器就是以一种特殊的性质存在数据库中,定义每当新增,修改,删除等等操作是自动触发的机制.基本语法格式:create or replace trigger myTri before|after insert|update|delete on myTable for each row ……原创 2016-11-18 19:56:27 · 493 阅读 · 0 评论 -
oracle事务
事务是一种机制,在数据库的修改操作中需要用到,比如说hibernate中推荐使用事务,spring中aop控制事务,mybatis中工厂提交分手动和自动!等等,看见事务的重要性!!事务:一条或者一组sql语句组成的工作单元,这一个工作单元作为一个整体,要么都成功,要么都失败!事务特性(acid):原子性:事务也就是工作单元是最小的操作组件,不可再分.一致性:事务操作要么都成功,要么都失败.不变原创 2016-11-18 20:36:24 · 506 阅读 · 1 评论 -
储存过程
存储过程是一个PL/SQL程序块,且过程被创建后以实体对象的形式保存在数据库中,以供用户使用。存储过程可以接受零个或多个参数作为输入(in)或输出(out)、或既作输入又做输出(in/out)。与函数不同,存储过程不能由SQL语句直接使用,只能通过execut 命令或PL/SQL程序块内部调用。语法:create [or replace] procedure 过程名 [(参数列表)] a原创 2016-11-18 20:44:26 · 730 阅读 · 0 评论 -
jdbc查询
写一个例子:public class testObject { public List query(){ //声明连接 Connection conn=null; List list=new ArrayList(); //声明连接对象 PreparedStatement ps=null; //声明结果集 ResultSet rs=null;原创 2016-11-23 21:12:37 · 538 阅读 · 0 评论 -
oracle 和 mysql 的自定义函数的区别
oracle 和 mysql 的自定义函数的区别整体格式mysqloracle基础操作赋值声明循环内建函数其他注意因为项目需要,我主要是把 mysql 的自定义函数 迁移到 oracle上, 所以,这里重点实在oracle。#而他俩的区别,主要在几个部分:整体格式; 基础操作 和 内建函数,还有其他需要注意的。整体格式mysqlcreate function functionName(p...原创 2019-01-18 00:44:28 · 1679 阅读 · 0 评论