问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SSH框架中Oracle语句与SQLServer语句用法是一样吗?

发布网友 发布时间:2022-04-08 08:04

我来回答

4个回答

懂视网 时间:2022-04-08 12:25

oralce中面向对象的基本语法

一:抽象数据类型

创建地址类型,一定要加as object,还可以在类型中加过程或方法

create or replace type address as object (

       province varchar2(10), --省份属性

       city varchar2(10) --市属性

) not final; --not final表示该类型可以有子类型

 

定义一个子类型,under address说明这个类型继承至address类型

create or replace type detailAddress under address (

       street varchar2(20) --街道属性  第3个成员

);

 

创建员工信息表,最后一列是detailAddress类型

drop table empInfo

create table empInfo (

       eName varchar2(20) ,  --员工姓名

       eSex char(2),  --性别

       eAge int, --年龄

       eAddress detailAddress   --员工地址

);

 

--增加数据,只能用构造方法

insert into empInfo values(‘aaa‘, ‘男‘, 28, detailAddress(‘湖北‘, ‘襄樊‘, ‘八一路‘));

 

--查询

select * from empInfo where eSex = ‘男‘;

select * from empInfo e where e.eAddress.city = ‘武汉‘; --如果查询条件包

 

含属性必须用表的别名

--更新有2种方式:

--第一种方式:整体更新

update empInfo e set e.eAddress = detailAddress(‘湖北‘, ‘武汉‘, ‘武昌‘) where e.eName = ‘ccc‘;

--第二种方式:只更新抽象类型的某一列

update empInfo e set e.eAddress.city = ‘武汉‘ where e.eName = ‘ccc‘;

 

--删除

delete from empInfo e where  e.eAddress.city = ‘武汉‘;

 

--为抽象数据类型的属性建立索引

create index idxemp on empInfo(eAddress.city);

--删除

drop table empInfo;

drop type address force; --强制删除抽象类型 

 

二:对象表,表中的每一行就是一个对象

--创建抽象数据类型person,并作为基类型

create or replace type person as object (

       pName varchar2(20),  --姓名

       pSex char(2),   --性别

       pAge int      --年龄

) not final;

 

--创建子类型student,继承person,后面不要加as object

create or replace type student under person (

       stuId int

);

 

--创建对象表stuInfo

create table stuInfo of student;

--为对象表创建主键约束

alter table stuInfo add constraint pk_stuInfo primary key(stuId);

--插入数据,当普通表插入

insert into stuInfo values(‘aaa‘, ‘男‘, 29, 1001);

--插入数据,用构造方法

insert into stuInfo values(student(‘bbb‘, ‘男‘, 26, 1002));

--查询,当普通表用

select * from stuInfo where stuId = 1002;

 

--更新和删除都用普通的sql语句即可

update stuInfo set pAge = 29 where pName = ‘ccc‘;

delete from stuInfo where stuId = 1001;

 

--ref(表别名)函数用来返回对象的OID,也就是对象标识符,对象表也有rowid

select rowid,ref(s) from stuInfo s;

--创建学生分数表,注意外键

create table stuScore (

       stu ref student, --stu这一列的值必须出现在stuInfo表中,且stu这一列存的对象的OID而不是对象本身

       score int  --分数

);

insert into stuscore select ref(s), 90 from stuInfo s where stuId = 1001;

insert into stuscore select ref(s), 80 from stuInfo s; --插入3行数据

insert into stuscore select ref(s), 70 from stuInfo s where stuId = 1003;

 

--查询

select * from stuScore;

--deref(列名)函数可以把OID还原为对象,主键列显示有问题

select deref(s.stu), score from stuScore s where s.stu.stuId = 1001;

 

--修改,以下2个都可以

update stuScore set score=100 where stu = (select ref(s) from stuInfo s where stuId = 1001);

update stuScore s set score = 99 where s.stu.stuId = 1001;

--删除

delete from stuScore where stu = (select ref(s) from stuInfo s where stuId = 1001);

delete from stuScore s where s.stu.stuId = 1001;

 

三:可变数组

--就是一个可以存储多个值的有最大长度的数组,数组的成员可以是任意类型

--建立一个可变数组类型,长度是10,存放的数据类型是number(4)

create or replace type arrType as varray(10) of number(4);

 

create or replace type scoreType as object (

       subName varchar2(10),

       score int

);

--创建一个长度为10的可变数组,存放数据类型是scorType

create or replace type arrScoreType as varray(10) of scoreType;

--创建学生信息表

--drop table stuInfo;

create table stuInfo (

       stuId int primary key,

       score arrScoreType  --可变数组,最多10个成员

);

--插入数据,用可变数组的构造函数

insert into stuInfo values(1, arrScoreType(

       scoreType(‘sql‘, 50), scoreType(‘C#‘, 80), scoreType(‘java‘, 90)));

insert into stuInfo values(2, arrScoreType(

       scoreType(‘sql‘, 60), scoreType(‘C#‘, 85), scoreType(‘java‘, 95), scoreType(‘html‘, 60)));

insert into stuInfo values(3, arrScoreType(

       scoreType(‘sql‘, 70), scoreType(‘java‘, 93)));

--查询

select * from stuInfo;  --查询结果是集合

--如何才能查询出可变数组里的数据呢?思路是:用table函数把集合转化为表,然后再从这个表查询数据

select * from table( var cpro_id = "u6292429";

热心网友 时间:2022-04-08 09:33

可以的 那个是hibernate自己封装的sql 自己回去识别你的配置文件 是用的什么方言的 如果是Oracle它自己会转换成Oracle的 ssh整合 记住 hibernate就是对持久层 也就是对以前的JDBC进行了封装而spring做了一个管理 也就是依赖注入的作用 其他的都没有变

热心网友 时间:2022-04-08 10:51

可以使用这样添加,使用Hibernate的一个好处就是你不用考虑你是用什么数据库,你只需要在hibernate.cfg.xml中对session-factory进行简单的配置就可以,其中主要配置如下几个属性:比如我使用MYSQL数据库配置如下:<session-factory>
<property name="show_sql">true</property>
<property name="myeclipse.connection.profile">mysql</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/test
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property></session-factory>如果你想使用oracle数据库,你只需要修改配置就行,这个可以在MyEclipse中修改,配置会自动生成。这样,你就能完全用面向对象的方式去操作数据库,不用考虑你用什么数据库。

热心网友 时间:2022-04-08 12:26

可以使用这样添加,使用Hibernate的一个好处就是你不用考虑你是用什么数据库,你只需要在hibernate.cfg.xml中对session-factory进行简单的配置就可以,其中主要配置如下几个属性:比如我使用MYSQL数据库配置如下:<session-factory>
<property
name="show_sql">true</property>
<property
name="myeclipse.connection.profile">mysql</property>
<property
name="connection.url">
jdbc:mysql://localhost:3306/test
</property>
<property
name="connection.username">root</property>
<property
name="connection.password">root</property>
<property
name="connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<property
name="dialect">
org.hibernate.dialect.MySQLDialect
</property></session-factory>如果你想使用oracle数据库,你只需要修改配置就行,这个可以在MyEclipse中修改,配置会自动生成。这样,你就能完全用面向对象的方式去操作数据库,不用考虑你用什么数据库。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 applinks是什么 我的浏览器的收藏夹处总会多出Links文件夹,我删去后不定什么时候就又冒出来了,有时候根本就删不了,该怎 世界之窗3浏览器怎样删除links文件夹,它是空的,但右键单击删不掉! 苹果手机qq怎么设置隐身 为什么不能创建link文件夹 iphone上qq要怎样设制对某个人隐身? 世界之窗收藏夹中LINKS这个文件夹怎么才能不再生? 如何使用links方式安装Eclipse插件 扩展名为link是什么类型的文件 关于我的文档下的“链接(links)”文件夹 苹果上QQ怎么隐身不被别人看见 我有50块散钱,想去银行换一整张50的可以么? 去银行可以用散钱兑换100元人民币吗? 换几千块十元,二十元的散钱可以吗? 家里有很多一块钱的纸钱,去银行能换整的吗? 可以到银行找散一张50元,换成50张1元吗 没有该银行的卡,可不可以在这个银行拿散钱换整钱。换钱需不需要费用? 银行能不能将散钱换成整钱,我有很多一元钱,去普通店铺兑人家也不收 可以拿散的纸币去银行换整的吗 拿着一堆散钱可以去银行存吗 links.html是个什么文件 打开360安全卫士桌面上就出现个links文件夹? 向MyEclipse里放插件,应该放在哪个文件夹下 myeclipse的link插件安装方式 如何删除世界之窗浏览器3.O收藏栏的Links文件夹 在其他电脑拷贝一个links文件夹到电脑,有桌面快捷方式的,放到C盘用户里面后桌面的东西全部不见了? 安装myeclipse一定要安装 eclipse吗? 激萌抠图在哪里,详细教程 这种p图是用什么软件p的? 美图秀秀、天天p图和激萌哪个好用? 天天p图好用还是激萌好用,谢谢! 为什么冰箱的冷藏室结冰 冰箱的冷藏室结冰的解决办法介绍 芝柯xt4131a打印机一打印就死机 作为新手如何理解Oracle与SQL Server关于数据库名、表名的理解。 里的视频怎样才能下载?要先下载什么软件吗? 二十则想起来主恩典歌词 如果没有主的爱歌词 歌词:献给妈妈一朵玫瑰花,想起妈妈的栽培,你照顾我身体永健也关心灵魂生命 要求许嵩的三首很有诗意的歌的歌词(一定要是完整的歌词) 很有诗意,最好带些评论的!! 歌词恩恩恩是什么歌?