注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

 
 
 

日志

 
 

16.5 数据库开发实例  

2011-08-16 21:21:09|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

16.5  数据库开发实例

本节将通过两个简单的例子为读者介绍数据库访问编程的基本过程。

16.5.1  使用Access编写的student.mdb数据库

使用Microsoft Access编写一个数据库“student.mdb”,如图16-6所示。将数据表命名为“studentable”,并将文件保存到“g:\code”目录下。

要对此数据库进行访问,须先对此数据库进行数据源注册,然后即可通过Java编程对数据库进行操作。数据源注册中指定的数据库驱动解释和执行Java程序中的数据库操作指令。

1

图16-6  Microsoft Access编写的student.mdb数据库

1.注册数据源

双击“控制面板→管理工具→数据源(ODBC)”,出现如图16-7所示的对话框。

在如图16-7所示的对话框中单击对话框右边的【添加】按钮,并单击【确定】按钮,出现如图16-8所示的对话框。

在如图16-8所示的对话框中选择“Microsoft Access Driver(*.mdb)”选项,并单击【完成】按钮,出现如图16-9所示的对话框。

      

          图16-7  ODBC数据源管理器                      图16-8  创建新数据源

在如图16-9所示的对话框的“数据源名”文本框中填写所注册的数据源名称,这里,给这个数据源取名为“student”,然后单击【选择】按钮,出现如图16-10所示的对话框。

     

       图16-9  DDBC Microsoft Access安装                       图16-10  选择数据库

在如图16-10所示的对话框右边的“目录”列表框中找到数据库所在的目录“g:\code”,在左边的“数据库名”列表框中会出现此目录下的所有数据库,选择要注册的数据库“student.mdb”,单击【确定】按钮,并单击所有打开的对话框中的【确定】按钮,使设置生效。至此,数据源注册完成。

2.访问数据库

下面的例子通过注册的数据源接口实现与数据库的连接,并把数据库的内容打印出来,如代码16-6所示。

【代码16-6】  访问student.mdb数据库示例

import java.sql.*;

public class JDBCUse{

     public static void main(String[] args){

          String dbDriver = "sun.jdbc.odbc.JdbcOdbcDriver";//声明数据库驱动

          String url = "jdbc:odbc:student";//声明数据源

          Connection conn = null;//声明与数据库的连接

          Statement stmt = null;//声明执行SQL语句

          ResultSet rs = null;//声明结果集

          try{

               Class.forName(dbDriver);//加载数据库驱动

          }

          catch(ClassNotFoundException ce){

               System.out.println("ce"+ce);

          }

          try{

               conn = DriverManager.getConnection(url);//连接数据库

               stmt = conn.createStatement();//创建Statement对象

               //通过数据库的驱动实现查询转换,对数据库的内容进行操作   

               rs = stmt.executeQuery("SELECT * FROM studentable");//执行查询语句

   

               while(rs.next()){

                    String ID=rs.getString("序号");

                    String name=rs.getString("姓名");

                    String sex=rs.getString("性别");

                    String major=rs.getString("专业");

                    //打印数据库内容

                    System.out.println("序号:"+ID+" 姓名:"+name+" 性别:"+sex+" 专业:"+major);

              }

          }

          catch(SQLException se){

               System.out.print(se);

          }

          finally{

               try{

                   //关闭连接

                   if(rs!=null)rs.close();

                   if(stmt!=null)stmt.close();

                   if(conn!=null)conn.close();

               }

               catch(SQLException se){

               }

          }

     }

}

程序运行结果如图16-11所示。

在本例中,getConnection()建立连接,通过createStatement()创建 Statement对象,通过executeQuery()执行“SELECT * FROM studentable”这个SQL语句,从而达到查询student.mdb数据库的目的。

图16-11  访问student.mdb数据库示例运行结果

16.5.2  Mysql数据库

使用Mysql建立了一个student数据库,如图16-12所示,数据表名称为“studentable”。

图16-12  Mysql建立的student数据库

1.安装mysql数据库的驱动

Windows并没有自带mysql数据库的驱动,因此必须安装mysql数据库的驱动MyODBC。下载mysql数据库的驱动MyODBC-3.51.11-2-win.exe,双击安装程序进行安装。安装界面如图16-13所示,具体安装过程不再赘述。

2.注册数据源

双击“控制面板→管理工具→数据源(ODBC)”,单击【系统DSN】选项卡,出现如图16-14所示的对话框。

在如图16-14所示的对话框中单击对话框右边的【添加】按钮,并单击【确定】按钮,出现如图16-15所示的对话框。

  

        图16-13  mysql数据库驱动的安装                  图16-14  ODBC数据源管理器

在如图16-15所示的对话框中选择“MySQL ODBC 3.5L Driver”选项,并单击【完成】按钮,出现如图16-16所示的对话框。

   

          图16-15  创建新数据源                            图16-16  注册数据源

在如图16-16所示的对话框中的“Data Source Name”文本框中填写所注册的数据源名称,这里,给这个数据源取名为“sqldb”,在“Description”文本框中填写对此数据源的描述,在“Server”文本框中填写Mysql数据库所在的主机,在“User”文本框中填写数据库的用户名,在“Password”文本框中填写数据库口令,在“Database”文本框中填写数据库名。单击【Test】按钮,可以测试能否连上 Mysql数据库。然后单击【Ok】按钮,出现如图16-17所示的窗口。

如图16-17所示返回到了“ODBC数据源管理器”对话框,单击【确定】按钮,使设置生效。至此,数据源注册完成。

图16-17  ODBC数据源管理器

3.访问数据库

下面的例子访问Mysql的student数据库,并把数据库的内容打印出来,如代码16-7所示。

【代码16-7】  访问Mysql的student数据库

import java.sql.*;

class DataSource {

     private String driver;

     private String url;

     private String user;

     private String password;

     //数据源构造函数

     public DataSource() {

     }

   

     public DataSource(String driver, String url, String user, String password) {

          super();

          this.driver = driver;

          this.url = url;

          this.user = user;

          this.password = password;

     }

   

     //对数据源操作的方法

     public String getDriver() {

          return driver;

     }

     public void setDriver(String driver) {

          this.driver = driver;

     }

     public String getPassword() {

          return password;

     }

     public void setPassword(String password) {

          this.password = password;

     }

     public String getUrl() {

          return url;

     }

     public void setUrl(String url) {

          this.url = url;

     }

     public String getUser() {

          return user;

     }

     public void setUser(String user) {

          this.user = user;

     }

}

abstract class ConnectionFactory {//连接数据库抽象类

     private static Connection conn = null;

     public static synchronized Connection getConnection(DataSource ds) throws Exception {

          Class.forName(ds.getDriver()).newInstance();

          conn = DriverManager.getConnection(ds.getUrl(), ds.getUser(), ds.getPassword());//连接数据库

          return conn;

     }

}

public class JDBCUse{

     public static void main(String[] args) {

          Connection conn = null;

          try {

                    DataSource ds=new DataSource();

                    ds.setDriver("sun.jdbc.odbc.JdbcOdbcDriver");//数据库驱动

                    //数据源   

                    ds.setUrl("jdbc:odbc:sqldb");

                    ds.setUser("root");

                    ds.setPassword("zyiyi-101");

           

               conn = ConnectionFactory.getConnection(ds);//连接数据库

               Statement stmt = conn.createStatement();//创建Statement对象

               ResultSet rs = stmt.executeQuery("SELECT * FROM studentable");//执行查询语句

   

               System.out.println("database");   

               while(rs.next()){

                    String name=rs.getString("name");

                    String sex=rs.getString("sex");

                    String major=rs.getString("major");

                    //打印数据库内容

                    System.out.println(" 姓名:"+name+" 性别:"+sex+" 专业:"+major);

               }

                    //关闭连接

                    rs.close();

                    stmt.close();

                    conn.close();

               }  

          catch (Exception e) {

                   e.printStackTrace();

             }

          finally {

                   if (conn != null) {

                        try {

                             conn.close();

                        }

                   catch (SQLException e) {

                             e.printStackTrace();

                        }

                    }

          }

    }

}

程序运行结果如图16-18所示。

图16-18  访问Mysql的student数据库示例运行结果

除了在注册数据源的时候需要另外加驱动以外,本例后面的环节和16.5.1小节的例子其实并无差别。当访问数据库时,使用getConnection()建立连接,通过createStatement()创建Statement对象,通过 executeQuery()执行“SELECT * FROM studentable”这个SQL语句,达到查询student.mdb数据库的目的。不过代码16-7在建立的过程中,定义了很多方法,其封装性相对于代码16-6来讲显得更为完善些。

  评论这张
 
阅读(140)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017