博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC二查询(web基础学习笔记八)
阅读量:5817 次
发布时间:2019-06-18

本文共 7161 字,大约阅读时间需要 23 分钟。

一、建立数据库

--创建news表空间CREATE TABLESPACE tbs_newsDATAFILE 'F:\ORACLE\news.dbf'SIZE 10MAUTOEXTEND ON;--创建news用户CREATE USER news IDENTIFIED BY newsDEFAULT 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项目中

  1. oracle11g为例:D:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar
  2. 将此ojdbc6.jar复制到项目中新建lib文件夹保存
  3. 右击项目选择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();    }}

 

 

 

 

转载地址:http://buwdx.baihongyu.com/

你可能感兴趣的文章
一次意外的X锁不阻塞问题
查看>>
setsockopt()使用方法(參数具体说明)
查看>>
Spring5:@Autowired注解、@Resource注解和@Service注解
查看>>
Geeks 一般二叉树的LCA
查看>>
wpf的MVVM框架
查看>>
Parquet文件结构笔记
查看>>
【HDU 5698】瞬间移动(组合数,逆元)
查看>>
能源项目xml文件 -- springMVC-servlet.xml
查看>>
openwrt安装编译
查看>>
POJ 2386 Lake Counting 搜索题解
查看>>
tomcat中如何配置虚拟路径
查看>>
个人的中小型项目前端架构浅谈(转)
查看>>
Vue.js插件开发
查看>>
uva 1456(dp)
查看>>
[LeetCode]94.Binary Tree Inorder Traversal
查看>>
关于Java -cp引用jar是否支持通配符
查看>>
浅谈Web缓存-缓存的实现过程详解
查看>>
virtualbox ubuntu 虚拟画面卡顿问题
查看>>
如果没有Build path怎么办 .project文件的修改
查看>>
Nginx学习系列四默认负载均衡轮询及Ip_hash等常用指令介绍
查看>>