服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

使用java applet访问数据库


  学习任何的程序语言,当然都得与数据库,java刚刚诞生的时候,对数据库的支持并不是很好,经过这几年的发展,它对数据库的支持也已经完全达到了成熟的境地。由于这里主要是介绍java applet小程序, 因此,不可能用大的篇幅去给大家介绍数据库的知识了,怎么样去建立与设计数据库,还是请大家自己找点书看看吧!这儿,对不住了。
  
  
  
  
  
  我们这儿以microsoft access数据库为例子来说明怎么实现一个数据库的打开与读取的知识。
  
  
  
  
  
  第一步:
  
  使用microsoft access创建一个数据库,也就是我的这个例子要用到的,内容就随便了。
  
  
  
  
  
  第二步:也就是编程序了。
  
  
  
  
  
  1)定义变量,变量的定义如下:
  
  
  
  
  
  textarea thevisits=new textarea (6,80);
  
  //显示数据库的内容
  
  textfield thestatus=new textfield ("",80);
  
  //显示打开数据库的信息。相当于程序的状态栏
  
  connection theconnection; //数据库的连接方法
  
  statement thestatement; //代表一个发送到数据库来执行的数据库命令
  
  resultset theresult; //读取的数据结果,也就是数据库返回的结果
  
  resultsetmetadata themetadata;
  
  //包含了有关数据库命令执行后 返回结果的有用信息。
  
  string thedatasource; //包含了被访问数据库或者数据源的名称,用url形式表示 .
  
  string theuser; //数据库的用户名
  
  string thepassword; //数据库的密码
  
  2)实现界面,可以用开始时给大家介绍的方法来实现,界面的实现相对来说,
  
  
  
  
  
  比较的简单了,如下:
  
  
  
  
  
  public void init()
  
  {
  
  add(thevisits);
  
  add(thestatus);
  
  thevisits.seteditable (false); //设置文本区域不可以被用户写入
  
  thestatus.seteditable (false); //设置文本区域不可以被用户写入
  
  openconnection(); //打开数据库的连接
  
  execsqlcommand("select * from mytable"); //从数据库中读取内容
  
  closeconnection(); //关闭已经打开的数据库
  
  }
  
  3)打开某个数据库的连接
  
  
  
  
  
  public void openconnection()
  
  {
  
  thedatasource="jdbc:odbc:myaccess";
  
  theuser="";
  
  thepassword="";
  
  try
  
  {
  
  class.forname("sun.jdbc.odbc.jdbcodbcdriver");
  
  theconnection=drivermanager.getconnection(thedatasource,theuser,thepassword);
  
  thestatus.settext("status:ok");
  
  }
  
  catch (exception e)
  
  {
  
  handleexception(e);
  
  }
  
  }
  
  
  
  
  
  包含数据源名称的字符串格式为一个特殊的语句:
  
  
  
  
  
  jdbc::
  
  
  
  
  
  协议 名jdbc必须提供,子协议和子名称根据使用数据源类型而变化。
  
  jdbc drivermanager使用子协议来选择书记源响应的驱动程序。子协议
  
  的通常值为“odbc”和“oracle“,子名称包含了该驱动程序使用的附加
  
  信息。通常情况,该子名称是某个网络名称,例如,用于其它web服务:
  
  
  
  
  
  jdba::///
  
  
  
  
  
  驱动程序的说明应该指定子协议和子名称的正确形式。使用odbc时,主机和端口信息没有必要提供,因为数据源总是配置在本地主机上。用于odbc数据源的形式是
  
  
  
  
  
  jdbc:odbc:
  
  
  
  
  
  为了打开数据库连接,用户必须使用具体的驱动程序另外,驱动程序应该指 定如何这样做。如果正在使用jdbc-odbc桥程序,那么可以通过使用名为class类 的forname()方法来使用具体的jdbc-odbc桥驱动程序。
  
  
  
  
  
  class.forname("sun.jdbc.jdbcodbcdriver");
  
  
  
  
  
  然后,拥护可以告诉rmanager打开数据源的连接,使用下列方法:
  
  
  
  
  
  theconnection=drivermanager.getconnection(thedatasource,theuser,thepassword);
  
  
  
  
  
  getconnection()方法返回一个connection对象,用户应该保存这个对象, 因为它是访问数据源的方法。这里,该对象保存到名为theconnection的字段中。
  
  
  
  
  
  如果在打开连接过程中出现错误,则sqlexception作废,通过在try-catch 块内打开连接的语句,拥护可以处理这种异常。通过使用后面要讲的handleexception(), 在textfield内显示一个简短的相应信息。
  
  
  
  
  
  4)执行sql命令
  
  
  
  
  
  public void execsqlcommand(string command)
  
  {
  
  try{
  
  thestatement=theconnection.createstatement();
  
  theresult=thestatement.executequery (command);
  
  themetadata=theresult.getmetadata ();
  
  int columncount=themetadata.getcolumncount ();
  
  thevisits.settext("");
  
  while(theresult.next ())
  
  {
  
  for(int i =1;i<=columncount;i++)
  
  {
  
  string colvalue=theresult.getstring(i);
  
  if(colvalue==null)colvalue="";
  
  thevisits.append (colvalue+";");
  
  }
  
  thevisits.append ("/n");
  
  }
  
  }catch(exception e)
  
  {
  
  handleexception(e);
  
  }
  
  }
  
  为了执行该命令,程序使用connection对象的createstatement()方法创建 一个可以有查询的statement。然后,它激活statement对象的executivequery() 方法,用来传递包含sql查询语句的字符串。从init()中传送过来的参数―― slect * from mytable是一个简单的数据库查询语言,如果你还不知道什么意思, 那么请你还是查看一本有关数据库的书吧,这些内容很多,不是我这儿一下子能说 清楚的了。它的意思简单的说,就是查找表――mytable中的所有(*)信息。它会 返回数据库中的所有内容,并把它作为resultset访问的结果。接着该程序激活resultset 对象的getmetadata()方法。这时,返回一个resultsetmetadata值,该值存储在 一个称为themetadata的变量中。使用resultsetmetadata对象,可以获得很多有用的 数据;这里该程序使用getcolumncount()方法获得结果表中列的数量。最后,该程序反 复使用该结果表,激活theresult的next()方法获得结果表中的每一条记录,只到该方法 使用完全部记录返回flase为止。
  
  
  
  
  
  5)关闭数据库连接
  
  
  
  
  
  public void closeconnection()
  
  {
  
  try{
  
  theconnection.close ();
  
  }
  
  catch(exception e)
  
  {
  
  handleexception(e);
  
  }
  
  }
  
  当用户访问完某个数据库时,应该关闭数据库连接,释放与连接有关的资源。用户创建 的任何打开的resultset或者statement对象将 自动关闭。另外,在关闭连接时可能发 生一个sqlexception,也放到后面处理。
  
  
  
  
  
  6)处理异常和错误
  
  
  
  
  
  public void handleexception(exception e)
  
  {
  
  thestatus.settext("error:"+e.getmessage ());
  
  e.printstacktrace ();
  
  if(e instanceof sqlexception)
  
  {
  
  while((e=((sqlexception)e).getnextexception ())!=null)
  
  {
  
  system.out.println(e);
  
  }
  
  }
  
  }
  
  handleexception()方法用来处理以上的错误和异常。该方法设置状态textfield包含与 异常有关的错误消息,使用getmessage()方法获得该消息。它还可以在system.out打印 堆栈轨迹。
  
  
  
  
  
  三 安装odbc数据源
  
  
  
  
  
  为了运行这个应用程序,用户必须 首先创建一个与mytable数据库相对应的 odbc数据源。 为了通过odbc使用access,用户必须安装access odbc驱动程序。如果用户没有安装该驱动 程序,那么还是先安装吧,什么,不会,不会也不行了,找一本书好好看看吧,这是肯定要 看的。我这儿简单的给你说一下吧:

扫描关注微信公众号