zoukankan      html  css  js  c++  java
  • JDBC二查询(web基础学习笔记八)

    一、建立数据库

    --创建news表空间
    CREATE TABLESPACE tbs_news
    DATAFILE 'F:ORACLE
    ews.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项目中

    1. oracle11g为例:D:appAdministratorproduct11.2.0dbhome_1jdbclibojdbc6.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 + "	" + title + "	" + summary + "	"
                        + content + "	" + author + "	" + createdate + "	"
                        + 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 + "	" + title + "	" + summary + "	"
                        + content + "	" + author + "	" + createdate + "	"
                        + 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();
    
        }
    
    }

     

  • 相关阅读:
    分布式id生成
    DB主从一致性架构优化4种方法
    Mysql在大型网站的应用架构演变
    win10下iis绑定局域网ip无效的解决方案
    css随笔
    html标签说明
    C# JSON序列化日期格式问题
    使用事件机制相比直接调用函数的优势
    C#绑定事件时使用匿名函数
    C# t4模版引擎笔记 引入外部dll
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4245889.html
Copyright © 2011-2022 走看看