qtfyfzy

Java实训设计----使用JDBC访问Access数据库

运行测试环境
JAVA JDK:j2sdk-1_5_0-beta-windows-i586
集成环境:JCreatorPro_3.50.013_Fix-Georgewing


PS:我在自己的机子上成功实现了,但是移植到别的电脑上有问题,好象是这句:

Scanner reader=Scanner.create(System.in);

读取数据出现了问题,本人是JAVA新手,希望高手多多指点,谢谢!!

要求:

使用JDBC访问数据库

创建一个JavaApplication,连接到一access数据库上,能够进行:

1)创建表

2)添加记录

3)修改记录

4)删除记录

5)搜索记录等

一.系统设计

11   系统功能描述

本系统通过创建一个JavaApplication,连接到一Access数据库上,使之能够进行基本的表单操作。程序首先建立一个了JDBC-ODBC桥接器,通过这个使JAVA应用程序能够访问Access数据库,在JAVA应用程序中涉及到了很多SQL语句,用来对Access数据库进行操作。

12   系统功能模块划分

整个系统分为5个部分,分别是动态新建一个表,插入静态数据,动态插入数据,修改数据,删除数据,查找数据。详细功能描述为:

1.创建表      根据预定义的表结构进行动态新建

2.插入记录    根据提示输入相应的数据

3.修改记录    通过确定主键从而修改其他记录

4.删除记录    通过确定主键从而删除其记录

5.搜索记录    遍例全表并显示

二.总体设计

21   程序源代码

import java.sql.*;

import java.util.*;

public class access {

public static void main(String[] args) {

String DateBase="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=fy.mdb";

Statement sql=null;

String command=null;

ResultSet rs=null;

String tableName=null;

String cName=null;

String tmp=null;

int num=0;

try {

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){

System.out.println("Can not load Jdbc-Odbc Bridge Driver");

System.err.print("ClassNotFoundException:");

System.err.println(e.getMessage());

}

//****************************

//JDBC连接操作结束

//****************************

Scanner reader=Scanner.create(System.in);

Connection con=DriverManager.getConnection(DateBase,"","");

//检测数据库连接状况***********

/*

DatabaseMetaData dmd=con.getMetaData();

System.out.println("连接的数据库:"+dmd.getURL());

System.out.println("驱动程序:"+dmd.getDriverName());

*/

sql=con.createStatement(); 

System.out.print("输入表名:");

tableName=reader.nextLine();

sql.executeUpdate("create table "+tableName+" (id char(3) primary key,name char(8),age integer,sex char(4),Tel char(20))");

System.out.println("创建"+tableName+"表成功!");

System.out.print("载入初始数据中...");

sql.executeUpdate("insert into "+tableName+" values(\'001\',\'方智远\',20,\'\',\'15926229667\')");

sql.executeUpdate("insert into "+tableName+" values(\'002\',\'方远\',21,\'\',\'13726789668\')");

sql.executeUpdate("insert into "+tableName+" values(\'003\',\'貂禅\',22,\'\',\'12926596069\')");

sql.executeUpdate("insert into "+tableName+" values(\'004\',\'西施\',23,\'\',\'15566249660\')");

sql.executeUpdate("insert into "+tableName+" values(\'005\',\'智远\',24,\'\',\'17926429661\')");

sql.executeUpdate("insert into "+tableName+" values(\'006\',\'\',25,\'\',\'13626512462\')");

System.out.println("...载入完毕!");

System.out.println("****************************");

System.out.println("**1.显示表单数据          **");

System.out.println("**2.插入数据              **");

System.out.println("**3.修改数据              **");

System.out.println("**4.删除数据              **");

System.out.println("**5.退出系统              **");

System.out.println("**********FY MODE***********");

for(;num<=5;)

{

       System.out.print("请选择.....功能:");

    num=Integer.parseInt(reader.nextLine());

    switch (num){

      

    case 1:

             rs=sql.executeQuery("select * from "+tableName);//执行查询

             System.out.println("显示初始数据:");

             System.out.println("ID   用户名   年龄   性别      电话 ");

             while(rs.next())

             {

                 tmp=rs.getString(1)+" "+rs.getString(2)+" "

                     +rs.getInt(3)+"     "+rs.getString(4)+"     "+rs.getString(5);

                 System.out.println(tmp);

             }

             break;

            

    case 2:

             System.out.print("输入ID");

             String s1=reader.nextLine();

             System.out.print("输入用户名:");

             String s2=reader.nextLine();

             System.out.print("输入年龄:");

             int s3=Integer.parseInt(reader.nextLine());

             System.out.print("输入性别:");

             String s4=reader.nextLine();

             System.out.print("输入电话:");

             String s5=reader.nextLine();

             sql.executeUpdate("insert into "+tableName+" values(\'"+s1+"\',\'"+s2+"\',"+s3+",\'"+s4+"\',\'"+s5+"\')");

             break;

            

     case 3:        

            System.out.print("请输入欲修改的ID");

            String pro=reader.nextLine();

                      System.out.print("输入新的用户名:");

                      s2=reader.nextLine();

                     System.out.print("输入新的年龄:");

                      s3=Integer.parseInt(reader.nextLine());

                      System.out.print("输入新的性别:");

                   s4=reader.nextLine();

                      System.out.print("输入新的电话:");

                      s5=reader.nextLine();

                      sql.executeUpdate("update "+tableName+" set name=\'"+s2+"\',age=\'"+s3+"\',sex=\'"+s4+"\',Tel=\'"+s5+"\' where id=\'"+pro+"\'");

                     break;

                     

     case 4:

            System.out.print("请输入欲删除的ID");

                      pro=reader.nextLine();

                      sql.executeUpdate("delete from "+tableName+" where id=\'"+pro+"\'");

                      break;

                      

        case 5: System.out.println("欢迎使用!HOHO");

                num=1000;

                break;

}          

              

}

sql.close();

con.close();

}catch(SQLException ex) {

System.out.println("SQLException:");

while(ex!=null) {

System.out.println("Message:"+ex.getMessage());

ex=ex.getNextException();

}

}catch(Exception e) {

System.out.println("IOException");

}

}

}

22   部分功能代码说明

221 头文件说明

import java.sql.*;    //实现SQL语句

import java.util.*;    //实现I/O功能

222 声明类型说明

String DateBase="jdbc:odbc:driver

={Microsoft Access Driver (*.mdb)};DBQ=fy.mdb";

//定义一个数据源驱动,用于连接数据库

Statement sql=null;       //定义Statement类对象,用于实现SQL语句

ResultSet rs=null;        //定义 ResultSet类对象,用于实现SQL语句

String tableName=null;    //新建的表名

String tmp=null;         //显示表中数据的临时变量

int num=0;             //实现功能选择

223建立一个JDBC-ODBC桥接器

try {

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  //建立一个JDBC-ODBC桥接器

}catch(ClassNotFoundException e){             //例外处理

System.out.println("Can not load Jdbc-Odbc Bridge Driver");

System.err.print("ClassNotFoundException:");

System.err.println(e.getMessage());

}

224静态建立新表

Scanner reader=Scanner.create(System.in);      //输入操作

Connection con=DriverManager.getConnection(DateBase,"","");

//连接数据库了,这里要用到java.sql包中的Connection类声明一个对象,再用类DriverManager调用它的静态方法getConnection创建这个连接。

/*

DatabaseMetaData dmd=con.getMetaData();  //检测数据库连接状况

System.out.println("连接的数据库:"+dmd.getURL());

System.out.println("驱动程序:"+dmd.getDriverName());

*/

sql=con.createStatement();                 //关联SQL语句与数据库

System.out.print("输入表名:");

tableName=reader.nextLine();

sql.executeUpdate("create table "+tableName+" (id char(3) primary key,name char(8),age integer,sex char(4),Tel char(20))");

//SQL语句创建表

System.out.println("创建"+tableName+"表成功!");

225功能选择实现

for(;num<=5;)            //循环控制,当选则为5时结束循环,即退出系统

{

        System.out.print("请选择.....功能:");   //控制信号

    num=Integer.parseInt(reader.nextLine());

    switch (num){                       //功能选择实现语句

      

case 1:

.

.

.

case 5

}

}

226显示功能

rs=sql.executeQuery("select * from "+tableName); //执行查询

    System.out.println("显示初始数据:");

    System.out.println("ID   用户名   年龄   性别      电话 ");

    while(rs.next())           //rs.next()不为NULL时循环显示

    {

        tmp=rs.getString(1)+" "+rs.getString(2)+" "

               +rs.getInt(3)+"     "+rs.getString(4)+"     "+rs.getString(5);

                           //获取数据集中的内容

        System.out.println(tmp);

     }

     

227插入功能

sql.executeUpdate("insert into "+tableName+"

values(\'"+s1+"\',\'"+s2+"\',"+s3+",\'"+s4+"\',\'"+s5+"\')");

//SQL语句实现插入功能

228修改功能

   System.out.print("请输入欲修改的ID");

String pro=reader.nextLine();         //得到主键,

.

.

.

       sql.executeUpdate("update "+tableName+" set

name=\'"+s2+"\',age=\'"+s3+"\',sex=\'"+s4+"\',Tel=\'"+s5+"\' where id=\'"+pro+"\'");

                     //通过SQL语句实现该功能

229删除功能

       System.out.print("请输入欲删除的ID");

       pro=reader.nextLine();

       sql.executeUpdate("delete from "+tableName+" where id=\'"+pro+"\'");

//通过SQL语句实现该功能

2210例外处理

catch(SQLException ex) {

System.out.println("SQLException:");

while(ex!=null) {

System.out.println("Message:"+ex.getMessage());

ex=ex.getNextException();

}

}catch(Exception e) {

System.out.println("IOException");

}

 

三.数据库设计

TABLE设计

 

 

 

列名

类型

大小

说明

备注

ID

  CHAR

    3

ID

主键

NAME

CHAR

    8

用户名

AGE

INT

年龄

SEX

CHAR

2

性别

TEL

CHAR

20

电话

 

 

 

 

 

 

分类:

技术点:

相关文章:

  • 2021-10-12
  • 2021-10-16
  • 2021-11-19
  • 2021-09-16
  • 2022-01-22
  • 2022-02-03
  • 2021-11-26
  • 2022-02-07
猜你喜欢
  • 2022-01-20
  • 2021-11-11
  • 2021-09-16
  • 2022-01-20
  • 2021-11-21
  • 2021-10-12
  • 2022-01-01
相关资源
相似解决方案