sql数据库

hibernate sql查询

喜夏-厌秋 提交于 2020-02-24 07:39:52
如果你跟我一样比较熟悉SQL,同时不想学习一门新的语言。那么在hibernate中使用Native SQL 查询也是一种不错的方式。 一方面,Native SQL在效率方面有天生的优势; 另一方面,SQL是数据库操作的一种标准,我们与程序、数据库关联很小。如果将来不用hibernate,而是用别的ORM,sql一样好用。 但尽量用标准SQL,而不要用过多方言SQL。 标量查询 最基本的 SQL 查询就是获得一个标量(数值)的列表。 sess.createSQLQuery("SELECT * FROM USER").list(); sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM USER").list(); 它们都将返回一个 Object 数组(Object[])组成的 List,数组每个元素都是 USER 表的一个字段值。Hibernate 会使用 ResultSetMetadata 来判定返回的标量值的实际顺序和类型。 如果不需要在后台进行复杂的处理,可直接将list<Object[]> 转化为json,交给前台去处理。在处理json时,按照数组的方式遍历一个item的属性,属性值为空对应null。 例如我们前台需要一个json格式的包含userName,address,phone的UserInfo列表

【数据库SQL实战】查找所有已经分配部门的员工的last_name和first_name以及dept_no

岁酱吖の 提交于 2020-02-24 05:20:16
题目地址: https://www.nowcoder.com/practice/6d35b1cd593545ab985a68cd86f28671?tpId=82&tqId=29756&tPage=1&rp=&ru=%2Fta%2Fsql&qru=%2Fta%2Fsql%2Fquestion-ranking 题目描述 查找所有已经分配部门的员工的last_name和first_name以及dept_no CREATE TABLE `dept_emp` ( `emp_no` int(11) NOT NULL, `dept_no` char(4) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`)); CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` char(1) NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (`emp_no`));

配置sql server 2000以允许远程访问 及 连接中的四个最常见错误

故事扮演 提交于 2020-02-23 13:08:09
地址:http://www.cnblogs.com/JoshuaDreaming/archive/2010/12/01/1893242.html 配置sql server 2000以允许远程访问适合故障: 1. 用sql企业管理器能访问sql server 2000(因为它是采用命名管道(named pipes)方式进行方式),但用ado.net 方式(udp)不能访问. 2. 采用ado.net方式不能远程访问. 故障的可能原因有: (1).sql server 2000没有安装sql server 2000 sp3a及以上升级包, 还未启用并开放1433端口(udp); (2).系统防火墙未开放1433端口. 解决办法: 一.检查sql server 2000是否已启用并开放1433端口.(在sql2000服务器上) 方法: 开始-->运行-->打开-->执行 "cmd" 命令 -->执行 "netstat -na" 命令. 看是否有无 TCP 127.0.0.1:1433 0.0.0.0:0 LISTENING TCP 192.168.123.98:1433 0.0.0.0:0 LISTENING 如果没有刚表明sql2000端口监听服务未启动. 转第三步. 如果有则转第二步 二.检查sql server 2000服务器所在机器防火墙设置,sql server

oracle11g dataguard完全手册3-failover &active dataguard(完)

。_饼干妹妹 提交于 2020-02-22 18:06:32
五、failover 一般情况下执行failover都是主库已经game over。故障转移将备库转换为主库,但不把原主库(有故障,无法正常工作)切换为备库。当故障转移发生后,你必须重建主库,或者使用闪回数据库功能将主库回退到故障发生前,然后转换其为备库并启用日志应用。 执行failover有几个前提条件如下 1.执行failover的前提 ( 1)检查归档文件是否连续 查询待转换 standby 数据库的 V$ARCHIVE_GAP 视图,确认归档文件是否连接: SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP; 未选定行 如果返回的有记录, 按照列出的记录号复制对应的归档文件到待转换的 standby 服务器。 这一步非常重 要,必须确保所有已生成的归档文件均已存在于 standby 服务器,不然可能会数据不一致造成转换时报错。 文件复制之后,通过下列命令将其加入数据字典: SQL>ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1'; (2)检查归档文件是否完整 分别在 primary/standby 执行下列语句: SQL> select distinct thread#,max(sequence#) over(partition

防止SQL注入的五种方法!!!!!!!

我与影子孤独终老i 提交于 2020-02-22 13:07:51
一、SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。 二、SQL注入攻击的总体思路 1.寻找到SQL注入的位置 2.判断服务器类型和后台数据库类型 3.针对不通的服务器和数据库特点进行SQL注入攻击 三、SQL注入攻击实例 比如在一个登录界面,要求输入用户名和密码: 可以这样输入实现免帐号登录: 用户名: ‘or 1 = 1 – 密 码: 点登陆,如若没有做特殊处理,那么这个非法用户就很得意的登陆进去了.(当然现在的有些语言的数据库API已经处理了这些问题) 这是为什么呢? 下面我们分析一下: 从理论上说,后台认证程序中会有如下的SQL语句: String sql = "select * from user_table where username= ’ “+userName+” ’ and password=’ “+password+” '"; 当输入了上面的用户名和密码,上面的SQL语句变成: SELECT * FROM user_table WHERE username= ‘’or 1 = 1 – and password=’’ 分析SQL语句: 条件后面username=”or 1=1 用户名等于 ” 或1=1 那么这个条件一定会成功; 然后后面加两个-

PL/SQL简单使用——导入、导出数据表

主宰稳场 提交于 2020-02-22 05:19:47
1、使用PL/SQL导出、导入表 在使用PL/SQL操作oracle数据库时,经常使用的一个操作就是将自己写的数据表导出,或者想把他人的数据表导入到自己的数据库中。虽然是很简单的操作,但自己之前一直出错,所以在这里记录一下使用方法。 1.1.导出数据表 在PL/SQL中可以选择导出表结构或者只导出数据或者同时导出数据结构和数据。接下来将一一解说。 1.1.1.导出数据表结构 流程 : Tools –> Export User Objects 最后点击导出就可以了,导出的文件格式为 .sql 查看文本编辑器查看person.sql文件: 1.1.2.导出数据表数据和结构 流程 : Tools –> Export Tables 说明 :包含三种导出方式 Oracle Export Sql Insert PL/SQL Developer 第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最为广泛 。 这里面的Export Executable是环境变量ORACLE_HOME下的bin/exp.exe 第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示错误: table contains one

[转]再见 NoSQL!

人走茶凉 提交于 2020-02-22 04:16:19
为解决大规模数据集合多重数据种类带来的挑战,NoSQL 应运而生,但现在却也遇到了诸多问题,本文作者 Rick Negrin,曾在微软工作 12 年,并在 SQL Server 团队度过大部分光阴,他提出,是时候「和 NoSQL 说再见」了! 作者 | Rick Negrin 译者 | 明明如月 责编 | 唐小引 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 以下为译文: 是时候承认我们早就知道的事实了: NoSQL 并不适合现代应用程序,我们该对它说再见了。 由于数据超过了数据库能够处理的规模,NoSQL 技术就应运而生。这种新型的数据服务的兴起解决了十年前它出现时网络和数据快速增长的问题。NoSQL 还提供了冷存储或批量访问 PB 级数据的低成本的新途径。然而,由于急于解决大数据和高并发的挑战,NoSQL 放弃了数据库的一些高性能和简单易用的核心特性。 对大数据和高并发与高性能和易用性做出的权衡是 NoSQL 在数据库领域做出的最大贡献。将大数据和成熟的关系型结构和灵活性结合到一起,从而产生了一个可伸缩的关系数据库,造就了一场变革。 关系型数据库的发展创造了一个全新的系统,可以处理几乎所有的任务,具有现代应用程序所需的可伸缩性、可靠性和可用性要求。随着从传统的工作任务(例如事务处理应用程序和业务分析)到更新的工作任务

SQL Server2008 统计某个数据库用户表和行计数方法

不羁岁月 提交于 2020-02-22 02:29:45
1:采用临时表和游标的方法:因为单独从这个系统表sysobjects查到的记录只有表名称,而没有表里面记录数(能在sysindexes里查到,不过一个表很多索引的话不好建立关联)故我们采用最笨的方法,先查出sysobjects所有表,然后构建一个临时表,利用游标,一行行的插入数据。 1 CREATE TABLE #T ([name] nvarchar(255),rows bigint) 2 DECLARE @Name nvarchar(255),@Sql nvarchar(4000) 3 DECLARE TName CURSOR FOR 4 SELECT [name] FROM sysobjects WHERE xtype = 'U' 5 OPEN TName 6 FETCH NEXT FROM TName 7 INTO @Name 8 WHILE @@FETCH_STATUS = 0 9 BEGIN 10 SET @Sql='INSERT INTO #T ([name],rows) SELECT '''+@name+''' AS name, COUNT(1) AS row FROM '+@name 11 EXEC(@Sql) 12 FETCH NEXT FROM TName INTO @name 13 END 14 CLOSE TName 15 DEALLOCATE TName

操作EXCEL数据

送分小仙女□ 提交于 2020-02-22 00:55:49
string filePath = @"F:\Tim\UpdatePIMData1\Staff.xls"; private DataSet SearchDataSource() { string strCon; strCon = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; OleDbConnection olecon = new OleDbConnection(strCon); OleDbDataAdapter myda = new OleDbDataAdapter("SELECT StaffID,JoinDate FROM [Staff$]", olecon); DataSet myds = new DataSet(); myda.Fill(myds); return myds; }    /// <summary> /// 写入Excel文档 /// </summary> /// <param name="Path">文件名称</param> public bool SaveFP2toExcel(string Path) { try { string strConn = "Provider

Oracle11G + CentOS 6 DG 搭建及管理

↘锁芯ラ 提交于 2020-02-22 00:17:18
一、准备工作 环境准备 主数据库Oracle Database安装 备服务器Oracle Database software 安装 二、正式配置 三、基本管理 --------------------------------------------------------------分割线------------------------------------------------------------- 一、准备工作 1.环境配置: 主机配置 节点 操作系统 主机名称 IP地址 主库 CentOS6.4_x86_64 dgp 192.168.10.61 备库 CentOS6.4_x86_64 dgs 192.168.10.62 修改主机名: [root@db /]# cat /etc/sysconfig/network[root@db /]# sed -i s/HOSTNAME=.*/HOSTNAME=dgp/ /etc/sysconfig/network[root@db /]# reboot 规划数据库配置 节点 Oracle版本 SID db_name db_unique_name 主库 11.2.0.4 orcl orcl orcl 备库 11.2.0.4 orcl orcl orcl_std 以上完成之后,对两台主机进行以下操作: 1)禁用防火墙 [root@dgp