运行测试环境

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)搜索记录等

一.系统设计

1.1系统功能描述

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

1.2系统功能模块划分

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

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

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

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

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

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

二.总体设计

2.1程序源代码

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");

}

}

}

2.2部分功能代码说明

2.2.1头文件说明

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

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

2.2.2声明类型说明

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;             //实现功能选择

2.2.3建立一个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());

}

2.2.4静态建立新表

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+"表成功!");

2.2.5功能选择实现

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

{

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

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

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

case 1:

.

.

.

case 5

}

}

2.2.6显示功能

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);

}

2.2.7插入功能

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

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

//SQL语句实现插入功能

2.2.8修改功能

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语句实现该功能

2.2.9删除功能

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

pro=reader.nextLine();

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

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

2.2.10例外处理

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

电话

java jdbc访问access数据库_Java实训设计----使用JDBC访问Access数据库相关推荐

  1. mysql数据库实验实训5,数据查询yggl数据库查询(详细)

    数据库实验yggl数据库,实训5(详细版) 1.SELECT语句的基本使用: 1-1:查询employees 表的员工部门号和性别,要求消除重复行 select distinct '员工部门号','性 ...

  2. java实验6 词频统计_java实训一——词频统计

    ---恢复内容开始--- 驾驶员:葛晨延(16012010) 领航员:张广哲(16012007) 码云:https://gitee.com/happywindmannn/GCYshixun1/tree ...

  3. 用java编程小明地铁_java实训地铁

    一.任务与目的 1.1任务 随着计算机技术的不断提高,计算机的发展也日渐成熟,它已进入人类社会的各个领域并发挥着越来越重要的作用.随着快节奏的生活,乘坐地铁已经成为非常实用的交通工具了,有很多优点安全 ...

  4. 计算机毕业设计Java高校实习实训管理系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java高校实习实训管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java高校实习实训管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B ...

  5. 计算机毕业设计Java高校企业实训系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java高校企业实训系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java高校企业实训系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  6. JAVA EE项目开发及应用实训报告——网上考试系统

    ** JAVA EE项目开发及应用实训 ** 题 目: 网上考试系统 系 别: 专 业: 学生姓名: 学 号: 指导教师: 题目类型:•理论研究 •实验研究 •工程设计 •工程技术研究 软件开发 • ...

  7. 基于javaweb的仓库管理系统(java+springboot+layui+html+thymeleaf+mysql+实训报告)

    基于javaweb的仓库管理系统(java+springboot+layui+html+thymeleaf+mysql+实训报告) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse ...

  8. 基于tutk方案的p2p源码_基于JAVA的局域网文件共享平台P2P实训项目源码(毕业设计 课程设计)...

    [实例简介] 基于JAVA的局域网文件共享平台P2P实训项目源码(毕业设计 课程设计). 可直接运行.做毕业设计.课程设计或者想研究下技术的可以下载学习.需要更多资源的可以关注我. [实例截图] [核 ...

  9. 墨天轮数据库在线实训平台发布,这份操作指南助你快速上手

    你是否有过这样的烦恼? 数据库运行环境要求过高,难以实操: 数据库安装与配置过程繁琐,耽误时间: 单看PPT或视频的理论学习,太过枯燥: -- Don't worry!  墨天轮数据库在线实训平台V1 ...

最新文章

  1. pandas使用sort_values函数对dataframe的日期数据列进行排序(设置ascending参数进行正序或者倒序排序)
  2. 输入任意个整数以回车键结束_Enter键只知道回车作用?以下7个用法,你会几个?...
  3. 送你了,思科设备基础配置命令大全(一),赶紧收藏......
  4. java抽象类与接口5.4-5.7 2020.3.31
  5. Spark入门(二)多主standalone安装
  6. mysql开启慢查询日志及查询--windows
  7. IntelliJ Idea 常用12款插件(提高开发效率),附优秀主题插件
  8. linux 截图程序源码,Linux下C语言实现C/S模式编程(附源码,运行截图)
  9. Echarts实现成都市地图下钻
  10. 免费直播系统源码,可控的跑马灯,无需焦点
  11. iis10 asp 如何连接mdb_看我如何恢复被MaMoCrypt勒索软件加密的数据
  12. bios设置raid启动模式Linux,[BIOS设置]BIOS中RAID模式怎么设置?
  13. MVC.MVVM.MVP的理解
  14. edge microsoff 连不上网_win10电脑连不上网的三种解决方法
  15. 变压器励磁模型 Matlab/simulink 可用于模拟电压暂降等电能质量问题
  16. 交换机SVI配置的作用 思科/华为 网络工程
  17. 虾皮如何注册店铺_Shopee(虾皮购物)入驻申请流程?
  18. CDM是什么,和CDP的区别?
  19. MCGS-函数读取数据
  20. 伽马分布,指数分布,泊松分布的关系

热门文章

  1. win7如何设置以管理员身份运行
  2. 实践 | 看这家汽车制造厂,如何升维勒索病毒防护能力?
  3. PP无纺布的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. 关于招商银行信用卡的若干事宜
  5. Python处理json字符串
  6. 利用Python读取fasta文件并进行一系列操作(上)
  7. 用python网络爬虫爬取英雄联盟英雄图片
  8. D-Link DWL-G122 USB无线网卡驱动安装配置
  9. highChart表图大全之饼图圆环图详解
  10. android仿淘宝刮刮卡功能实现