利用JavaBeans实现两种数据库间数据导入的一种方法

合集下载

javaweb导出导入数据库

javaweb导出导入数据库

javaweb导出导入数据库第一篇:java web导出导入数据库导出数据库进入C:Program FilesMySQLMySQL Server 5.0bin利用mysqldump--user=root--password=root book >bookbak.sql或mysqldump –u root-p abc > abc.sql 导出整个数据库:mysqldump mysql > c:mydb.sql-u root-p导入Create 数据库Use 数据库Source 脚本第二篇:Oracle数据库导入导出命令总结执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle中,安装目录ora9iBIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件是被包装后的类文件。

SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。

下面介绍的是导入导出的实例。

数据导出:将数据库zxcc完全导出,用户名kf 密码zx 导出到D:zxcc.dmp中exp kf/zx@zxcc file=d:zxcc.dmp full=yfull=y 表示全库导出。

full总共有2个可选项yes(y)/no(n),缺省情况下full=no,这时只会将该用户下的对象导出。

将数据库zxcc中kf用户与cc用户的表导出exp kf/zx@zxcc file=d:zxcc_ur.dmp owner=(kf,cc)full方式可以备份所有用户的数据库对象,包括表空间、用户信息等,owner=XX只能备份指定用户的对象,其他用户下的就不备份了,EXP中full=y和owner=XX是不能同时使用的。

将数据库zxcc中的表kf_operator、kf_role导出exp kf/zx@zxcc file= d:zxcc_tb.dmp tables=(kf_operator,kf_role)tables=xx 表示备份相关表,不能同时和owner、full使用。

信息系统集成试卷及参考答案

信息系统集成试卷及参考答案

云南大学软件工程硕士《信息系统集成》课程考试试卷一、名词解释题(本类题共10题,每小题2分,共20分)1. 信息系统2. 体系结构3. B/S模式4. DNS5. 信息系统集成6. 数据集成7. 数据共享8. 接口集成9. 数据仓库技术10. J2EE1、信息系统是用信息化手段将业务逻辑固化的,是人、设备、应用软件、操作环境、业务流程的集合体。

信息系统是管理理念、整合实施水平的体现。

信息系统是由计算机硬件、网络和通讯设备、计算机软件、信息资源、信息用户和规章制度组成的以处理信息流为目的的人机一体化系统。

2、体系结构,指信息系统的每个组成部分之间的相互关系,包括:层次、拓朴结构、布局、接口、边界等;组成部分包括:硬件、软件、数据、操作规程、文档、参与的人员等。

3、B/S(Browser/Server,浏览器/服务器)模式又称B/S结构。

它是随着Internet技术的兴起,对C/S模式应用的扩展。

在这种结构下,用户工作界面是通过IE浏览器来实现的。

B/S 模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, W AN, Internet/Intranet等)访问和操作共同的数据;最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中断都会造成系统瘫痪。

4、DNS 是域名系统(Domain Name System) 的缩写,它是由解析器和域名服务器组成的。

域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。

将域名映射为IP地址的过程就称为“域名解析”。

域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

DNS 命名用于Internet 等TCP/IP 网络中,通过用户友好的名称查找计算机和服务。

当用户在应用程序中输入DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如IP 地址。

在JavaBean中连接数据库

在JavaBean中连接数据库

在JavaBean中连接数据库随着JSP语言技术的发展,在JSP页面中连接数据库的编程方式越来越少,在开发大型项目中,通常采用将连接数据库代码封装在JavaBean或Servlet中,这样可以提高代码重用性,减小页面维护难度。

下面依然以登录为例,演示在JavaBean中连接数据库。

操作步骤如下。

(1)在Eclipse中创建Web项目07。

(2)为了简化问题,首先创建一个与登录信息相关联的JavaBean,名称为myBean.java,代码如下:src\com\wsy\myBean.java关键代码:public class myBean {private String name; //定义name属性private String password; //定义password属性public String getName() { //定义name属性的getXXX()方法StringTrans s=new StringTrans(); //实例化StringTrans对象return s.tranC(name); //将name属性转码为UTF-8 }public void setName(String name) { //定义name属性的setXXX()方法 = name;}public String getPassword() { //定义password属性的getXXX()方法return password;}public void setPassword(String password) { //定义password属性的setXXX()方法this.password = password;}}代码说明:从上述代码中可以看出,myBean.java除了两个属性值外,还包含4个根据这两个属性值创建的setXXX()方法与getXXX()方法,myBean.java中不含有任何逻辑代码,主要的功能是数据传递。

JavaBean简单介绍及其应用

JavaBean简单介绍及其应用

JavaBean简单介绍及其应⽤Bean的中⽂含义是“⾖⼦”,顾名思义JavaBean是⼀段Java⼩程序。

JavaBean实际上是指⼀种特殊的Java类。

它通经常使⽤来实现⼀些⽐較经常使⽤的简单功能。

并能够⾮常easy的被重⽤或者是插⼊其它应⽤程序中去。

全部遵循⼀定编程原则的Java类都能够被称作JavaBean。

⼀. Java Bean技术概述Java Bean是基于Java的组件模型,由属性、⽅法和事件3部分组成。

在该模型中,JavaBean能够被改动或与其它组件结合以⽣成新组件或完整的程序。

它是⼀种Java类,通过封装成为具有某种功能或者处理某个业务的对象。

因此。

也能够通过嵌在JSP页⾯内的Java代码訪问Bean及其属性。

Bean的含义是可反复使⽤的Java组件。

所谓组件就是⼀个由能够⾃⾏进⾏内部管理的⼀个或⼏个类所组成、外界不了解其内部信息和执⾏⽅式的群体。

使⽤它的对象仅仅能通过接⼝来操作。

⼆. Java Bean编写规范Java Bean实际上是依据JavaBean技术标准所指定Bean的命名和设计规范编写的Java类。

这些类遵循⼀个接⼝格式。

以便于使函数命名、底层⾏为以及继承或实现的⾏为,其最⼤的长处在于可以实现代码的可重⽤性。

Bean并不须要继承特别的基类(BaseClass)或实现特定的接⼝(Interface)。

Bean的编写规范使Bean的容器(Container)可以分析⼀个Java类⽂件。

并将其⽅法(Methods)翻译成属性(Properties),即把Java类作为⼀个Bean类使⽤。

Bean的编写规范包含Bean类的构造⽅法、定义属性和訪问⽅法编写规则。

2.1. Bean组件的⼯作机制在JavaBeansVersion1.01 A规范中定义了该组件的5种重要机制:(1)内省(Introspection):组建能够发表其⽀持的操作和属性。

同⼀时候也⽀持在其它组件中发现反复利⽤的对象库,如⽤户权限控制和电⼦邮件⾃⼰主动回复等。

使用JavaBean连接数据库

使用JavaBean连接数据库

JSP+JavaBean1、JavaBean类1、显示学生信息内容JavaBeanpackage com.DataBase;import java.sql.*;public class MyDbBean{private Statement stmt = null;ResultSet rs = null;private Connection conn = null;private String dsn;//构造函数public MyDbBean() { }//根据dsn参数,加载驱动程序,建立连接public void getConn(String dbname, String uid, String pwd) throws Exceptiontry{dsn = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=" +dbname;Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();conn = DriverManager.getConnection(dsn, uid, pwd);}catch (Exception ex){System.err.println("aq.executeQuery: " + ex.getMessage());}}//执行查询类的SQL语句,有返回集public ResultSet executeQuery1(String sql){rs = null;try{stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONL Y);rs = stmt.executeQuery(sql);}catch(SQLException ex){System.err.println("aq.executeQuery:"+ex.getMessage());}return rs;}//执行更新类的SQL语句,无返回集public void executeUpdate2(String sql){stmt = null;rs=null;try{stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONL Y);stmt.executeQuery(sql);stmt.close();conn.close();}catch(SQLException ex){System.err.println("aq.executeQuery: " + ex.getMessage());}}//关闭对象public void closeStmt()try{ stmt.close(); }catch(SQLException ex){System.err.println("aq.executeQuery: " + ex.getMessage());}}public void closeConn(){try{ conn.close(); }catch(SQLException ex){System.err.println("aq.executeQuery: " + ex.getMessage());}}}“list.jsp”<%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.sql.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="testbean" scope="session" class="com.DataBase.MyDbBean" /><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>学籍管理系统</title></head><%! String url,sql; %><%! int i;%><body bgcolor="#ffffff"><div align="center"><font color="#000000" size="5">学籍管理系统</font> </div> <table width="75%" border="1" cellspacing="1" cellpadding="1" align="center"><tr><td width=16% align=center>学号</td><td width=16% align=center>姓名</td><td width=8% align=center>性别</td><td width=8% align=center>年龄</td><td width=16% align=center>籍贯</td><td width=12% align=center>更改</td><td width=12% align=center>删除</td></tr><%//调用getConn方法与数据库建立连接testbean.getConn("Data_Stu", "sa","");sql="select * from stuInfo";ResultSet rs=testbean.executeQuery1(sql);//查询数据库while(rs.next()){%><tr><td width=16% align=center><%=rs.getString(1)%></td><td width=16% align=center><%=rs.getString(2)%></td><td width=8% align=center><%=rs.getString(3)%></td><td width=8% align=center><%=rs.getInt(4)%></td><td width=16% align=center><%=rs.getString(5)%></td><td width=12% align=center><%=rs.getString(6)%></td><td width=12% align=center><a href="change.jsp?xuehao=<%=rs.getString(1)%>">修改</a></td> <td width=12% align=center><a href="del.jsp?xuehao=<%=rs.getString(1)%>">删除</a></td></tr><%}rs.close();testbean.closeStmt();testbean.closeConn();%></table><div align="center"><a href="insert.jsp">添加新记录</a> </div></body></html>2、添加记录“insert.jsp”<%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.sql.*,java.util.*;" errorPage=""%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>添加记录</title></head><body bgcolor="#FFFFFF" text="#000000"><div align="center"><font color="#000000" size="5">添加新记录</font></div><form name="form1" method="post" action="query.jsp"><table width="35%" border="1" cellspacing="1" cellpadding="1" align="center"> <tr><td width="46%" align="center">学号</td><td width="54%">&nbsp;&nbsp;&nbsp;<input type="text" name="xuehao" size="7"></td></tr><tr><td width="46%" align="center">姓名</td><td width="54%">&nbsp;&nbsp;&nbsp;<input type="text" name="name" size="8"></td></tr><tr><td width="46%" align="center">性别</td><td width="54%">&nbsp;&nbsp;&nbsp;<select name="sex" size="1"><option value="男" selected> 男</option><option value="女">女</option></select></td></tr><tr><td width="46%" align="center">年龄</td><td width="54%">&nbsp;&nbsp;&nbsp;<input type="text" name="age" size="2"></td></tr><tr><td width="46%" align="center">籍贯</td><td width="54%">&nbsp;&nbsp;&nbsp;<input type="text" name="jiguan" size="8"></td></tr><tr><td width="46%" align="center">院系</td><td width="54%">&nbsp;&nbsp;&nbsp;<input type="text" name="department" size="8"></tr><tr align="center"><td colspan="2" align="center"><input type="submit" name="Submit" value="提交">&nbsp;&nbsp;&nbsp;<input type="reset" name="reset" value="清空"></td></tr></table></form></body></html>“query.jsp”<%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.sql.*,java.util.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="query" scope="session" class="com.DataBase.MyDbBean"/> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>插入数据</title></head><body><%! String xuehao,name,sex,age,jiguan,department,url,sql; %><%! int i;%><%xuehao=request.getParameter("xuehao").trim();name=request.getParameter("name").trim();name=new String(name.getBytes("ISO-8859-1"),"UTF-8");//编码转换sex=request.getParameter("sex").trim();sex=new String(sex.getBytes("ISO-8859-1"),"UTF-8");age=request.getParameter("age").trim();i=Integer.parseInt(age);jiguan=request.getParameter("jiguan").trim();jiguan=new String(jiguan.getBytes("ISO-8859-1"),"UTF-8");department=request.getParameter("department").trim();department=new String(department.getBytes("ISO-8859-1"),"UTF-8");if(xuehao.length()!=7){//检查学号的位数response.sendRedirect("err.jsp");}response.sendRedirect("err.jsp");}//调用getConn()方法与数据库建立连接query.getConn("Data_Stu","sa","");sql="select * from stuInfo where 学号='"+xuehao+"'";ResultSet rs=query.executeQuery1(sql);if(rs.getRow()>0){ response.sendRedirect("err.jsp"); }sql="insert into stuInfo(学号,姓名,性别,年龄,籍贯,院系)";sql=sql+"values('"+xuehao+"','"+name+"','"+sex+"','"+i+"','"+jiguan+"','"+department+"')";query.executeUpdate2(sql);out.println("<font size=3 color=blue>正在处理信息,请稍后......</font><meta http-equiv='refresh' content='2;url=list.jsp'>");rs.close();query.closeStmt();query.closeConn();%></body></html>3、更改记录“change.jsp”<%@page contentType="text/html" pageEncoding="UTF-8"%><%@ page import="java.sql.*,java.util.*;" errorPage=""%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="modify" scope="session" class="com.DataBase.MyDbBean"/><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>修改记录</title></head><body bgcolor="#FFFFFF" text="#000000"><div align="center"><font color="#000000" size="5">修改记录</font> </div><%! String xuehao,url,sql,sex; %><%xuehao=request.getParameter("xuehao").trim();//调用getConn()方法与数据库建立连接modify.getConn("Data_Stu","sa","");sql="select * from stuInfo where 学号='"+xuehao+"'";ResultSet rs=modify.executeQuery1(sql);while(rs.next()){%><form name="form1" method="post" action="change_query.jsp?xuehao=<%=xuehao%>"><table width="35%" border="1" cellspacing="1" cellpadding="1" align="center"><tr><td width="46%" align="center">学号</td><td width="54%"> &nbsp;&nbsp;&nbsp;<%=rs.getString(1)%></td></tr><tr><td width="46%" align="center">姓名</td><td width="54%"> &nbsp;&nbsp;&nbsp;<input type="text" name="name" size="8" value=<%=rs.getString(2)%>></td></tr><tr><td width="46%" align="center">性别</td><td width="54%">&nbsp;&nbsp;<%sex=rs.getString(3).trim();if(sex.equals("男")){%><option value="男" selected>男</option><option value="女">女</option></select><% }else{%><select name="sex" size="1"><option value="男" >男</option><option value="女"selected>女</option></select><% } %></td></tr><tr><td width="46%" align="center">年龄</td><td width="54%"> &nbsp;&nbsp;&nbsp;<input type="text" name="age" size="2" value=<%=rs.getInt(4)%>></td></tr><tr><td width="46%" align="center">籍贯</td><td width="54%">&nbsp;&nbsp;&nbsp;<input type="text" name="jiguan" size="8" value=<%=rs.getString(5)%>></td></tr><tr><td width="46%" align="center">院系</td><td width="54%"> &nbsp;&nbsp;&nbsp;<input type="text" name="department" size="8" value=<%=rs.getString(6)%>></td></tr><tr align="center"><td colspan="2" align="center"><input type="submit" name="Submit" value="提交">&nbsp;&nbsp;&nbsp;<input type="reset" name="reset" value="清空"></td></tr></table></form><%}rs.close();modify.closeStmt();modify.closeConn();%></body></html>“change_query.jsp”<%--Document : change_queryCreated on : 2010-5-8, 17:32:29Author : Administrator--%><%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.sql.*,java.util.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="modify" scope="session" class="com.DataBase.MyDbBean"/><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>修改记录</title></head><body><%! String xuehao,name,sex,age,jiguan,department,url,sql; %><%! int i;%><%xuehao=request.getParameter("xuehao").trim();out.print(xuehao);name=request.getParameter("name").trim();name=new String(name.getBytes("ISO-8859-1"),"UTF-8");sex=request.getParameter("sex").trim();sex=new String(sex.getBytes("ISO-8859-1"),"UTF-8");age=request.getParameter("age").trim();i=Integer.parseInt(age);jiguan=request.getParameter("jiguan").trim();jiguan=new String(jiguan.getBytes("ISO-8859-1"),"UTF-8");department=request.getParameter("department").trim();department=new String(department.getBytes("ISO-8859-1"),"UTF-8");if(name.equals("")){response.sendRedirect("err1.jsp");}try{//调用getConn()方法与数据库建立连接modify.getConn("Data_Stu","sa","");sql="update stuInfo set 姓名= '"+name+"',性别= '"+sex+"',年龄="+i+",籍贯= '"+jiguan+"',院系=modify.executeUpdate2(sql);out.println("<font size=3 color=blue>正在修改记录,请稍后......</font><meta http-equiv='refresh' content='2;url=list.jsp'>");modify.closeStmt();modify.closeConn();}catch(Exception e){response.sendRedirect("err.jsp");}%></body></html>4、删除记录“del.jsp”<%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.sql.*,java.util.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="del" scope="session" class="com.DataBase.MyDbBean"/><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>删除记录</title></head><body><%! String xuehao,url,sql; %><%xuehao=request.getParameter("xuehao").trim();try{//调用getConn()方法与数据库建立连接del.getConn("Data_Stu","sa","");sql="delete from stuInfo where 学号='"+xuehao+"'";del.executeUpdate2(sql);out.println("<font size=3 color=blue>正在删除数据,请稍后......</font>" +"<meta http-equiv='refresh' content='2;url=list.jsp'>");del.closeStmt();del.closeConn();}catch(Exception e){response.sendRedirect("err.jsp");}%></body></html>JSP+ Servlet 访问数据库<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><body><form name="form1" method="post" action="servlet"><p>客户查询</p><p>请输入用户名:<input type="text" name="USERNAME"><input type="submit" name="Submit" value="提交"></p><p>&nbsp;</p></form><form name="form2" method="get" action="servlet"><p>根据总数查询</p><p>总数范围在<input type="text" name="totalmin">和<input type="text" name="totalmax">之间</p><p><input type="submit" name="Submit2" value="提交"></p></form><p>&nbsp;</p></body></html>package tree;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;import java.sql.*;public class queryextends HttpServlet {private static final String CONTENT_TYPE = "text/html; charset=GB2312";//Initialize global variablespublic void init() throws ServletException {super.init();}//执行HTTP Post请求public void doPost(HttpServletRequest request,HttpServletResponse response) throwsServletException,IOException{PrintWriter out=response.getWriter();response.setContentType(CONTENT_TYPE);//设置响应的MIME类型。

利用JavaBeans实现两种数据库间数据导入的一种方法

利用JavaBeans实现两种数据库间数据导入的一种方法

计 算机 网络化 的加 速发 展 和 网络 性能 的提 高 ,
DB3 DB4 为 数 据 源 ; 头 为 转 化 模 式 ) , 箭 。为 解 决 4个
异 构数 据 源 间 的互访 , 须 建立 起 1 必 2种 访 问 模 式 。
使 信 息 系统 得 到 了快 速 的 发 展 。 为 了 充 分 利 用 各 信
利用a B n实 两 数 库 数 导 的 种 法 Ja a 现 种 据 间 据 入 一 方 v es
张 斌 刘彦 军 张凤 英 。侯 , , , 峰
000) 1 0 0 (. 1 内蒙 古 医 学 院 ;. 2 内蒙 古 财 经 学 院 ;. 林 格 尔 县 高 级 中学 , 3和 内蒙 古 呼 和 浩 特 摘 要 : 论 了 在 B/ 讨 S模 式 下 , 现 不 同 数 据 库 之 间 的 数 据 互 访 , 现 教 学 管 理 系 统 中 异 构 数 库 - 实 实 2 _
个 异 构 数 据 源 建 立 起 两 种 访 问 模 式 , 能 实 现 它 们 才 的 互 访 , 使 互 访 系统 表 现 出 较 大 的 复 杂 性 , 便 于 这 不 灵 活 的访 问 。 每 次 在 互 访 系 统 中 加 人 一 个 新 的数 据 源 , 须 为 这 个 新 数 据 源 建 立 起 与 已 有 数 据 源 的 多 必 种 访 问模 式 , 无 疑 又 降 低 了 系统 的 可 扩 展 性 。 这
而 使 系统 具 有 较 强 的 灵 活 性 和 开 放 性 。 关 键 词 :DB ; J C ODBC; a a e n ;DB J v B a s J C— — ODBC B i g ; 据 库 rd e 数
中图分 类号 : TP3 1 l

Java与数据库的连接与操作

Java与数据库的连接与操作

Java与数据库的连接与操作在当今信息时代,数据库的使用变得不可或缺。

无论是企业还是个人,都需要对海量数据进行储存、管理和操作。

而Java作为一种功能强大的编程语言,具有广泛的应用范围,极其擅长与数据库的连接和操作。

本文将探讨Java与数据库的连接与操作的方法和技巧。

一、数据库的连接在使用Java与数据库进行交互之前,我们首先需要建立数据库的连接。

Java提供了多种方式与数据库进行连接,其中最常用和推荐的是使用JDBC(Java Database Connectivity)。

JDBC是Java为访问数据库而制定的一套API,它提供了一种标准的方法来连接和操作不同类型的数据库,包括关系型数据库如Oracle和MySQL,以及非关系型数据库如MongoDB。

在使用JDBC连接数据库时,我们首先需要加载数据库的驱动程序,然后根据数据库类型、用户名和密码等信息建立连接。

以下是一个使用JDBC连接MySQL数据库的示例代码:```javaimport java.sql.*;public class DatabaseConnection {public static void main(String[] args) {Connection conn = null;// 加载数据库驱动Class.forName("com.mysql.jdbc.Driver");// 建立连接conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");// 进行数据库操作...} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {try {if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();}}}```在以上代码中,我们首先使用`Class.forName()`方法加载MySQL数据库的驱动程序。

Javabean技术访问数据库

Javabean技术访问数据库

Javabean访问数据库【摘要】:提出实现与数据库紧密结合的数据类型, 并使用该类型的对象访问和操作数据库。

对B/S 模式下利用JSP和JavaBean 技术进行数据库访问开发强大的JSP程序, 使得显示页面和数据库访问和操作相分离的研究。

可以提高数据库访问和操作的安全性, 便于调试和维护, 且可重用封装数据库操作的JavaBean, 从而增加代码的重用性和系统的安全性。

【关键词】:javabean 数据库引言:在开发web应用程序时,数据库的访问是必不可少的。

通过对数据库的访问实现对数据的增、删、改、查等操作。

这一系列的操作代码是烦琐且在每次对数据库的操作时都要重复编写的代码。

Javabean的任务就是”一次性编写,任何地方执行,任何地方重用“。

这就是是实际上解决困扰工业上的日益增加的复杂性问问题,提供一个简单、紧凑的和优秀的问题解决方案。

在利用JSP开发时可使用Javabean技术来解决。

Javabean的概述Javabean是一种Java语言写成的可重用的软件组件。

组件是自含的、可重复使用的软件单元;Javabean中的组件,则可以使用可视的应用程序开发,可视编写地将他们编写到Java程序中.Javabean在容器中运行并对外提供具体的业务逻辑操作功能。

一般来说,Javabean被分成两类:可视化Javabean和不可视化Javabean。

可视化Javabean可以表示简单的GUI组件,不可视化Javabean 在后台完成业务逻辑处理功能,例如:访问数据库执行查询操作中的Javabean,这些javabean在运行时不需要任何可视的界面。

在JSP程序中所用的Javabean 一般以不可视化的组件为主,而可视化的 Javabean一般用以Applet程序或者Java应用程序。

Javabean是一些Java类,任何具有某种特性和事件接口约定的Java类都可以是一个Javabean。

为写成Javabean,类必须是具体的和公共的,并且具有无参数的构造器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012年1月内蒙古科技与经济Januar y 2012 第1期总第251期Inner M o ngo lia Science T echnolo gy &Economy N o .1T o tal N o .251利用JavaBeans 实现两种数据库间数据导入的一种方法X张 斌1,刘彦军2,张凤英3,侯 峰1(1.内蒙古医学院;2.内蒙古财经学院;3.和林格尔县高级中学,内蒙古呼和浩特 010000) 摘 要:讨论了在B/S 模式下,实现不同数据库之间的数据互访,实现教学管理系统中异构数库之间的数据转换的一个方法。

论述了一个基于JDBC(Jav a Dat aBase Connectiv it y )异构数据库教学管理系统的实现过程。

在该系统中,利用JavaBeans 实现了JDBC 驱动程序的动态加载和数据库的动态链接,从而使系统具有较强的灵活性和开放性。

关键词:JDBC ;ODBC ;JavaBeans ;JDBC ——ODBC Bridg e ;数据库 中图分类号:T P311 文献标识码:A 文章编号:1007—6921(2012)01—0080—03 计算机网络化的加速发展和网络性能的提高,使信息系统得到了快速的发展。

为了充分利用各信息系统已有的数据源,经常需要实现不同信息系统之间的数据互访。

然而,系统实现技术以及实现时间上的差异,造成了在不同的信息系统中存有大量异构数据源。

当前,世界上大量宝贵的有价值的信息都以不同形式存放于不同类型的数据库系统中。

传统而普遍的Client /Sever 结构数据库系统不易于动态地适应企业、教育等行业日益增长的业务要求,不能跨平台应用,长期的维护需要很高的费用。

另一方面,从数据的存储方式上看,在本质上表示相同的信息的数据,在不同的数据源中被定义为不同的存储方式。

如:定义字段的不同,字段的类型不同,定义字段的长度不同等等。

异构数据库的存在给实现不同信息系统间数据互访带来了很大不便。

为此,解决异构数据源方便、灵活的互访问题便成为一个有意义的研究课题,尤其是在教学管理系统中实现两种不同数据库间数据的导入和导出。

1 解决方案在实现异构数据库间数据的转换与互访过程中,笔者总结了几种解决方案,通过几种方案的比较,可以选出一种比较合理的、方便的、易于使用的解决方案来实现异构数据库间数据的转换与互访,尤其是利用JDBC 技术以及第三方提供的驱动程序来实现数据库间数据的导入与导出就更为方便了。

在教务管理信息系统中的学籍管理部分,笔者就是利用JDBC 技术来实现数据库间数据的导入。

1.1 传统的解决方案解决异构数据源互访的传统方法是两种异构数据源间建立起互相转化的模式,见图1(DB 1,DB 2,DB3,DB4为数据源;箭头为转化模式)。

为解决4个异构数据源间的互访,必须建立起12种访问模式。

所以,对于N 个异构数据源,为了实现他们的互访就需要建立的转化模式总和为:T =N (N -1),相应的交互复杂度为:O(N 2)。

如果采用传统的解决方案实现异构数据源互访会给实现带来极大的不便。

在两个异构数据源建立起两种访问模式,才能实现它们的互访,这使互访系统表现出较大的复杂性,不便于灵活的访问。

每次在互访系统中加入一个新的数据源,必须为这个新数据源建立起与已有数据源的多种访问模式,这无疑又降低了系统的可扩展性。

图1 异构数据源互相转化模式1.2 直接导入与导出方案直接导入、导出的方法是利用数据库管理工具通过图形界面进行的直接操作。

比如,使用SQL Server 2000数据库,导入数据是指从SQL Server 的外部数据源检索数据,并将数据插入到SQL Server 表的过程。

而导出数据是将SQL Serv er 实例中的数据析取为某用户指定格式的过程。

SQL Server 2000提供了一个数据导入与数据导出工具(或者是利用企业管理器),这是一个向导程序,利用这个向导工具,可以将桌面数据库系统(如Access 和F ox -・80・X收稿日期:2011-11-28作者简介:张斌,男,内蒙古呼和浩特人,现工作于内蒙古医学院;刘彦军,男,内蒙古呼和浩特人,现工作于内蒙古财经学院;张凤英,女,内蒙古呼和浩特人,现工作于和林格尔县高级中学;侯峰,男,内蒙古呼和浩特人,现工作于内蒙古医学院(通讯作者)。

 张斌,等・利用JavaBeans 实现两种数据库间数据导入的一种方法2012年第1期Pro 等)中的数据导入SQL Server 数据库,也可以将SQL Server 数据库中的数据导出到其他数据文件(如Access 的.MDB 文件),此外,还可以完成其他类型的迁移和转换任务。

所以,利用这种方案也可以实现不同数据源之间的互访,只不过每次导入导出都必须手工操作,这样给系统管理人员加大了工作量。

另外,这样的手工操作需要重复很多次并且需要一直保持下去,这样做太麻烦、太繁琐。

1.3 利用JDBC 技术、ODBC 技术的解决方案ODBC 、JDBC 这种开放式的连接技术是异构数据库信息集成中的关键技术。

所以,在“教务管理信息系统”中我们使用JDBC ——ODBC 桥(JDBC ——ODBC Bridge )的方法,这种方法利用JDBC ——ODBC 桥驱动程序,把标准JDBC 的调用转换为ODBC 的调用,并借助于操作系统把它发送到ODBC源,见图2。

图2 JDBC ——O DBC 解决方案通过ODBC 数据源的桥访问数据库并不是最好的解决方案。

理由是:¹利用JDBC 访问ODBC 数据源是一种效率低下并且使用范围有限的解决方案。

使用这种解决方案时,不仅系统必须传递通过多个层次的数据库调用,而且它将JDBC 代码的功能限制在驱动程序能够处理的范围之内;ºODBC 不容易使用,即使简单的查询亦得使用复杂的选项;»使用ODBC 时必须每台用户端电脑都要安装驱动程序管理器,另外再安装JDBC 驱动程序。

因为ODBC 是M icrosof t 公司提供的,所以,在安装Window s 操作系统的电脑可以使用ODBC ,但如果改变了操作系统(比如L inux 操作系统)那么ODBC 就不能正常使用。

1.4 直接利用JDBC 技术以及第三方提供的驱动程序直接利用JDBC 技术以及第三方提供的驱动程序可以访问某些专用的数据源文件,比如访问.DBF 数据源文件时,可以使用JDBC ——ODBC Bridg e 访问,但是如果是利用JDBC ——ODBC Br idge 访问.DBF 数据源文件,会给系统带来很大不便,灵活性不强。

如果是利用JDBC 技术以及第三方提供的驱动程序来连接数据库,不存在环境的限制问题(比如跨平台的使用),因为JDBC 提供了Jav a 程序与多种数据库通信的途径,而不需要编写任何与平台有关的代码来实现这种通讯。

JDBC 抽象了各个数据库厂商的详细资料并且概括了大多数常见的数据库访问函数,所以,决定改变数据库时,可以保证代码不变而只需改变JDBC 驱动程序。

JDBC 驱动程序是由Java 虚拟机使用,它把通用JDBC 调用翻译成数据库能够理解的与厂商有关的数据库调用,这样就可以实现不同数据库间的互相访问。

这种访问模式见图3。

图3 直接利用JDBC 访问模式JDBC 驱动程序一般由数据库厂商提供,也可在Int ernet 找到第三方提供的驱动程序,比如访问.DBF 数据源文件就可以直接找到提供该类型的数据库源文件的驱动程序,如:AVEconnect JDBC 。

故这种解决方案和上面介绍的三种方案相比的优点是:灵活性强、易实现、使用范围广、不受环境的限制等。

下面以方案4介绍一下它的具体操作步骤(利用JAVABEANS 实现数据库间的访问):1.4.1 与数据库建立连接所有的JDBC 程序的第一步是与数据库建立连接。

1.4.1.1 加载驱动程序。

为了与特定的数据源相连,JDBC 必须加载相应的驱动程序,使用Class.f orNam e 方法显式加载一个驱动程序的格式如下:Class .f orNam e (“acs .jdbc .Driver ”)。

1.4.1.2 建立连接。

与某个数据源建立连接是用DriverM anager 类的g et Connect ion 方法。

例如:St ring url =“jdbc:at inav:machine name:7997”;Connect io n cn =null cn =DriverM anag er.g et Connection (ur l,“atinav ”,“acs ”);其中,url 指定连接的数据源,atinav 用户名,acs 密码1.4.2 查询与检索数据库可以通过创建St at em ent 对象来执行查询语句。

所用的方法是Connect ion 类的creat eSt at ement ()。

比如:St at em ent stm t =cn.createSt at ement ();在St at em ent 对象上,可以使用ex ecuteQuer y 方法来执行一个查询语句,并把检索的结果集返回给ResultSet 对象,比如:ResultSet rs;r s =stm t.execut eQuery (“select *fro mst udent ”)・81・ 总第251期 内蒙古科技与经济 此外,还可以用其他方法实现对数据库的其他操作,如:insert表示插入数据、update表示更新数据、delet e表示删除数据等。

以上讨论了不同数据库之间互相访问的解决方案以及利用JavaBeans实现数据库连接的具体操作。

下面结合具体的实例来介绍不同数据库间的互访问题。

2 实例应用JDBC技术与第三方提供的驱动程序通过JavaBeans的具体实现在笔者开发的“教务管理信息系统”中得到了具体的应用,该系统是在Window s 2000下研制开发的,当然还可以在LINU X或其他操作系统下运行。

2.1 问题的产生在教务管理系统中,学生的基本信息是该管理系统中最重要的信息,也是整个系统正常运行的基础。

所以,教务管理中的学籍管理自然也是非常重要的,它主要包括学号、姓名、年龄、年级、入学年份、家庭住址等。

在该管理部分要求把新生的基本信息导入到教务处的学生基本信息表中。

新生表的数据源文件采用的是.DBF格式,而教务处使用的数据库则是SQL server2000,由于数据源的种类和数据存储格式定义上存在差异,所以,要实现数据的导入就要实现数据源间的转化与互访。

为了解决以上问题,在学籍管理中笔者采用了JDBC技术与第三方提供的驱动程序的解决方案(也就是解决方案4)来实现数据的导入。

相关文档
最新文档