![HighgoDB数据库1[1].0版本使用手册_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/4b46a00b-857f-4af1-bd7d-e5850b576a3c/4b46a00b-857f-4af1-bd7d-e5850b576a3c1.gif)
![HighgoDB数据库1[1].0版本使用手册_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/4b46a00b-857f-4af1-bd7d-e5850b576a3c/4b46a00b-857f-4af1-bd7d-e5850b576a3c2.gif)
![HighgoDB数据库1[1].0版本使用手册_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/4b46a00b-857f-4af1-bd7d-e5850b576a3c/4b46a00b-857f-4af1-bd7d-e5850b576a3c3.gif)
![HighgoDB数据库1[1].0版本使用手册_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/4b46a00b-857f-4af1-bd7d-e5850b576a3c/4b46a00b-857f-4af1-bd7d-e5850b576a3c4.gif)
![HighgoDB数据库1[1].0版本使用手册_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/4b46a00b-857f-4af1-bd7d-e5850b576a3c/4b46a00b-857f-4af1-bd7d-e5850b576a3c5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HighgoDB数据库开发使用手册目录第一部分 HighgoDB安装配置第1章 windows系统下,安装配置1.1 安装配置1、安装准备及注意事项软件版本:highgo-db-1.0.msi注意:HighgoDB数据库目录,必须安装在NTFS格式 磁盘下2、安装双击highgo-db-1.0.msi图标,进行安装。 安装程序类别的选择及安装目录的选择,如下图:注意安装目录的选择,一定选择NTFS格式的 磁盘。需要一个highgo的账号名称,注意账号密码和校验密码的输入。如果系统中没有highgo账号,将会自动为你创建该账号。初始化数据库,这一步,需要对管理员账号highgo设置口令和重复口令
2、,这个就是以后对数据库进行操作,管理的超级用户和口令。Secondary Logon服务的启动计算机管理-服务和应用程序找到Secondary Logon服务并进行启动 1.2 测试使用1、hgAdmin III管理平台的连接测试 选择Highgo DB Admin然后打开highgo db admin2、psql的连接测试 选择psql至highgo连接highgo数据库,进行测试创建一个表查询数据1.3 程序卸载1、卸载HighgoDB主程序2、删除highgo用户4、删除HighgoDB的安装目录如:下图是默认安装的HighgoDB安装路径,需要删除。第2章 命令和工具2.1 psqlP
3、sql是HighgoDB的一个重要的交互式前端工具命令,类似于oracle的sql*plus。是HighgoDB所提供的标准数据库访问工具。2.1.1 连接数据库连接数据库的两种方法:第一种方法:psql h ip d dbname Uuserpsql dbnam在这种连接形式中,数据库为dbname,连接用户为当前登录的Linux shell用户或者windows系统登录用户。psql没有指定数据库和用户名,即:用户名为当前登录的linux用户名,数据库为与用户名同名的数据库。第二种方法:Postgrs=#c testdb userPsql命令更详细的参数,使用psql help,进行查看退
4、出数据库2.1.2 psql命令psql命令分为两种类型:一种专有命令,另一种是SQL命令1、专有命令专有命令“?”列出所有的专有命令信息。2、SQL命令通过专有命令“h”列出所有的SQL命令清单。也可以详细的显示语法格式2.1.3 几种常用的命令1、i命令整理脚本执行脚本2、o命令将查询的结果写入到文件查看写入的文件 如下:3、l显示所有的数据库4、d 显示表 视图和序列 dt 显示表 d tablename 显示表结构2.2 hgAdmin III2.2.1 连接服务器点击菜单栏中的“文件”-“添加服务器”添加名称、主机等信息,进行确定连接。2.2.2 hgAdmin III的使用1、配置
5、用户、组和权限创建组创建角色2、创建和删除表空间、数据库、表和schemas创建表空间创建数据库创建模式创建表3、编辑和插入表数据修改表结构 选中某个字段,点击右键属性。右键单击表xx。点击查看数据。即可出现如下:4、在查询窗口执行SQL语句选择菜单栏上“工具”“查询工具”输入SQL语句5、导出SQL查询结果到一个文件点击文件。下拉菜单选择导出6、备份和恢复数据库或者个别表删除数据库创建数据库xnlt 进行恢复。第二部分 HighgoDB基本操作第3章 select操作3.1 select命令语法3.2 select子句的使用查询所有的字段“*”表示所有的字段,也可以把表的各个字段逐一写出。但
6、是编写程序的时候,尽量避免使用“*”这种方法,因为这种方法影响查询的速度。查询指定的字段改变字段标示3.3 from子句的使用3.4 where子句的使用3.5 order by子句的使用升序降序3.6 limit子句的使用Limit语句,在编写分页程序的时候,经常使用到该子句。Limit n1 offset n2表示从结果第n2+1行开始,输入n1行。第4章 运算符 表达式4.1 运算符HighgoDB的运算符大致可以分为五大类:通用运算符、数学运算符、几何运算符、时间间隔运算符和网络运算符。除此之外,用户还可以自己定义运算符。4.1.1通用运算符< 左边的对象小于右边的对象,结果为真
7、,否则为假<= 左边的对象小于或者等于右边的对象,结果为真,否则为假<> 左边的对象不等于右边的对象,结果为真,否则为假= 左边的对象等于右边的对象,结果为真,否则为假> 左边的对象大于右边的对象,结果为真,否则为假>= 左边的对象大于或者等于右边的对象,结果为真,否则为假| 连接两个字符串4.1.2数学运算符+ 加- 减* 乘/ 除% 取模4.1.3几何运算符几何运算符主要作用于各种几何类型的数据,如点、直线、多边形等。+ 将几何对象向右平移- 将几何对象向左平移* 将几何对象旋转(顺时针)/ 将几何对象旋转(逆时针)4.1.4时间间隔运算符时间间隔运算符主要作
8、用于时间间隔(interval)类型的数据。#< 判断左边的时间间隔是否小于右边的时间间隔#<= 判断左边的时间间隔是否小于或者等于右边的时间间隔#<> 判断左边的时间间隔是否不等于右边的时间间隔#= 判断左边的时间间隔是否等于右边的时间间隔#> 判断左边的时间间隔是否大于右边的时间间隔#>= 判断左边的时间间隔是否大于或者等于右边的时间间隔4.1.5网络运算符网络运算符主要作用于网络类型(CIDR、INET)类型的数据。4.2 表达式4.2.1常量表达式4.2.2字段表达式4.2.3函数表达式Function_name(a_expr)其中,a_expr也是
9、表达式4.2.4聚集表达式聚集函数名(表达式)4.2.5 复合表达式将常量、变量、字段和函数组合为一个符合表达式。第5章 函数Sql函数的类型可以分为两种:单行函数和多行函数。5.1单行函数5.1.1数值函数Round() 取整数Trunc() 向零的方向截断浮点数Sin() 正弦Cos() 余弦5.1.2字符串函数大小写转换函数LOWER 将字符串中大写转换成小写UPPER 将字符串中小写转换成大写INITCAP 将单词中首个字母转换成大写字符操作函数SUBSTR() 取字符串LENGTH() 求字符串的长度LPAD() 左补指定的长度RPAD() 右补指定的长度REPLACE() 替换字符
10、串TRIM() 从左边或者右边删除指定字符串此函数与oracle 里面INSTR()对应。Oracle里面的用法:INSTR('HelloWorld', 'W') 65.1.3日期时间函数Abstime() 取当前的时间该函数与oracle中sysdate函数对应。Oracle里面的用法:select sysdate from dual;5.1.4格式化函数To_char() 将时间 int float numeic其中的之一的转换成字符串To_date() 将字符串转换成日期To_number() 将字符串转换成numeric类型的实数。5.2多行函数AVG(
11、) 求平均值SUM() 求总和MIN() 求最小值MAX() 求最大值COUNT()统计总记录数第6章 select中其他语句6.1 group by子句的使用如果select目标列表中出现了一个聚集表达式,那么其他目标要么是另外的聚集表达式,要么是group by子句中的字段,否则会导致语法错误。6.2 having子句的使用如果要在查询中对聚集结果进行条件判断和控制,可以使用having子句。Where与having的区别:Where在应用group by之前过滤出单独的行,而where中表达式不允许使用聚集函数。6.3 复杂条件查询And 逻辑和Or 逻辑或Not 逻辑非Like 模糊查
12、询 编程时候尽量少用,查询速度较慢In 范围查询 编程时候尽量少用,查询速度较慢Between and 范围查询 包含临界值6.4 规则表达式查询编程开发,最好不要使用规则表达式查询,避免引起错乱字符。 以指定的字符串开头$ 以指定的字符串结束第7章 多表连接三个表的结构及数据如下:Student学生表C 课程表Sc 成绩表7.1 内连接两个表中某一数据项相等的连接称为内连接。连接的结果是形成一个新的数据表。 内连接中参与连接的表的地位是相等的。内连接的运算顺序是:1.参与的数据表中的每列与其它数据表的列相匹配,形成临时数据表; 2.将满足数据项相等的记录从临时数据表中选择出来。内连接返回查询
13、结果集合中仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。7.2 外连接外连接返回的查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全连接)中的所有数据行。注意:外连接,oracle可以使用“(+)”来表示。但HighgoDB数据库不支持,所以在oracle向HighgoDB数据库迁移的时候,特别注意的地方。7.2.1 左连接包含左边表的全部行(不管右边的表是否存在与它们匹配的行),以及右边表中全部匹配的行。7.2.2 右连接包含右边表的全部行(不管左边的表是否存在与它们匹配的行),以及左边表中全部匹配的行
14、。7.2.3 全连接包含左、右两个表的全部行,不管在另一边的表中是否存在与它们匹配的行。7.3 交叉连接交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例如:student表中有10条记录,而sc表中有8条记录,则下列交叉连接检索到的记录数将等于10*8=80行。交叉连接在编程的时候,很少用到。但有时候在测试数据的时候可能使用到。第8章 子查询子查询的语法SELECTselect_listFROMtableWHEREexpr operator (SELECTselect_
15、list FROMtable);子查询规则 ()最好放在右边,提高查询的速度。子查询类型两种:单行子查询多行子查询8.1 单行子查询1、单行子查询所用的操作符号=>>=<<=<>2、简单的单行子查询显示所有年龄大于姓名为“www”同学的信息3、组函数在子查询显示年龄最小的学生信息4、having语句使用子查询按照年级进行统计,各个年级年龄小于姓名为“bbb”的年龄总共个数。8.2 多行子查询1、多行子查询所用的操作符号inany 大于> 大于最小 小于< 小于最大 等于= 相对于inall 大于> 大于最大 小于< 小于最小2、in的
16、使用显示与年级为2的年龄相同的,所有学生信息3、Any的使用4、All的使用8.3 子查询为from子句子查询作为from的子句 必须添加别名,这一点与oracle不一样,需要特别注意。Oracle写下面的语句就可以成功执行,但是HighgoDB必须添加别名才能进行执行。正确的如下:或者第9章 集合操作两个相同的表结构,但是记录不完全相同。Studenttemp表Student表9.1 union 并集union 合并集合 去掉重复行 union all 合并集合 不去掉重复行9.2 intersect 交集9.3 except 差集注意:该集合操作,与oracle有所不同。Oracle差集的
17、 关键字是minus,其格式如:Select * from studentMinusSelect * from studenttemp;第10章insert update delete操作10.1 Insert操作1、insert语法结构2、单条记录插入下面执行了3条语句,对studenttemp表插入3条记录。也可以对表中,某些字段插入。3、通过另外的表插入记录4、通过脚本插入整理脚本如下:执行脚本:10.2 Update操作1、update语法结构简单的更新例子:如下2、利用子查询更新多列将学号为“1002”的学生年龄和年级更新,其年龄和年级与学号“3001”的学生信息相同3、通过另外表的
18、条件更新数据将studenttemp表所有年龄为空的学生,统一更改为与student表中年龄最小的学生年龄相同。10.3 Delete操作1、Delete的语法结构删除表studenttmp编号为“4005”的学生信息2、通过另外表的条件删除数据删除studenttemp表中,与student表所有相同的记录。第11章create table操作11.1 创建表1、创建表的语法结构Create table向当前数据库中追加一个新的表,新表为执行本命令的用户所有。HighgoDB对表的基本限制是:一个表的字段数目不能超过1600个,每一个字段的大小不能超过8192字节(大对象字段除外),用户表不
19、能与系统表同名。2、简单的创建表d test 命令是显示test表结构3、通过脚本文件创建表编写脚本执行脚本4、显示表结构d 表名 5、通过子查询生成表创建语法结构Create table 表名AsSelect * from 原表名 where 1!=1 ;where 1!=1 加上该条件,将表示只创建表结构,不复制表记录。不加此条件,表示创建表结构,并且复制所有的表记录。例如:11.2 数据类型HighgoDB的数据类型比较丰富,并且用户可以自行定义任意多的数据类型。所以说只有全面的了解HighgoDB的数据类型,才能更好的进行数据库的分析设计,才能更好的完成由其它数据库到HighgoDB数
20、据库或者HighgoDB数据库到其它数据库的数据迁移。11.2.1字符串类型HighgoDB支持四种不同字符串类型:TextVarchar(length)CharChar(length)Char类型 描述单个字节的字段。Char(length)类型 存放定长的字符到字符串中,不足length的字符串,用空格进行补充。Varchar(length)类型 存放变长的字符串,但有长度限制Text类型 不限制字符串的数目,通常用于描述长度变化较大或长度不可预知的数据字段。Char(length)类型处理速度上要比Varchar(length)类型和Text类型要快,但是存储上要占用很大空间。所以说在设
21、计数据库的时候,需要注意的地方。11.2.2数值类型Int2类型Int4、integer类型Int8类型Float4类型Float8类型Numeric类型serial类型integer、int2和int8用于描述存放整型数值的变量。Integer类型和int4类型的变量都是占用4个字节的存储容量;int2类型的变量是占用2个字节的存储容量;int8类型的变量是占用8个字节的存储容量。Float8和float4用于描述浮点类型变量。前者精度为15位数据,后者的精确度为6位数据。Numeric类型用于描述用户自定义精度的实数变量。这种类型的处理速度最慢。尽量避免使用。Serial类型是Highgo
22、DB用其他类型构造出来的一种特殊类型。典型的用途是创建表的唯一标识。默认情况下,能创建一个隐含的序列,当删除表的时候,隐含序列并不会被删除。11.2.3时间类型DateTimeTimestampIntervalDate类型用于描述日期变量,包括年、月、日,它的格式由DATESTYLE配置项的值来决定。Time类型用于描述时间数据变量,包括时、分、秒,三者之间用“:”分隔。Timestamp类型用于描述时间戳数据变量,包括年、月、日和时、分、秒Interval类型用于描述时间间隔变量,包括年、月、日和时、分、秒等分量。11.2.4逻辑类型Boolean类型 用于描述逻辑变量,只能存放两个值:tr
23、ue和false11.2.5几何类型几何类型是HighgoDB特有的数据类型,主要用于描述存放平面二维几何图参数的变量。11.2.6网络类型CIDR类型 Ip v4地址INET类型 Ip v4地址或主机名通常在数据库设计的时候,由字符类型进行代替。也减少了在编程的时候进数据类型的转换。11.2.7数组类型数组类型是HighgoDB的一个独创,这种字段可以用于存放多个简单类型的数据。数组字段可以是一维的,也可以是二维的,甚至可以是多维的。1、定义方法定义数组字段时候,可以在方括号指定数组的维数。也可以不用指定数组的维数,表示可变的。2、数据的插入但是不允许3、数组字段的引用4、用途对于长度不固定
24、、对数据类型有特别要求的数据,数组字段特别有用。11.2.8大对象类型HighgoDB提供一种用于存储超大型文本和二进制数据的类型BLOB类型,利用BLOB类型可以存储任何形式的文件,如图像、文本文件、二进制文件等。大对象的引用可以利用HighgoDB的函数lo_import()将大对象插入到数据库中,也可以利用lo_export()函数从数据库中取出大对象。11.2.9预定义变量HighgoDB定义了一些变量,用于描述服务器的当前时间和用户。1、current_date显示数据库服务器的当前日期2、current_time显示数据库服务器的当前时间。3、current_timestamp显示
25、服务器的当前时间戳。4、current_user显示数据库服务器当前连接的用户名。11.3 约束关系11.3.1非空约束在创建表时候,使用NOT NULL可以防止用户给某字段赋空值。插入一条合法的记录试图插入一条非法的记录11.3.2唯一性约束在创建表时候,使用unique可以将某字段标记为唯一字段。插入合法的记录试图插入非法的记录值得注意:如果该唯一值字段,插入空值的时候,可以插入多条记录11.3.3主键约束主键约束相当于非空约束和唯一约束的组合。这种约束不仅能保证字段只能取非空值,而且保证字段的值在表中唯一。插入合法的记录试图插入非法的记录11.3.4外键约束外键约束主要用于保证数据库的参
26、照完整性。例如:创建主表,并插入记录创建子表,并插入合法的记录试图往test4表 插入非法的记录注意:on update cascade (父表修改,子表也修改)on delete cascade (父表删除,子表也删除)on delete set null (父表删除,子表设置为null)例如:创建子表,并插入记录更新主表 某条记录删除主表 某条记录11.3.5数据检验在创建表时候,使用check可以规定字段的合法值。插入合法的记录试图插入非法的记录11.4 修改表结构1、增加字段2、删除字段3、修改字段最好的方法先建一个临时的表,然后删除该表,再创建新表,最后从临时表把记录导入进去。11.
27、5 删除表删除表的语法格式例如:删除test7表第12章 视图 序列 触发器 存储过程12.1 视图视图是从一个或多个基本表(或试图)导出的“虚表”。视图在使用之前必须创建,一旦创建,就可以像基本表一样被查询,也可以在视图上创建新的视图。视图是只读的,不允许对视图进行插入、删除和更新。注意:HighgoDB目前不直接支持物化视图。这一点与oracle不相同,迁移数据的时候,若有物化视图,需要通过规则进行转化。1、创建视图创建视图的语法结构例如:三个基本表结构如下:创建每个学生的选修课程及其成绩的视图2、删除视图删除视图的语法结构例如:删除stusc视图12.2 序列序列是HighgoDB的一种
28、特殊计算器,它由用户创建,由系统管理。创建一个序列后,可以将其作为某个字段的默认值。在insert命令的执行期间,序列的值会被自动生成,并作为数据行的唯一性编号,存放在该数据行相应的字段中。1、序列的创建序列不能由系统自动创建,必须用create sequence命令显示创建。注意:HighgoDB默认情况下,建立的序列最大值可以是9223372036854775807,超过此值将是无效的。这一点与oracle是有区别的,oracle的最大值是999999999999999999999999999。三个常用的序列操作函数:nextval (序列名): 函数返回下一个可用的序列计数器的值,并自动
29、将序列计算器的值加1Currval (序列名): 函数返回当前可用的序列计数器的值,并且不修改序列计数器的值Setval (序列名,新计数器值):函数将序列计数器的值设置为指定的值。2、序列的使用使用序列插入记录,例如:创建表的时候,默认某个字段为序列值,例如:3、序列的删除注意:当有正在使用的序列是无法删除的。12.3 触发器1、触发器的创建创建触发器的语法结构例如:假设有一个表a需要被触发监控,我们建立一个日志表alog; 创建触发器函数创建触发器测试2、触发器的删除12.4 存储过程1、创建2、测试注意:不能使用create or replace procedure 存储过程名() 来进
30、行创建,这一点是与oracle有所不同的。第三部分HighgoDB编程第13章 java访问HighgoDB13.1 jdk的安装1. 在文件夹JRE中找到jdk-1_5_0_08-windows-i586-p.exe可执行文件,双击运行;2. 出现许可证协议确认界面如下:3. 选择接受条款后,点击下一步:4. 默认安装路径,点击下一步:5. 点击下一步:6. 点击下一步:7. 点击完成。13.2 MyEclipse环境的搭配下载MyEclipse免安装版本,配置步骤如下:1、配置jdk打开MyEclipse,在菜单栏选择windowpreferences一项,然后选择javainstalle
31、d jres最后点击add 添加jdk2、配置tomcat打开MyEclipse,在菜单栏选择windowpreferences一项,然后选择tomcat最后选择安装的tomcat的版本,并浏览加载13.3 HighgoDB数据库JDBC驱动配置1、下载驱动HighgoDB的JDBC驱动很多,根据jdk的版本选择自己合适的驱动。以下是jdk版本与JDBC驱动的对应关系,一定要选择对了,否则连接不上数据库。· JDK 1.1 - JDBC 1. Note that with the 8.0 release JDBC 1 support has been removed, so look
32、 to update your JDK when you update your server. · JDK 1.2, 1.3 - JDBC 2. · JDK 1.3 + J2EE - JDBC 2 EE. This contains additional support for javax.sql classes. · JDK 1.4, 1.5 - JDBC 3. This contains support for SSL and javax.sql, but does not require J2EE as it has been added to the J
33、2SE release. · JDK 1.6 - JDBC4. Support for JDBC4 methods is limited. The driver builds, but the majority of new methods are stubbed out. 2、配置驱动把下载的驱动包,如:安装的jdk1.5 ,选择的是postgresql-9.0-801.jdbc3.jar放到%tomcat%commonlib 下面。3、JDBC连接参数如下:String dbDriver = "org.postgresql.Driver"String url
34、= "jdbc:postgresql:/ip地址:端口号/数据库名"String userName="用户名"String password="密码"13.4 编写程序 连接HighgoDB数据库连接HighgoDB中aaa数据库,student表数据如下:1、新建连接数据库的类选择MyEclipse的菜单栏,选择file-class填写class类的name名称:比如testpostgresql3、编写代码import java.sql.Connection;import java.sql.DriverManager;import
35、java.sql.ResultSet;import java.sql.Statement;public class testpostgresql public static void main(String args) Connection ct=null;Statement sm=null;ResultSet rs=null;try /加载HighgoDB的驱动Class.forName("org.postgresql.Driver"); ct=DriverManager.getConnection("jdbc:postgresql:/localhost:543
36、2/aaa", "Administrator", "");sm=ct.createStatement(); /执行查询语句String sql="select name,num from student order by name"System.out.println("sql="+sql);rs=sm.executeQuery(sql); /循环结果,并打印while(rs.next()System.out.println("nmu="+rs.getString(2)+"
37、name="+rs.getString(1); /抛出异常catch (Exception e)e.printStackTrace();finally /关闭数据库连接 try if(rs!=null) rs.close(); if(sm!=null) sm.close(); if(ct!=null) ct.close(); catch (Exception ex) ex.printStackTrace(); 4、编译 运行在项目管理栏中,选择testpostgresql,右键选择run as-java application5、查看结果第14章 hibernate与HighgoDB
38、整合14.1 HighgoDB中创建新库及表连接HighgoDB中aaa数据库,student表数据如下:14.2 MyEclipse中创建新项目选择菜单栏file-new-project选择web project进行下一步输入project name 选择完成14.3 下载hibernate架包,并进行配置1、网上下载hibernate架包如下:antlr.jarasm.jarasm-attrs.jarcglib-2.1.3.jarcommons-collections.jarcommons-logging.jardom4j-1.6.1.jarjta.jarlog4j-1.2.11.jarh
39、ibernate3.jarpostgresql-9.0-801.jdbc3.jar2、配置hibernate架包将以上架包拷贝到新的项目中去。比如:D:testhibernateWebRootWEB-INFlib目录下面查看一下testhibernate项目是否加载上:首先刷新testhibernate项目然后选择testhibernate项目,点击右键 选择properties再选择java build path -libraries查看刚才拷贝的架包是否 加载过来。14.4 编写持久类 Student.java,并创建hibernate映射文件student.hbm.xml1、编写一个学生
40、对象类 Student.javapackage model;public class Student private Integer num;private String name;private Integer age;private String addr;private String grade;/以下是get()/set()方法public String getAddr() return addr;public void setAddr(String addr) this.addr = addr;public Integer getAge() return age;public voi
41、d setAge(Integer age) this.age = age;public String getGrade() return grade;public void setGrade(String grade) this.grade = grade;public String getName() return name;public void setName(String name) = name;public Integer getNum() return num;public void setNum(Integer num) this.num = num;2、编
42、写hibernate映射文件student.hbm.xml<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 2.0/EN" "<hibernate-mapping> <class name="model.Student" table="student"><id name="num" column="
43、num" ><generator class="increment"/></id><property name="name" type="string"><column name="name" length="10" /></property><property name="age" type="int"><column name="age"
44、/></property><property name="addr" type="string"><column name="addr" length="20" /></property><property name="grade" type="string"><column name="grade" length="1" /></property>
45、; </class> </hibernate-mapping>14.5 编写取得session的类 HibernateUtil.javapackage persistence;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtil private static final SessionF
46、actory sessionFactory;statictrysessionFactory=new Configuration().configure().buildSessionFactory();catch(HibernateException ex)throw new RuntimeException(ex.getMessage();public static Session currntSession() throws HibernateExceptionSession s=sessionFactory.openSession();return s;public static void
47、 closeSession(Session s)if(s!=null)s.close();14.6 编写操作数据库的java文件 DAOImp.javapackage persistence;import java.util.List;import model.Student;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;public class DAOImp static Sessi
48、on session=null;/创建新的学生信息public static void createStu(Student stu)trysession=HibernateUtil.currntSession();Transaction tx=session.beginTransaction();session.save(stu);mit();catch(HibernateException ex)ex.printStackTrace();finallyHibernateUtil.closeSession(session);/删除学生信息public static void delStu(In
49、teger num)trysession=HibernateUtil.currntSession();Transaction tx=session.beginTransaction();Student stu=(Student)session.get(Student.class, num);session.delete(stu);mit();catch(HibernateException ex)ex.printStackTrace();finallyHibernateUtil.closeSession(session);/修改学生信息public static void mdStu(Stud
50、ent stu)trysession=HibernateUtil.currntSession();Transaction tx=session.beginTransaction();session.update(stu);mit();catch(HibernateException ex)ex.printStackTrace();finallyHibernateUtil.closeSession(session);/显示所有学生信息public static List getAllStu()List list=null;trysession=HibernateUtil.currntSessio
51、n();Transaction tx=session.beginTransaction();Query q=session.createQuery("from Student");list=q.list();mit();catch(HibernateException ex)ex.printStackTrace();finallyHibernateUtil.closeSession(session);return list;14.7 配置hibernate的描述文件 hibernate.cfg.xml及log4j初始化文件1、配置hibernate.cfg.xml<?xml version="1.0" encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-/Hibernate/Hibernate Configuration DTD 3.0/EN" " <!- Generated by MyEclip
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业管理岗位职责大全
- 焦作大学《油画风景写生与创作》2023-2024学年第一学期期末试卷
- 广东江门中医药职业学院《数字项目专题设计》2023-2024学年第一学期期末试卷
- 重庆化工职业学院《近代史纲要》2023-2024学年第一学期期末试卷
- 文化创意产业园区厂房转让与文化产业合作合同
- 西安工程大学《商贸法语》2023-2024学年第一学期期末试卷
- 住宅小区车位产权共有及转让合同
- 生态农业产权互换与供应链合作协议
- 桉树种植与深加工项目投资合作协议
- 应天职业技术学院《药物研究与开发》2023-2024学年第一学期期末试卷
- 2025至2030中国智慧法院行业经营现状及营销创新发展趋势报告
- 商务局保密管理制度
- 信息用户管理制度
- 数据中心运维服务投标方案
- 十五五智慧校园建设发展规划
- 河南省豫地科技集团招聘笔试真题2024
- 儿童创意民族纹饰课件
- 广东省广州市增城区2023-2024学年八年级下学期期末数学试题(含答案)
- 广东省广州市番禺区2022-2023学年三年级下学期数学期末试卷(含答案)
- 养老项目商业计划书
- 夜市项目的可行性报告
评论
0/150
提交评论