首页 \ 问答 \ 用JAVA设计简单互联网浏览器

用JAVA设计简单互联网浏览器

合理利用JAVA组件,设计简单的互联网浏览器,基本要求为具备URL地址输入,前后翻页,停止,重载入,书签等功能。 
 从速,从速,紧急,做的好了还可以加分!!!
更新时间:2021-03-05 11:03

最满意答案

我先给你连接数据库的类吧!
步骤1
package test.procedure;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectOrcl {
	String driver,url,user,pwd;
	public ConnectOrcl(){
		driver = "oracle.jdbc.driver.OracleDriver";
		url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
		user = "scott";
		pwd = "tiger";
	}
	public Connection getConn(){
		Connection conn = null;
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url,user,pwd);
		} catch (ClassNotFoundException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		return conn;
	}
                // 关闭与数据库的连接的方法
	public void closeConn() {
		try {
			if (!conn.isClosed()) {
				conn.close();
			}
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
	}
               public  static void main(String[] args){
                       if(conn != null){
                               system.out.println("连接成功!")
                       }
               }
}

其他回答

Class.forName("oracle.jdbc.driver.OracleDriver") new Instance ();
            String url ="jdbc:oracle:thin:@localhost:1521:orcl";
            String user="scott";(用户名)
            String password="tiger";(密码)
            Connection con=DriverManager.getConnection(url,user,password);
            Statement stmt =conn.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);                                        
           String sql="select * from ";
           ResultSet rs=stmt.executeQuery(sql);
           while(rs.next)
           {

            }
这就完成了简单查询
如果要设置权限的话 要使用grant 语句
例如 :grant select,update on table table_name to user
这个说起来话有点长了。。。
你按照我以下的步骤就可以建立java跟oracle的链接:
(1)首先要安装oracle数据库(这是废话,不过这个过程中你可以设置用户名机密码他的权限相当于管理员),然后启动查询分析器再用 great database databasename(数据 库的名称)的命令建立数据库,之后就是要建立数据库的表,建表的命令如下(我给你的例子是建立一个学生表):
 usr database/*你刚才所建立的数据库的名称,一定要相同,那么你就是再这个数据库中建立了这个表*/
CREATE TABLE stu
(
      sno  char(10)  NOT NULL       /*学号字段*/
         CONSTRAINT PK_sno PRIMARY KEY CLUSTERED,/*主键约束*/
   sname      char(8)   NOT NULL, /*姓名字段*/
   sex     char(2)   NULL, /*性别字段*/
   native   int  NULL, /*籍贯*/
   birthday   varchar(20)   NULL,/*学生出生日期*/
   dno      char(6)   NULL,/*学生所在院系编号(外键)*/
   spno   char(8)  NULL,/*专业代码(外键)*/
   classno   char(4)  NULL,/*班级号*/ 
   entime    char(4)  NULL,/*学生入校时间*/
   home    varchar(40)  NULL,/*学生家庭住址*/
   tel   varchar(40)   NULL/*学生联系电话*/
  )
这样你的数据库和相应的表就建成了,如果你需要对数据库的权限进行设置那么就涉及到角色的赋予或者你安装oracle时需要进行设置的用户明及密码,这块说来就话长啦!如果你只是学习java和数据库的链接,那么这个可以暂时放一边,如果你非得想知道那么你需要系统学习数据库的知识。我这里就不跟你介绍了。建立完表之后就需要对表插入数据(插入数据可以用java编程,用自己设置的软件插入数据也可以用数据库的查询分析气用sql语句插入)
(2)这一步也是java跟数据库链接的关键,在你安装了数据库的那台pc机或者服务器注册数据源步骤:进入你电脑的控制面板——管理工具——数据源——系统DNS(选中)——添加(在这里面有你要添加的数据源添加microsoft DOBC for Orccle,再这里点击完成后会弹出一个对话框,要你填写数据源的名称这个名称一定要记住,java链接程序编程时需要用到这个名称,还有要填服务器的名称,这个名称需要你的服务器名称,如果你是单台pc机实验,那么在你数据库登录的界面那个服务器名称就可以了,然后点击下去进行必要的设置就可以了),这样我们对数据库部分的工作已经完成啦!接下来就是完成java的编程部分。
(3)这里就是java的编程部分,这里我给了你一个我从教材弄来的编好并调试成功的程序(当然这跟你自己建立的数据库是相关的):
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
class  add  extends JFrame {
   private StudentUI userInterface;
   private JButton clearButton, writeButton;
   // 加载启动程序和建立数据库的地址,远程和对本机的数据库加载是不一样得,这里给你一个对本机数据库的操作
   static final String JDBC_DRIVER = "("oracle.jdbc.driver.OracleDriver";
   static final String DATABASE_URL = "oracle.jdbc.driver:刚才叫你记住的那个数据源的名字";
   // declare Connection and Statement for accessing 
   // and querying database
   private Connection connection;
   private Statement statement;
   String sqlString ;
   //set up column names
   String names[] = { "学  号","姓  名","性 别","年 龄","所 在 系"};
   // set up GUI
   public Add()
   {
      super( "Add a record of students" );
      initialize();  //connect to database
      // create instance of reusable user interface
      userInterface = new StudentUI( names );  // four textfields
      getContentPane().add( userInterface, BorderLayout.CENTER );

      // configure button doTask1 for use in this program
      writeButton = userInterface.getDoTask1Button();
      writeButton.setText( "保存" );

      // register listener to call addRecord when button pressed
      writeButton.addActionListener(

         // anonymous inner class to handle writeButton event
         new ActionListener() {

            // call addRecord when button pressed
            public void actionPerformed( ActionEvent event )
            {
                   addRecord();
            }

         } // end anonymous inner class

      ); // end call to addActionListener

      // configure button doTask2 for use in this program
      clearButton = userInterface.getDoTask2Button();
      clearButton.setText( "清除" );

      // register listener to call userInterface clearFields() when button pressed
      clearButton.addActionListener(

         // anonymous inner class to handle clearButton event
         new ActionListener() {

            // call userInterface clearFields() when button pressed
            public void actionPerformed( ActionEvent event )
            {
               userInterface.clearFields();
            }

         } // end anonymous inner class

      ); // end call to addActionListener

      // register window listener to handle window closing event
      addWindowListener(

         // anonymous inner class to handle windowClosing event
         new WindowAdapter() {

            // add current record in GUI to file, then close file
            public void windowClosing( WindowEvent event )
            {

               terminate();  //close databse
            }

         } // end anonymous inner class

      ); // end call to addWindowListener

      setSize( 300, 200 );
      setVisible( true );

   } // end of  constructor

   // connect to database 
   public  void initialize()
   {
      try {

Class.forName( JDBC_DRIVER );

         // establish connection to database
         connection = DriverManager.getConnection( DATABASE_URL,"sa",null );

         // create Statement for querying database
         statement = connection.createStatement();
      }
      catch ( SQLException sqlException ) {
         JOptionPane.showMessageDialog( null, sqlException.getMessage(), 
            "Database Error", JOptionPane.ERROR_MESSAGE );

         System.exit( 1 );
      }

      // detect problems loading database driver
      catch ( ClassNotFoundException classNotFound ) {
         JOptionPane.showMessageDialog( null, classNotFound.getMessage(), 
            "Driver Not Found", JOptionPane.ERROR_MESSAGE );            

         System.exit( 1 );
      }
   } // end method openFile

   // close database
   public  void terminate() 
   {

      try {
            statement.close();
            connection.close();            
         }

         // handle exceptions closing statement and connection
         catch ( SQLException sqlException ) {
            JOptionPane.showMessageDialog( null, 
               sqlException.getMessage(), "Database Error", 
               JOptionPane.ERROR_MESSAGE );

            System.exit( 1 );
         }
   } // end method 

   // add record to file
   public void addRecord()
   {

      String fieldValues[] = userInterface.getFieldValues();

// if sno field value is not empty
      if ( ! fieldValues[ StudentUI.SNO ].equals( "" ) ) {

// output values to student
         try {
            int numberAge = Integer.parseInt(
            fieldValues[ StudentUI.SAGE ] );
            //define string for sql insert  statement 
            String sqlInsert = "INSERT INTO student " +
								 "VALUES ('" + 
								fieldValues[0] + "', '" +
								fieldValues[1]  +"', '"+
								fieldValues[2]+ "', "
								+numberAge+",'"+fieldValues[4] + "')";
            int result = statement.executeUpdate(sqlInsert);
            if (result!=0) {
                userInterface.clearFields();
               JOptionPane.showMessageDialog( this, 
                "Inserted sucess!", "Insert Result", 
                 JOptionPane.INFORMATION_MESSAGE ); 
            }

         } // end try

         // process invalid age number 
         catch ( NumberFormatException formatException ) {
            JOptionPane.showMessageDialog( this,
               "Bad age number ", "Invalid Number Format",
               JOptionPane.ERROR_MESSAGE );
         }

         // process exceptions from file output
         catch (SQLException ee)
				{ System.out.println(ee);	} 
		}  //end of if sno field value is not empty

		else  //if sno field value is  empty
            JOptionPane.showMessageDialog( this,
               "Bad sno number ", "Invalid Number Format",
               JOptionPane.ERROR_MESSAGE );

} // end method addRecord

   public static void main( String args[] )
   {
      new AddStudentFrame();
   }

} // end AddStudentFrame class 

基本就这样啦!不过那个界面的设计代码就不给你啦!

相关问答

更多
  • 我先给你连接数据库的类吧! 步骤1 package test.procedure; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectOrcl { String driver,url,user,pwd; public ConnectOrcl(){ driver = "oracle.jdbc.driver.OracleDriver"; url ...
  • 两种方法 (1) 简单一点,装人下phpmyadmin,图形界面,操作很简单。 (2) 麻烦一点 命令行 create databases name 具体的很多命令,你自己可以看看 输入help 更具体一点,就输入help 命令名,这样就可以看到这条命令的详细用法,如help show ,你会看到很多,比如使用show databases,就可以看到所以的数据库。 另外,数据库的密码应该是在你安装的时候设定的,用户名也是。默认的用户名是root,密码为空。 建议你还是装一个带界面的,这样建表要方便的多。
  • MySQL 的 体系结构 与 Oracle 不一样 Oracle , 是一个 数据库, 一套 服务。 不同的用户, 有 不同的 方案。 也就是 假如你的数据库 有 2个 用户 A, B 他们都创建了一个 test 表 那么 可以通过 SELECT * FROM A.test 和 SELECT * FROM B.test 来 访问这 些表。 MySQL , 是 一套 服务下面, 可以创建多个数据库。 MySQL 下面, 通过 CREATE DATABASE 数据库名; 来创建数据库 并使用 USE 数据库名; ...
  • 方法1 1 双击运行PLSQL Developer软件,连接oracle数据库服务器 PLSQL:[3]PLSQL怎么创建oracle数据库用户步骤阅读 PLSQL:[3]PLSQL怎么创建oracle数据库用户 2 在“对象”下,找到users,右击选择“新建” PLSQL:[3]PLSQL怎么创建oracle数据库用户步骤阅读 3 在弹出的“创建用户”窗口中,输入新用户的名称、口令,默认表空间、临时表空间等 PLSQL:[3]PLSQL怎么创建oracle数据库用户 4 赋予新用户权限,赋予其角色权限: ...
  • 你的问题中有几个问题: 1、oracle中可以建很多个用户,但是oracle是一个支持多用户的数据库,在其中每个用户都是独立的,除非有权限否则互相之间是不可见的,因此没有你说的建好几个用户,其中一个用户可以看到整个表中的数据。 2、为了实现你的功能可以建下面几个表: USER_TBL:存储你的用户信息 USER_PRO_TBL:存储用户的权限信息,用来限制用户可以访问的表或者视图 总之,oracle中的多用户不是你说的那个意思,如果你想设计一个用户交互的界面系统的话,这个系统肯定只能连接一个oracle,也 ...
  • create user xxx identify by 'passwd' defalut tablespace 'xxxxx'; grant create sessionto xxx; grant create table to xxx; 上述赋权是针对本用户下的数据库对象 如果其他用户的,用下面显式赋权 grant select otherSchema.object_name to xxx;
  • oracle有三个默认的用户名和密码~ 1. 用户名:sys 密码:change_on_install 2. 用户名:system 密码:manager 3. 用户名:scott 密码:tiger
  • 1.监听 启动监听 lsnrctl start 停止监听 lsnrctl stop 查看监听状态 lsnrctl status 2.启动 用oracle用户进入 su - oracle 运行sqlplus命令,进入sqlplus环境,nolog参数表示不登录; sqlplus /nolog 以管理员模式进入 conn /as sysdba 启动数据库 startup; 停止数据库 SHUTDOWN IMMEDIATE 远程连接数据库 sqlplus /nolog conn sys/sys@IP:1521/o ...
  • 这个数据的多少和表空间的选择和你的数据量多少是没有太大关系的,需要统计你的数据量的大小。如果数据量很大,像你说的3*100*2000万*1.5k需要估算一下他是有多少G?这样才好设计表空间的分配。从10g开始有表空间支持一个大的数据文件,由多个文件组成肯定没有一个文件好管理,但是如果出问题了一个大数据文件损坏肯定造成的损失很大。这就是易维护性和安全性的取舍。不知道你们磁盘阵列是怎么做的如果没有raid1,数据又很重要的话,也许添加多个数据文件。但是多个数据文件的添加,每个数据文件的大小又受到OS的影响,这个 ...
  • sys 密码:manager 3:system 密码:scott 密码oracle有三个默认的用户名和密码~ 1. 用户名. 用户名. 用户名:change_on_install 2

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)