
数据库
文章平均质量分 61
小城风带香
好好学习,天天向上
展开
-
MyBatis-spring和spring JDBC批量插入Mysql的效率比较
工具框架用spring-batch,数据库是mysql(未做特殊优化)。比较数据框架mybatis和spring jdbc的插入效率。 Mybatis三种实现:1、mybatis的官方写法Java代码 public void batchInsert1(List poilist) throws Exception { Sql转载 2016-06-16 19:59:04 · 878 阅读 · 0 评论 -
MyBatis快速入门
一、Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。二、my转载 2016-03-03 18:48:20 · 321 阅读 · 0 评论 -
sql之left join、right join、inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------------------------表A记录如下:aID aNum1转载 2016-01-11 10:15:46 · 338 阅读 · 0 评论 -
MySql存储过程—变量
1、变量的定义在Mysql里面可以像我们写代码中一样定义变量来保持中间结果,看下面的格式:[sql] view plaincopyDECLARE variable_name datatype(size) DEFAULT default_value; DECLARE相当于关键字,有点类似var,表示定义一个变量;然后转载 2016-01-04 17:06:27 · 462 阅读 · 0 评论 -
预处理语句
预处理语句定义:你可以把它们想成是一种编译过的要执行的SQL语句模板,可以使用不同的变量参数定制它。预处理语句具有两个主要的优点:查询只需要被解析(或准备)一次,但可以使用相同或不同的参数执行多次。当查询准备好(Prepared)之后,数据库就会分析,编译并优化它要执行查询的计划。对于复杂查询来说,如果你要重复执行许多次有不同参数的但结构相同的查询,这个过程会占用大量的时间转载 2015-12-31 16:55:51 · 1406 阅读 · 0 评论 -
MySQL中视图的安全验证方式
DEFINER:指定视图的创建者(或者说属主,虽然MySQL中的对象其实不注重属主,这点与ORACLE数据库极为不同),默认当然就是执行CREATE VIEW语句的CURRENT_USER,但是创建时也可以指定不同的用户做为创建者(或者叫视图所有人); SQL SECURITY:视图查询数据时的安全验证方式,有两处选项:DEFINER:这个不是指创建者了,而是说在创建视图时验证是否有转载 2015-12-31 15:23:00 · 378 阅读 · 0 评论 -
MySQL 加锁处理分析
出处:http://hedengcheng.com/?p=7711 背景 11.1 MVCC:Snapshot Read vs Current Read 21.2 Cluster Index:聚簇索引 31.3 2PL:Two-Phase Locking 31.4 Isolat转载 2015-11-19 13:45:59 · 366 阅读 · 0 评论 -
JDBC、JTA、Spring的事务管理
Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作。 这样可以防止出现脏数据,防止数据库数据出现问题。开发中为了避免这种情况一般都会进行事务管理。JD转载 2015-10-15 11:28:13 · 615 阅读 · 0 评论 -
MyBatis学习4---使用MyBatis_Generator生成Dto、Dao、Mapping
由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类、Dao接口类甚至Mapping映射文件。一、建立表结构CREATE TABLE `user` ( `id` varchar(50) NOT NULL, `username` varchar(18)转载 2015-10-10 19:22:23 · 372 阅读 · 0 评论 -
MyBatis注解Annotation介绍及Demo
MyBatis可以利用SQL映射文件来配置,也可以利用Annotation来设置。MyBatis提供的一些基本注解如下表所示。注解目标相应的XML描述@CacheNamespace类 为给定的命名空间(比如类)配置缓存。属性:implemet转载 2015-10-10 18:03:25 · 657 阅读 · 0 评论 -
Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到SpringMybatis在与Spring集成的时候可以配置 MapperFactoryBean来生成Mapper接口的代理. 例如bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">转载 2016-03-31 14:48:01 · 404 阅读 · 0 评论 -
MySQL中函数CONCAT及GROUP_CONCAT
一、CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串。使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为+----+--------+| id | name |+----+--------+| 1 | BioCyc |+----+--------+1、语法及使用特点:CON转载 2016-04-29 11:55:41 · 351 阅读 · 0 评论 -
数据库脚本参考
存储过程模版此模版适用于大多数应用存储过程的情况, 且支持命令行执行SP模版/*** SAAS-0000** by** Description:*/DROP PROCEDURE IF EXISTS `example_procedure`;DELIMITER //转载 2016-05-13 16:40:43 · 418 阅读 · 0 评论 -
H2数据库攻略
H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。一、引入Maven依赖在maven中定义H2数据库的版本属性 properties> h2.version>1.3.172h2.v转载 2016-05-26 14:32:43 · 1659 阅读 · 0 评论 -
mysql日志详细解析
MySQL日志:主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志;日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句的执行情况和错误信息等。当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志文件进行数据恢复。错误日志在mysql数转载 2016-05-17 14:44:24 · 300 阅读 · 0 评论 -
使用DBUnit集成Spring简化测试
在上一篇博文使用DBUnit做单元测试中,谈到了使用DBUnit进行数据准备做单测试,可以方便我们的数据准备以及后面的执行结果的验证,简化了我们做单元测试的准备工作,不过其中有一个不足就是,单元测试的代码过多的和DBUnit进行了耦合,并且其中还使用到了SQL,这个感觉非常不好,对于我们使用习惯了Spring进行解耦的人来说,总想使它简化一点,下面这个例子就是使用Spring集成DBUnit,进一转载 2016-05-30 15:17:00 · 528 阅读 · 0 评论 -
spring-test-dbunit的配置和使用
1、数据源配置<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 2、自定义数据库链接 <bean id="dbUnitDatabase转载 2016-05-30 14:36:42 · 4556 阅读 · 1 评论 -
Spring embedded database examples
In this tutorial, we will show you a few examples to configure the embedded database engines like HSQL, H2 and Derby in Spring framework.Technologies used :Spring 4.1.6.RELEASEjUnit 4.1.2Maven转载 2016-05-30 10:36:42 · 2294 阅读 · 0 评论 -
mysql数据库性能优化(包括SQL,表结构,索引,缓存)
优化目标减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。降低 CPU 计算除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了。order by, group by,distinct … 都转载 2016-05-16 14:58:31 · 637 阅读 · 0 评论 -
MySQL性能优化必备25条
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为查询转载 2016-05-16 14:19:25 · 437 阅读 · 0 评论 -
on duplicate key update简单使用
1。最近在做项目的时候,遇到这样的一个问题,就是我每做完一件事情,都要更新一下统计表,然而要更新统计表,就要根据主键去统计表里面去查询是否已经有这样的一条记录,如果有那么就更新,如果没有那么就插入一条记录,开始我就是这么干的,结果被老大给否决了,他说可以用on duplicate key update去做。下面就实际操作一下吧:表结构:+-----------+---------+转载 2016-04-19 15:32:03 · 417 阅读 · 0 评论 -
Mysql开发规范
一、表设计数据库对象名称不要超过30个字母,越短越好数据库对象名称使用小写字母,以'_'下划线分隔,禁止中文拼音、空格数据库对象名称要有意义,建议使用名词,尽量不使用缩写单词(如javaee特殊含义)数据库对象尽量有comment注释标明含义单表的数据量预估,纯INT不超1000万,含CHAR不超500万单表字段数上限控制在20~50个。纯INT字段不超50个,CHAR(10)字段不超20转载 2016-05-13 16:43:28 · 326 阅读 · 0 评论 -
数据库访问性能优化
特别说明:1、 本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识;2、 本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于SSD技术的数据库;3、 本文未深入数据库优化中最核心的执行计划分析技术。 读者对像:开发人员转载 2015-09-22 09:04:22 · 549 阅读 · 0 评论 -
数据库水平拆分和垂直拆分区别
数据库水平拆分和垂直拆分区别(以mysql为例) 案例: 简单购物系统暂设涉及如下表:1.产品表(数据量10w,稳定)2.订单表(数据量200w,且有增长趋势)3.用户表 (数据量100w,且有增长趋势)以mysql为例讲述下水平拆分和垂直拆分,mysql能容忍的数量级在百万静态数据可以到千万 垂直拆分:解决问题转载 2015-10-08 23:50:25 · 421 阅读 · 0 评论 -
redis连接远程服务器
Redis默认端口号为127.0.0.1,端口号默认为:6379。此处本机访问远程IP为132.1.114.44的计算机,则首先要在已经安装了Redis的远程计算机上打开其服务器,redis.server.exe接下来在本机运行redis.cli.exe,也可以通过命令行实现:输入-h 远程计算机IP -p 6379即可连接:OK了,接下来如果想用自己写的客户端什么的连接远程R转载 2015-10-21 14:55:42 · 1016 阅读 · 0 评论 -
sqlserver08数据库表导入Oracle方法
下载NavicatForOracle,连接oracle;然后接着:测试连接,如果可以则继续,如果不行则:正常应该就能连接了,然后:到了这一步差不多就已经没问题了,就往下走,选要导入的表就行。这个方法只能实现表的导入,不能实现存储过程等的导入。其他东西还需要其他方式才行。原创 2015-05-29 00:48:36 · 563 阅读 · 0 评论 -
在ORACLE存储过程中创建临时表
在ORACLE存储过程中创建临时表 存储过程里不能直接使用DDL语句,所以只能使用动态SQL语句来执行--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行) --ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。CREATE OR REPLACE P转载 2015-05-31 09:22:31 · 594 阅读 · 0 评论 -
SQL Server 存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 存储过程中可转载 2015-05-29 16:58:05 · 337 阅读 · 0 评论 -
总结win7安装Oracle方法
捣鼓了两天,终于在win7上安上Oracle了。1:下载Oracle安装包。然后,设置兼容性,修改配置文件database\stage\prereq\db\refhost.xml和database\ install\oraparam.ini。2:setup.exe安装。我在安装的时候点击setup.exe死都出不来安装界面。后来经过尝试,按如下操作后多点几次setup.exe就能出来了,切原创 2015-04-22 18:11:51 · 579 阅读 · 0 评论 -
Oracle10g 安装步骤
Oracle10g 安装预备步骤取得 Oracle 10g 安装程序,或从 Oracle 技术网(OTN)下载光盘映像。在评估阶段您可以免费下载和使用无技术限制的全功能 Oracle,但在正式的商业场合应用时需要购买法律授权。您需要约 1.2GB 磁盘空间用于下载及解压缩,并需要 2GB 以上的磁盘空间用于安装。2Oracle 10g 安装步骤运行解压缩转载 2015-04-22 17:56:24 · 549 阅读 · 0 评论 -
Environment variable ORACLE_SID not defined. Please define it. (oracle 10g 11g数据库创建完成后控制台不可用解决方法)
Environment variable ORACLE_SID not defined. Please define it. D:/oracle/product/10.2.0/db_1/BIN>emctl start dbconsoleEnvironment variable ORACLE_SID not defined. Please define it. D:/o转载 2015-04-22 17:46:23 · 1081 阅读 · 0 评论 -
Oracle中"listener does not currently know of SID given in connect descriptor"
一次连接数据库怎么也连接不上,查了多方面资料,终于找到答案,总结首先应该保证数据库的服务启动 在myeclipse的数据库视图中点 右键->new 弹出database driver的窗口, Driver template选择oracle(thin driver), Driver name 输入oracle connection URL=jdbc:oracle:thin转载 2015-04-22 19:03:01 · 620 阅读 · 0 评论 -
如何知道是否Oracle安装成功
测试监听(Listener)是否启动,启动成功如下图:3.2、测试能否用sqlplus连接上:使用sqlplus登陆命令格式如:sqlplus 用户名/密码@全局数据库实例名 as 权限(NORMAL,SYSDBA,SYSOPER)进入到oracle安装目录的bin目录下,执行如下代码,查看能否连接:、使用sys用户登陆:使用sqlplus.exe "/as sys原创 2015-04-22 17:58:37 · 12812 阅读 · 1 评论 -
Centos6.5使用yum安装mysql——快速上手必备
第1步、yum安装mysql[root@stonex ~]# yum -y install mysql-server安装结果:Installed: mysql-server.x86_64 0:5.1.73-3.el6_5转载 2015-03-28 11:36:20 · 447 阅读 · 0 评论 -
浅谈数据库中的存储过程
一、存储过程与函数的区别: 1.一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。 2.对于存储过程来说可以返回参数(output),而函数只能返回值或者表对象。 3.存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。 二、存转载 2015-05-30 00:24:33 · 373 阅读 · 0 评论 -
oracle存储过程中的select语句
导读:在oracle数据库存储过程中如果用了select语句,要么使用"select into 变量"语句要么使用游标,oracle不支持单独的select语句。先看下这个存储过程:create or replace procedure pro_test is begin select * from t_test; end pro_test;这个存储过程正确转载 2015-05-30 22:12:51 · 8821 阅读 · 0 评论 -
oracle调用存储过程和函数返回结果集
在程序开发中,常用到返回结果集的存储过程,这个在mysql和sql server 里比较好处理,直接返回查询结果就可以了,但在oracle里面 要 out 出去,就多了一个步骤,对于不熟悉的兄弟们还得出上一头汗:),这里我简单介绍一下,以供参考, 1 定义包 oracle 返回的结果集需要自定义一个 CURSOR (游标变量)性质的变量,这个要在包头定义,所以要建立一个转载 2015-05-31 09:58:34 · 502 阅读 · 0 评论 -
oracle 插入时间类型无效 timestamp
oracle数据库 时间 TIMESTAMP(6)这是什么类型啊 怎么也插不进数据解决:时间戳类型,参数6指的是表示秒的数字的小数点右边可以存储6位数字,最多9位。插入时,如下方式:insert into test4 values(to_timestamp('2013-12-12 23:23:23.112324233','yyyy-mm--dd hh24:mi:ss.ff'转载 2015-07-23 21:30:13 · 6742 阅读 · 0 评论 -
Oracle导出DMP文件的两种方法
Oracle导出DMP文件的两种方法http://blog.youkuaiyun.com/lanpy88/article/details/7580691导出:方法一:利用PL/SQL Developer工具导出:菜单栏---->Tools---->Export Tables,如下图,设置相关参数即可:方法二:利用cmd的操作命令导入导出:转载 2015-08-17 14:16:48 · 941 阅读 · 0 评论 -
oracle公用分页存储过程
create or replace PROCEDURE Common_Paging( tableName in NVARCHAR2,--表名 fields in VARCHAR2,--查询结果显示字段 wherecase in VARCHAR2,--查询条件 pageSize in NUMBER,--页显示记录数 pageNow in NU原创 2015-07-30 15:07:39 · 421 阅读 · 0 评论