JDBC二查询(web基础学习笔记八)
一、建立数据库
--创建news表空间
CREATE TABLESPACE tbs_news
DATAFILE 'F:\ORACLE\news.dbf'
SIZE 10M
AUTOEXTEND ON;
--创建news用户
CREATE USER news IDENTIFIED BY news
DEFAULT TABLESPACE tbs_news;
--授权
GRANT RESOURCE,CONNECT TO news; --创建表
SELECT * FROM tab;
-----新闻发布系统
-----用户表
drop table NEWS_USER;
create table NEWS_USER(
id NUMBER(10, 0) PRIMARY KEY NOT NULL, ---用户编号
username varchar2(20) NOT NULL, ---用户名
password varchar2(20) NOT NULL, ---密码
email varchar2(100) NULL,
usertype number(5,0) NOT NULL ----用户类型 0:管理员 1:普通用户
);
INSERT INTO NEWS_USER VALUES(1,'admin','admin','admin@bdqn.cn',0);
INSERT INTO NEWS_USER VALUES(2,'user','user','user@bdqn.cn',1);
INSERT INTO NEWS_USER VALUES(3,'test','test','test@bdqn.cn',1);
COMMIT;
SELECT * FROM news_user; -------新闻分类表, 有外键存在,因此先删除子表
drop table NEWS_COMMENT;
drop table NEWS_DETAIL;
drop table NEWS_CATEGORY;
create table NEWS_CATEGORY(
id NUMBER(10,0) NOT NULL PRIMARY KEY, --类别ID
name varchar2(50) NOT NULL, --类别名称
createdate Date NOT NULL ---创建时间
); INSERT INTO NEWS_CATEGORY(id,name,createdate) VALUES(1,'国内',sysdate);
INSERT INTO NEWS_CATEGORY(id,name,createdate) VALUES(2,'国际',sysdate);
INSERT INTO NEWS_CATEGORY(id,name,createdate) VALUES(3,'娱乐',sysdate);
INSERT INTO NEWS_CATEGORY(id,name,createdate) VALUES(4,'军事',sysdate);
INSERT INTO NEWS_CATEGORY(id,name,createdate) VALUES(5,'财经',sysdate);
INSERT INTO NEWS_CATEGORY(id,name,createdate) VALUES(6,'天气',sysdate);
COMMIT; --查询
SELECT * FROM news_category;
-----新闻明细表
create table NEWS_DETAIL(
id number(10,0) NOT NULL PRIMARY KEY, --id
categoryId number(10,0) NOT NULL, --新闻类别id
title varchar2(100) NOT NULL,--新闻标题
summary varchar2(255) NULL, --新闻摘要
content CLOB NULL, --新闻内容
picpath varchar2(255) NULL, --新闻图片路径
author varchar2(50) NULL,--发表者
createdate date NULL, --创建时间
modifydate date NULL, --修改时间
Foreign key(categoryId) references NEWS_CATEGORY(id)
);
--插入数据
INSERT INTO NEWS_DETAIL VALUES(1,1,'尼日利亚一架客机坠毁','尼日利亚一架客机坠毁,伤亡惨重','尼日利亚一架客机坠毁,伤亡惨重,10人重伤','','admin',sysdate,sysdate);
SELECT * FROM news_detail;
-----新闻评论表
create table NEWS_COMMENT(
id number(10,0) PRIMARY KEY, --id
newsId number(10,0) NOT NULL, --评论新闻id
content varchar2(2000), --评论内容
author varchar2(50), --评论者
ip varchar2(15), --评论ip
createdate date, --发表时间
Foreign key(newsId) references NEWS_DETAIL(id)
); SELECT * FROM news_detail;
DELETE FROM news_detail WHERE ID=2;
COMMIT;
二、将oracle的driver导入到web项目中
- oracle11g为例:D:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar
- 将此ojdbc6.jar复制到项目中新建lib文件夹保存
- 右击项目选择build path-buil confing--libaries-add jar选择jar包所在路径如news/WebRoot/WEB-INF/lib/ojdbc6.jar点击确定
三、将Driver导入并建立连接
// 建立连接对象
Connection conn = null;
// 建立Statement对象
Statement stmt = null;
// 建立结果集对象ResultSet
使用Class.forName()来导入Driver
//(1)使用Class.forName()加载驱动
Class.forName("jdbc:oracle:thin:@localhos:1521:orcl","news","news")
四、Connection来建立连接
// (2)使用DriverManager.getconnection(url,用户名,密码)建立连接返回类型是Connection类型
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl", "news", "news");
五、写SQL并执行
// (3)编写查询sql语句
String sql = "SELECT c.name,d.title,d.summary,d.content,d.author,d.createdate,d.modifydate FROM news_detail d,news_category c WHERE d.categoryid=c.id ";
// (4)建立Statement对象,将sql语句导入,使用结果集来接收
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
六、遍历结果集输出
// (5)遍历结果集
// 首先声明变量用来存放结果集中的字段
System.out.println("===========新闻列表================");
while(rs.next()){
String catename = rs.getString("name");
String title = rs.getString("title");
String summary = rs.getString("summary");
String content = rs.getString("content");
String author = rs.getString("author");
Date createdate = rs.getDate("createdate");
Timestamp modifydate = rs.getTimestamp("modifydate"); System.out.println(catename + "\t" + title + "\t" + summary + "\t"
+ content + "\t" + author + "\t" + createdate + "\t"
+ modifydate);
以上完整代码:
package pb.news; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.Date; public class newstest { public void select() {
// 建立连接对象
Connection conn = null;
// 建立Statement对象
Statement stmt = null;
// 建立结果集对象ResultSet
ResultSet rs = null;
try {
// (1)使用Class.forName来导入drive
Class.forName("oracle.jdbc.driver.OracleDriver");
// (2)使用DriverManager.getconnection(url,用户名,密码)建立连接返回类型是Connection类型
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl", "news", "news");
// (3)编写查询sql语句
String sql = "SELECT c.name,d.title,d.summary,d.content,d.author,d.createdate,d.modifydate FROM news_detail d,news_category c WHERE d.categoryid=c.id ";
// (4)建立Statement对象,将sql语句导入,使用结果集来接收
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
// (5)遍历结果集
// 首先声明变量用来存放结果集中的字段
System.out.println("===========新闻列表================");
while(rs.next()){
String catename = rs.getString("name");
String title = rs.getString("title");
String summary = rs.getString("summary");
String content = rs.getString("content");
String author = rs.getString("author");
Date createdate = rs.getDate("createdate");
Timestamp modifydate = rs.getTimestamp("modifydate"); System.out.println(catename + "\t" + title + "\t" + summary + "\t"
+ content + "\t" + author + "\t" + createdate + "\t"
+ modifydate);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } public static void main(String[] args) {
newstest nt = new newstest();
nt.select(); } }
JDBC二查询(web基础学习笔记八)的更多相关文章
- 简单分页查询(web基础学习笔记十三)
一.建立资源文件和工具类 1.1 .database.properties jdbc.driver_class=oracle.jdbc.driver.OracleDriver jdbc.connect ...
- 监听器(web基础学习笔记二十二)
一.监听器 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其实就是一个实现特定接口的普通java程序,这个程序专门 ...
- JavaBean(web基础学习笔记十二)
一.JavaBean简介 JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁.JSP搭配JavaBean来使用 ...
- JDBC五数据源和数据池(web基础学习笔记十一)
一.为什么使用数据源和连接池 现在开发的应用程序,基本上都是基于数据的,而且是需要频繁的连接数据库的.如果每次操作都连接数据库,然后关闭,这样做性能一定会受限.所以,我们一定要想办法复用数据库的连接. ...
- JDBC一(web基础学习笔记七)
一.JDBC Java数据库的连接技术(Java DataBase Connectivity),能实现Java程序以各种数据库的访问 由一组使用Java语言编写的类和接口(JDBC API)组成,它j ...
- 过滤器(web基础学习笔记二十一)
一.过滤器简介 二.在Eclipse中创建过滤器 三.使用过滤器设置全部web字符编码 public void doFilter(ServletRequest request, ServletResp ...
- Servlet一(web基础学习笔记二十)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- JDBC四(web基础学习笔记十)
一.增加 .修改.删除.查询 将功能整合在一个类中 package pb.base; import java.sql.Connection; import java.sql.DriverManager ...
- JDBC三(web基础学习笔记九)
一.JDBC编程步骤 二.将数据库的信息放入资源文件 // (1)使用Class.forName来导入drive Class.forName("oracle.jdbc.driver.Orac ...
随机推荐
- 移动端适配之REM
随着手机等移动设备的普及,移动端带来的流量已经不可忽视,一个网站不只是只有pc的页面就足够了,移动端的适配已经势在必行.但是移动设备种类繁多,屏幕尺寸也千奇百怪,能不能找到一种方式可以适配所有的手机屏 ...
- 1、安装Redis的PHP扩展
1.安装Redis的PHP扩展 1.1 安装phpize yum install php-devel 1.2 下载扩展源码包,直接用wget #wget下载github上的文件 wget https: ...
- TeamViewer运行在Windows Server 2008下连接时错误提示:正在初始化显示参数
这个是使用远程桌面安装和使用Teamviewer的问题,解决方法: 实际上安装完成后TeamViewer有两个ID,一个是个人ID(就是上面卡住的780 567 914),另一个是服务器ID,我们通过 ...
- 特殊字符\u2028导致的Javascript脚本异常
这原本是个小错误,但排查花了不少时间,因此写下来和大家分享一下. 起因 通过Ajax动态从后台读取文章内容,并显示在页面上,加载到某篇文章的时候,报javascript语法错误,无法显示文章内容. A ...
- Install WordPress Plugins without FTP Access
WordPress will only prompt you for your FTP connection information while trying to install plugins o ...
- MapReduce实现排序功能
期间遇到了无法转value的值为int型,我採用try catch解决 str2 2 str1 1 str3 3 str1 4 str4 7 str2 5 str3 9 用的\t隔开,得到结果 str ...
- 使用 NVM 管理不同的 Node.js 版本
欢迎您帮忙纠错, 一起帮助更多的人. 一起来学习交流React, QQ群:413381701 首发于:https://github.com/Kennytian/learning-react-nativ ...
- Nginx+Memcached+Tomcat集群配置实践(Sticky Session)
准备工作 创建一个简单的web应用,名为session.其中有两个页面,分别如下所示: 页面login.jsp <%@ page language="java" conten ...
- python垃圾回收杂谈
当创建对象时Python立即向操作系统请求内存.每当对象的引用数减为0,Python垃圾回收器立刻挺身而出,立即将其释放,把内存还给操作系统.在Python中,每个对象都保存了一个称为引用计数的整数值 ...
- ubuntu 12.04 安装无线网卡驱动
安装ubuntu 12.04后,无线网卡不可用,采用以下方式解决: 1.在终端中运行如下命令,重新安装b43相关的全部驱动和firmware: sudo apt-get install bcmwl-k ...