| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10961 人关注过本帖, 4 人收藏
标题:Java 连接数据库入门教程(附件有图解)
只看楼主 加入收藏
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
结帖率:100%
收藏(4)
 问题点数:0 回复次数:18 
Java 连接数据库入门教程(附件有图解)
JAVA数据库连接

一、了解JDBC
JDBC(Java DataBase Connectivity)是java数据库连接API。简单地说,JDBC能完成3件事:
(1)与一个数据库建立连接;
(2)向数据库发送SQL语句:
(3)处理数据库返回的结果。
下面我们就结合一个例子来说明这3步。
JDBC在设计上和ODBC很相似。ODBC和数据库建立连接的一种方式是首先建立起一个JDBC-ODBC桥接器。由于ODBC驱动程序被广泛的使用,建立这种桥接器后,使得JDBC有能力访问几乎所有类型的数据库。
二、建立数据库
   假设我们有一个用Access设计的数据库:student.mdb,该库中有一个表,表的名字是
chengjibiao
 
三、设置数据源
     为了同这个数据库建立连接,打开windows中的控制面板的管理工具的ODBC数据源。
 

点击图3 “添加”按钮,增加新的数据源。
 
选择“Microsoft Access Driver(*.mdb)”之后,点击完成按钮(为数据源选择了驱动程序)

在“数据源名”文本框里写入你喜欢的名字,这里起名为“ceshi”。
这个数据源就是指某个数据库。
 
再点击“选择”按钮,把数据源ceshi设成要连接的数据库student.mdb。
 

    如果我们要为数据源ceshi设置一个”登录名称”和“密码”的话,就再点击“高级”
按钮,否则点击确定按钮就完成了数据源设置的全部步骤。
现在,假设我们要给数据源一”登录名称”和“密码”,那么点击“高级”按钮。
在”登录名称”里输入一个用户名,这里我们给的是meng ;在 “密码”文本框里输入口令(这里我们输入的是1234)。(注意这里的密码和数据库本身的密码没有关系)。然后都点击确定按钮,就完成了全部过程。关闭控制面板即可。

四、JDBC-ODBC桥接器
1.建立JDBC-ODBC桥接器
现在我们有了一个数据源,这个数据源就是一个数据库。
为了连接到这个数据库,首先要建立一个JDBC-ODBC桥接器:
C1ass.forName(“sun.jdbc.Ddbc.JdbcOdbcDriver ”);
这里,Class是包java.sq1中的一个类,这类通过调用它的静态方法forName就可以建立JDBC-ODBC桥接器。
    注意:建立桥接器时可能发生异常、因此必须捕获这个异常。
方法是:
        try  {  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
             }
        catch  (java.lang.ClassNotFoundException  e)
            {  
               System.out.println(" 打不开文件" + e);  
             }  

2.连接到数据库
    首先使用包java.Sql中的Connection类声明一个对象.然后再使用类DriverManager调用它的静态方法getConnectio创建这个连接对象:
Connection con = DriverManager.getConnection(“jdbc:odb:数据源的名字”,“登录名称”,“密码”);

如没有设置登录名称和密码,则为:
Connection con = DriverManager.getConnection(“jdbc:odb:数据源的名字”,“”,“”);

这里的例子的方法为:
Connection con = DriverManager.getConnection(“jdbc:odbc:ceshi”,“meng”,“1234”);

建立连接时应捕获SQLException异常:
try  {
    Connection con= DriverManager.getConnection("jdbc:odbc:ceshi","meng","1234");
    }
catch (SQLException  e)
{       }
这样就建立好了到数据库student.mdb的连接。

3、向数据库发送SQL语句
首先使用statement声明—个SQL语句对象,然后通过刚才创建的连接数据库的对象con调用createStatement()方法创建这个SQL语句对象。
Try { Statement sql=con.createStatement( );}
Catch(SQLException  e){  }

4、处理查询结果
有了SQL对象后,就可以调用相应的方法实现对数据库的查询和修改。并将查询结果存放在一个ResultSet类声明的对象中,也就是说SQL语句对数据库的查询操作将返回—个ResultSet对象:
ResultSet rs=sql.executeQuery("SELECT  *  FROM  chengjibiao");

ResultSett对象实际上是—个管式数据集,即它是由统一形式的列组织的数据行组成*
ResultSet对象一次只能看到—个数据行,使用next()方法走到下一数据行。获得一行数据后,ResultSet对象可以使用位置索引(第一列使用l,第二列使用2等等)或使用列名称,以便使用getXxx()方法获得字段值。下表1给了出了ResultSet对象的若干方法。
 

1、JSP连接Oracle8/8i/9i数据库(用thin模式)
步骤:
(1) 加载驱动程序: Class.forName("oracle.jdbc.driver.OracleDriver");
(2) 建立连接: Connection conn= DriverManager.getConnection(url,user,password);
文件 testoracle.jsp

2、JSP连接Sql Server7.0/2000数据库
步骤:
(1) 加载驱动程序: Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
(2) 建立连接: Connection conn= DriverManager.getConnection(url,user,password);
    文件 testsqlserver.jsp

3、JSP连接MySQL数据库
步骤:
(1) 加载驱动程序: Class.forName("org.gjt.mm.mysql.Driver");
(2) 建立连接: Connection conn= DriverManager.getConnection(url);
文件 testmysql.jsp

4、JSP连接PostgreSQL数据库
步骤:
(1)    加载驱动程序: Class.forName("org.postgresql.Driver");
(2) 建立连接: Connection conn= DriverManager.getConnection(url,user,password);
文件 testpostgresql.jsp

5、JSP连接DB2数据库
步骤:
(1) 加载驱动程序:Class.forName("com.ibm.db2.jdbc.app.DB2Driver ");
(2) 建立连接:Connection conn= DriverManager.getConnection(url,user,password);
文件 testdb2.jsp

6、JSP连接Informix数据库
步骤:
(1) 加载驱动程序: Class.forName("com.informix.jdbc.IfxDriver");
(2) 建立连接: Connection conn= DriverManager.getConnection(url);
文件 testinformix.jsp

7、JSP连接Sybase数据库
步骤:
(1) 加载驱动程序: Class.forName("com.sybase.jdbc.SybDriver");
(2) 建立连接: Connection conn= DriverManager.getConnection(url, SysProps);
文件 testsybase.jsp

下面有个例子,是从student.mdb读入数据,然后输出到表格(JTable)
源码和数据文件在附件中都有.


import java.sql.*;  
import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.util.*;

class JTable1 extends JFrame
{
    JPanel cp = new JPanel();
    JTable jtable1;
    JScrollPane jscrp1 = new JScrollPane();
    public JTable1()
    {
        cp = (JPanel)this.getContentPane();
        this.setTitle("student result");
        this.setSize(500, 200);
        cp.setLayout(new FlowLayout());
        
        Connection  con;
        Statement sql;
        ResultSet rs;
        DefaultTableModel dtm;        
        //DefaultTableModel是 TableModel 的一个实现,它使用一个 Vector 来存储单元格的值对象,该 Vector 由多个 Vector 组成。
        
        Vector <Vector> content=new  Vector <Vector>();
        Vector <String> title=new Vector <String>();        
                    
        try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } //建立桥接器
        catch (java.lang.ClassNotFoundException  e)
        { e.printStackTrace();}  
        try  
        {        
            con= DriverManager.getConnection("jdbc:odbc:st","meteor","12345");//连接
            sql=con.createStatement();//创建SQL语句对象
            rs=sql.executeQuery("SELECT  *  FROM  result");//查询
            ResultSetMetaData rsmd=rs.getMetaData();
            //ResultSetMetaData可用于获取关于 ResultSet 对象中列的类型和属性信息的对象
            for(int i = 1; i <= rsmd.getColumnCount(); i++)//getColumnCount()记录条数
                 title.add(rsmd.getColumnName(i));//获取列名(对象String)
                                
            while(rs.next())
            {
                Vector <String> tmp=new Vector<String>();//一个Vector content包含多个Vector
                for(int i = 1; i <= rsmd.getColumnCount(); i++)
                    tmp.add(rs.getString(i));//获取记录
                content.add(tmp);
            }
            dtm=new DefaultTableModel(content,title);
                                    
            jtable1 = new JTable(dtm);
            jtable1.setRowHeight(20);
            jscrp1.getViewport().add(jtable1);//getViewport()滚动窗格的视口子级
            cp.add(jscrp1);
                
            con.close();
            }                  
            catch  (SQLException el)
            { el.printStackTrace();}             
    }
}
public  class  JAVADB
{
    public static void main(String args[])
    {
        JTable1 JTable1 = new JTable1();
        JTable1.setVisible(true);            
       }  
}

Java数据库连接(初级).rar (189.61 KB)
搜索更多相关主题的帖子: 数据库 Java 教程 附件 图解 
2008-06-11 17:23
woshijianzhong
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-9-9
收藏
得分:0 
沙发,呵呵,谢谢楼主分享
2008-09-20 19:25
will_ye87
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-9-22
收藏
得分:0 
thanks for share
2008-09-23 18:20
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
支持下

不过,数据库不推荐Access哦
2008-09-23 20:42
andrewlixin
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-8-1
收藏
得分:0 
楼主太够意思了
2010-08-01 21:19
qq5631025
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-12
收藏
得分:0 
谢谢楼主,顶
2011-06-12 14:28
陈俊佳
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-5-12
收藏
得分:0 
感谢楼主分享
2011-07-13 08:50
cqa32
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-2-16
收藏
得分:0 
谢谢,下回家学习学习。
2011-08-17 09:43
X7408653
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-11-21
收藏
得分:0 
谢谢分享,下来学习学习,,,
2011-11-23 17:10
lxlSnake
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-12-15
收藏
得分:0 
小白学习了,感谢感谢
2011-12-15 10:18
快速回复:Java 连接数据库入门教程(附件有图解)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019249 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved