用JAVA连接
数据库主要有两种方式,一是用JDBC-ODBC桥来连接,二是用相关厂商提供的相应驱动程序来连接,首先谈谈第一种连接。 \x0d\x0a\x0d\x0aJDBC-ODBC桥接器是用JdbcOdbc.Class和一个用于访问ODBC驱动程序的本地库实现的。对于WINDOWS平台,该本地库是一个动态连接库DLL(JDBCODBC.DLL)。 \x0d\x0a\x0d\x0a由于JDBC在设计上与ODBC很接近。在内部,这个驱动程序把JDBC的方法映射到ODBC调用上,这样,JDBC就可以和任何可用的ODBC驱动程序进行交互了。这种桥接器的优点是,它使JDBC目前有能力访问几乎所有的数据库。通行方式如图所示: \x0d\x0a\x0d\x0a应用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC层---数据源 \x0d\x0a\x0d\x0a具体 *** 作方法为: \x0d\x0a\x0d\x0a首先打开控制面板的管理工具,打开数据源(ODBC),在用户DSN里面添加数据源(即你要连接的数据库的名字),在这里假定连接SQL SERVER 2000的GoodsSupply数据库。名称填写你要连接的数据库的名称(GoodsSupply),然后逐步设置,如果选用了使用SQL-SERVER密码认证的话,就要输入相应的用户名及密码连接到数据库。一路下一步设置完成。 \x0d\x0a\x0d\x0a在JAVA里面编写程序进行测试,在这里我的程序是让用户输入任意的表名与与列名,把该列的所有数据输出。源代码如下: \x0d\x0a\x0d\x0aimport java.io.BufferedReader\x0d\x0aimport java.io.InputStreamReader\x0d\x0aimport java.sql.*\x0d\x0a\x0d\x0apublic class ODBCBridge { \x0d\x0a\x0d\x0apublic static void main(String[] args) { \x0d\x0aString url="jdbc:odbc:GoodsSupply"\x0d\x0aStatement sm=null\x0d\x0aString command=null\x0d\x0aResultSet rs=null\x0d\x0aString tableName=null\x0d\x0aString cName=null\x0d\x0aString result=null\x0d\x0aBufferedReader input=new BufferedReader(new InputStreamReader(System.in))\x0d\x0atry { \x0d\x0atry { \x0d\x0aClass.forName("sun.jdbc.odbc.JdbcOdbcDriver")//加载驱动 \x0d\x0a}catch(ClassNotFoundException e){ \x0d\x0aSystem.out.println("Can not load Jdbc-Odbc Bridge Driver")\x0d\x0aSystem.err.print("ClassNotFoundException:")\x0d\x0aSystem.err.println(e.getMessage())\x0d\x0a} \x0d\x0aConnection con=DriverManager.getConnection(url,"USER","PASSWORD")//使用SQL-SERVER2000认证 \x0d\x0aDatabaseMetaData dmd=con.getMetaData()//DMD为连接的相应情况 \x0d\x0aSystem.out.println("连接的数据库:"+dmd.getURL())\x0d\x0aSystem.out.println("驱动程序:"+dmd.getDriverName())\x0d\x0asm=con.createStatement()\x0d\x0aSystem.out.println("输入表名")\x0d\x0atableName=input.readLine()\x0d\x0awhile(true) { \x0d\x0aSystem.out.println("输入列名(为空时程序结束):")\x0d\x0acName=input.readLine()\x0d\x0aif(cName.equalsIgnoreCase("")) \x0d\x0abreak\x0d\x0acommand="select "+cName+" from "+tableName\x0d\x0ars=sm.executeQuery(command)//执行查询 \x0d\x0aif(!rs.next()) \x0d\x0aSystem.out.println("表名或列名输入有误")\x0d\x0aelse { \x0d\x0aSystem.out.println("查询结果为:")\x0d\x0ado \x0d\x0a{ \x0d\x0aresult=rs.getString(cName)\x0d\x0a//数据库语言设置为中文,不用转换编码 \x0d\x0a//result=new String(result.getBytes("ISO-8859-1"),"GB2312")\x0d\x0aSystem.out.println(result)\x0d\x0a}while(rs.next())\x0d\x0a} \x0d\x0a} \x0d\x0a}catch(SQLException ex) { \x0d\x0aSystem.out.println("SQLException:")\x0d\x0awhile(ex!=null) { \x0d\x0aSystem.out.println("Message:"+ex.getMessage())\x0d\x0aex=ex.getNextException()\x0d\x0a} \x0d\x0a}catch(Exception e) { \x0d\x0aSystem.out.println("IOException")\x0d\x0a} \x0d\x0a} \x0d\x0a}你的
前台代码需要从数据库里获得数据,直接从前台代码里连接数据库就可以了。这样简单。
看你的要求,你要想采用这种模式:
前台<--->后台<--->数据库,也就是使用后台把数据库和前台分开。那么后台的作用有两个:和前台进行通信,和数据库进行通信。
只用能完成这两个功能,随便用什么写都可以。(一般的代码都能够完成这两个功能,你会什么就用什么吧)
通常来说我们的
服务器是分三类,数据库的服务器,web的服务器,以及其他应用的服务器。这些其实都是小型机,服务器,只不过是根据用途不同而分类。正常来说一个网站的常规服务器的架构就是这三块。
他所说的 " 数据库连接到服务器" 可能是指 "怎么样把web服务器和数据库能够建立连接 " 。这里所说的web服务器应该是指tomcat,apache,IIS,weblogic之类的东西,而不是真正意义上的web服务器。
这样的话就简单了。要么ODBC要么JDBC,该怎么样怎么样。ODBC就是添加到数据源,JDBC就是要写JDBC驱动,或者使用mybatis之类的解决方案。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。
数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。
数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
评论列表(0条)