JBuilder2005实战JSP之创建数据库表

news/2024/5/18 22:22:13 标签: 数据库, jbuilder, jsp, user, oracle, jdbc
  1.在Oracle的SQL Plus工具中,以具有DBA权限的用户登录数据库

  system/manger@to_128

  @后的to_128为数据库的连接串名,需要根据具体情况更改,如果数据库是在本地,则可以省略@和连接串。

  2.创建jbuser用户,指定密码为abc。

  SQL> create user jbuser identified by abc;

  3.为jbuser用户分配connect和resource角色权限。

  SQL> grant connect ,resource to jbuser;

  4.用jbuser登录数据库

  SQL> connect jbuser/abc@to_128;

  5.创建用户表和序列,在SQL> 命令中运行下面的sql代码。

  代码清单 1 创建表和序列的代码

1. --创建用户表
2. create table T_USER (
3. USER_ID CHAR(6) not null,
4. USER_NAME VARCHAR2(60),
5. PASSWORD VARCHAR2(20),
6. constraint PK_T_USER primary key (USER_ID)
7. );
8. --创建登录日志表
9. create table T_LOGIN_LOG (
10. ID CHAR(12) not null,
11. USER_ID CHAR(6) not null,
12. DT_LOGIN CHAR(14) not null,
13. DT_LONOUT CHAR(14),
14. constraint PK_T_LOGIN_LOG primary key (ID)
15. );
16.
17. --创建索引,用于生成T_LOGIN_LOG表的主键
18. create sequence SEQ_LOGIN_LOG_ID
19. increment by 1
20. maxvalue 999999999999
21. minvalue 100000000000;

  6.在T_USER用户表中插入3历史人物作为初始用户,在SQL>命令中运行下面的sql代码。

  代码清单 2 往T_USER表中插入3条记录

1. insert into T_USER(USER_ID,USER_NAME,PASSWORD) values('100000','姜子牙','123456');
2. insert into T_USER(USER_ID,USER_NAME,PASSWORD) values('100001','鲍叔牙','123456');
3. insert into T_USER(USER_ID,USER_NAME,PASSWORD) values('100002','竖牙','123456');
4. commit;

  创建工程及Web模块

  在创建数据库后,打开JBuilder,创建工程和Web模块。

  1.File->New Project...创建一个名为bookstore的工程。

  2.File->New...->Web->双击Web Module(WAR)图标创建一个Web模块,名称取为webModule。选用Tomcat 5.0作为Web应用服务器。

  编写获取数据库连接类

  必须通过数据连接才可以访问数据库,在模块的多个地方都需要获取数据库连接,所以我们编写一个获取数据连接的类,以增强代码的复用率。

   在编写获取数据连接的类时,必须先将Oracle的JDBC驱动器类包classes12.jar加入工程扩展类库中(classes12.jar位于 <oracle安装目录>/ jdbc/lib的目录下),我们将classes12.jar放在<工程目录>/oraJdbcLib下。通过以下的步骤在工程扩展类库中 引入classes12.jar:
Project->Properties...->Paths设置页->切换到 Required Libraries->点击Add...->在弹出的Add to Project Classpath对话框中切换到Archives标签页,选择工程目录下的<工程目录>/oraJdbcLib /classes12.jar。

  将Oracle的JDBC驱动器类包classes12.jar引入工程扩展类库后,在工程中创建DBConnection类,其代码如下所示:

  代码清单 3 DBConnection.java

1. package bookstore;
2.
3. import java.sql.*;
4. import java.util.Properties;
5.
6. public class DBConnection {
7.  //获取数据库连接类
8.  public static Connection getConnection() throws SQLException {
9.  try {
10.   Class.forName("oracle.jdbc.driver.OracleDriver");
11.  } catch (ClassNotFoundException ex) {
12.   ex.printStackTrace();
13.   return null;
14.  }
15.  Properties sysProps = new Properties();
16.  sysProps.put("user", "jbuser");
17.  sysProps.put("password", "abc");
18.  return DriverManager.getConnection(
19.   "jdbc:oracle:thin:@192.168.0.128:1521:ora9i", sysProps);
20.  }
21. }

  该类仅提供了一个静态方法getConnection(),用jbuser/abc获取位于192.168.0.128,SID为ora9i的数据连接。

  获取数据库连接有两个关键点:

  1、指定数据库驱动器类

  如第10行代码所示,Oracle的JDBC驱动器类名是:oracle.jdbc.driver.OracleDriver,不同数据库有自己的JDBC数据库驱动器,如果你使用其它数据库,请自行查阅相关的资料。

  2、指定数据库的URL连接串

  在第19行中,我们指定了一个数据库URL连接串,不同数据库的URL连接串格式也不一样,对于Oracle数据库来说,数据库URL连接串包含4个部分:

  ·jdbc:oracle:thin :指定JDBC驱动器的类型,这里指定用瘦客户端驱动器,无需在连接客户端安装其他的组件,最为常用。

  ·@192.168.0.128 :数据库所在机器的IP,也可以用机器名。

  ·1521 :数据库监听器所在的端口,一般情况下Oracle默认在1521端口。

  ·ora9i :数据库SID名称。

【来源】

http://www.niftyadmin.cn/n/1090145.html

相关文章

理解Flexbox弹性盒子

http://www.w3cplus.com/css3/understanding-flexbox-everything-you-need-to-know.html参考文档 1&#xff1a;要开始使用Flexbox&#xff0c;必须先让父元素变成一个Flex容器。 你可以在父元素中显式的设置display:flex或者display:inline-flex。就这么的简单&#xff0c;这样…

平板鸿蒙系统实测,华为鸿蒙系统专属应用实测:超小安装包,流畅度吊打安卓!...

原标题&#xff1a;华为鸿蒙系统专属应用实测&#xff1a;超小安装包&#xff0c;流畅度吊打安卓&#xff01;随着华为鸿蒙系统的陆续推送&#xff0c;已经越来也多人用上了鸿蒙系统。这也让之前处于猜测状态下的鸿蒙系统实打实给了用户真实的体验感。还没用上鸿蒙系统前很多人…

2.Stacks(堆栈)

一.概述 C Stack&#xff08;堆栈&#xff09; 是一个容器类的改编&#xff0c;为程序员提供了堆栈的全部功能&#xff0c;也就是说实现了一个先进后出&#xff08;FILO&#xff09;的数据结构。 二.常用API empty()堆栈为空则返回真pop()移除栈顶元素push()在栈顶增加元素size…

Uboot 中make menuconfig 做了什么?

Make menuconfig 到底做了什么&#xff1f; (写在前面: 本文是本人分析uboot中的makefile文件得到的粗浅的见解&#xff0c;写的越多越感觉其中的深奥复杂。本文是编辑在word中粘贴过来的&#xff0c; 排版可能有有点问题, 或者可以下载 https://files.cnblogs.com/files/syyx…

android asynctask 图片,Android使用AsyncTask加载图片的操作流程

加载图片基本操作一、创建AsyncTask子类将ImageView的弱引用设置为成员变量&#xff0c;创建构造函数传入ImageView对象。调用指定大小解析Bitmap方法。因为是弱引用&#xff0c;所以必须判断引用是否被回收。如果异步任务完成前&#xff0c;用户离开Activity或者设置发生改变&…

pickle 序列化对象

# 序列化对象 import pickle mylist[[1,2,3,4,5,6,7],["abc","xyz","hello"],[1,2,3,4,5,6,7,"我","w"]]fileopen(r"G:\我的python\尹成\python基础\day11\文件读写\list.bin","wb") pickle.dump(mylis…

slice和splice

slice //截取数组或者字符串&#xff0c;返回数组或字符串 //jquery方法截取元素&#xff0c;构成新的对象 splice //增加&#xff0c;修改&#xff0c;删除数组转载于:https://www.cnblogs.com/jianxingjianyuan/p/7161059.html

Android3d结构光,一文看懂OPPO Find X 3D结构光技术有多牛

法国时间6月19日&#xff0c;OPPO在巴黎卢浮宫正式举办未来旗舰Find X发布会。此次亮相的Find X新机&#xff0c;既有充满艺术感的3D玻璃机身设计&#xff0c;又有3D结构光、曲面全景屏、双轨潜望结构等多项黑科技。众多黑科技中&#xff0c;以3D结构光O-face最受数目。据悉&am…