基于java+JDBC+sqlserver的物业管理系统设计与实现(毕业论文+程序源码)
大家好,今天给大家介绍基于java+JDBC+sqlserver的物业管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。
文章目录:
- 基于java+JDBC+sqlserver的物业管理系统设计与实现(毕业论文+程序源码)
- 1、项目简介
- 2、资源详情
- 3、关键词
- 4、毕设简介
- 5、资源下载
1、项目简介
- 物业管理系统是紧随当今时代发展的需要,目的在于实现不同的人员对物业系统的不同的需要,有利于社会的稳定和顺利发展。
2、资源详情
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:12050个字26页
包含内容:整套源码+完整毕业论文
3、关键词
小程序Applet;应用程序Application;数据库;数据库实现;JDBC/ODBC桥;JDBC驱动程序4、毕设简介
提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。
一.本系统的意义
本物业管理系统是在服务器上先安装Windows 操作系统,并在系统下安装数据库系统SQL Server 和建立人员、住房、房产、收费四个数据库。然后在操作系统下用Java编写不同的系统用户界面,后用JDBC/ODBC桥实现服务器上数据库和前端界面的连接。连接成功后,将Java编写的用户界面移植到客户端的Linux操作系统下,并用这个界面试图实现与服务器上系统下的数据库SQL连接。以达到在不同的操作系统下可以互相调用的目的,实现Java的重要特性:可移植性。
二.设计思想
2.1 当前数据库实现中存在的问题:
2.1.1 目前存在的问题----数据库的实现面向单一应用
在目前开发的一部分数据库应用软件中,程序员的主要任务是编写高质量的程序,对所使用的软件及数据库很少关注,这就面临数据库单一应用的问题。
2.1.2 数据库设计中存在数据完整性问题
数据库应用所提供的功能一般都比较安全,往往自成一个系统。但是当数据库不同后系统数据就会产生问题。
2.2 工具软件的介绍
2.2.1 Java语言的介绍
Java是一个由SUN公司开发成功的新一代编程语言,它的最大特点就是:使用它可在各式各样不同种机器,不同种操作平台的网络环境中开发软件,即SUN公司所宣扬的“一次编写,到处运行” 。
在SUN公司的“Java白皮书”中对Java有如下的定义:
Java: A simple, Object-oriented, distributed, robust, secure, architecture-neutral, portable, High-performance, multi-threaded, and dynamic language.(Java: 一种简单的,面向对象的,分布式的,健壮的,安全的,结构中立的,可移植的,高效性的,多线程和动态的语言)。
这个定义充分地表现了Java语言的特点。
省略
2.2.2 JDK的环境工具:
省略
2.2.3 JDK的使用
利用JDK编程,还需要一个文本编辑器,最简单的是Windows系统解释的记事本(NotePad)可以选择Ultraedit 或Editplus等工具。
- 编写源文件:
源文件是一个利用Java语言编写的文本文件,可以在任何文本编辑器中来撰写或修改。 - 将源文件编译成字节码文件
利用JDK中的Java编译器——javac,可以将源文件编译成Java虚拟机(JVM)能够解析的字节码文件。 - 运行程序
利用JDK中的Java解析器,将字节码文件转化为你的系统能够理解的指令,加以执行。
2.2.4 JDBC简介
Java数据库连接JDBC(Java DateBase Connectivity)与ODBC(Open DataBase Connectivity)开放式数据库连接的概念和标准一样,两者都是为各种流行数据库提供无缝连接技术的。
JDBC利用java.sql包及其接口,类和异常事件,通过JDBC—ODBC桥可以对数据库进行操作,但数据库本身没有什么要求,不需要什么特别的命令,只需要同ODBC一样在服务器中设置ODBC数据源。
省略
2.2.5 Microsoft SQL Server
SQL Server 是一种客户机/服务器关系型数据库管理系统(RDBMS),使用Transact_SQL(一种结构化查询语言——SQL——客户机和 SQL Server之间发送请求。
省略
2.3 物业管理系统软件技术基础
软件体系结构在软件系统中扮演一个非常重要的角色,它为系统的逻辑功能划分提供了一个依据,是快速,准确,高质量进行系统开发的基础,主要有两种体系结构。
本系统采用两层结构:将处理分两个部分,主要的事务处理逻辑运行于客户端,如向服务器端的数据库发送SQL请求。由于大量的应用运行客户端,所以又称胖客户机。
系统开发语言采用Java语言,数据库采用Microsoft SQL Server。
SQL Server是一种比较简单、普通的网络数据库。
2.4物业管理系统的硬件基础
省略
2.5 系统介绍
2.5.1 网络结构简介
本物业管理系统的网络体系实现是在服务器上先安装windows NT操作系统,并在NT系统下安装数据库系统SQL Server 7.0和建立人员、住房、房产、收费四个数据库。然后在服务器的NT操作系统下用Java编写不同的系统用户界面,用JDBC/ODBC桥实现服务器端的数据库和前端界面的连接。连接成功后,将Java编写的用户界面移植到客户端的Linux操作系统下,并用这个界面试图实现与服务器端NT操作系统下的数据库SQL连接。以达到在不同的操作系统下可以互相调用的目的,实现Java的重要特性:可移植性。
网络体系结构图如下所示:
2.5.2 服务器系统功能模块
基于Java的跨平台网络数据库由后勤小区物业管理系来具体实现。后勤小区物业管理系统有两个模块——普通用户查询系统模块和管理员用户管理系统模块。普通用户查询系统是普通用户对数据库进行查询的模块,不支持数据库的管理。而管理员管理系统是数据库管理员对数据库进行管理的模块,需要密码验证才可进入。普通用户查询系统模块和管理员用户管理系统模块下又有四个模块——人员信息模块,住房信息模块,收费信息模块,房产信息模块。管理员可以对数据库的数据进行添加,修改,删除和查询
以下是后勤小区管理系统的功能模块图
其中,人员信息管理模块的下一级模块和其它三个模块的下一级模块一样, 这里只画了一个。
系统的前端开发语言采用Java语言,后端数据库采用MSSQL Server
2.5.1 服务器前端简介
系统主要针对普通用户和管理员用户两种类型,可以由主界面选择进入普通用户界面还是管理员界面如选择进入管理员界面,需通过域名验证和密码验证才可以。普通用户只具有对后端数据库的查询功能,而管理员用户同时具有对后端数据库的修改和查询功能,其中修改包括添加,更新,删除功能。
2.5.2 服务器后端数据库简介
系统主要建立了renyuan, zhufang, shoufei, fangchan 四个数据库,是通过在houqin数据库下建立renyuan,zhufang,shoufei, fangchan四个表(Tables)得到的。数据库的拥有者可以直接从SQL Server对数据库进行添加,删除,更新,查询和设置表的结构等功能。而系统管理员只可以从前端对数据库进行添加,删除,更新和查询功能,不能改变数据库的结构等,普通用户则只具有对数据库的查询功能。
2.5.3 系统查询结构图
三、设计过程
首先,用户看到的是系统的主界面(JFraml),即系统的进入界面,主要有三个按钮控件组成。如果你是普通用户,则选择普通用户进入系统按钮,如果你是系统管理员用户,则选择管理员进入系统按钮。系统管理员用户进入管理系统,必须通过域名和密码的验证,否则不能进入管理系统。
普通用户进入系统按钮的代码如下:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
zc.face.userInterface2 jf3=new zc.face.userInterface2();
jf3.setVisible(true);
setVisible(false);
}
管理员用户进入系统按钮的代码与普通用户进入系统按钮大代码相似。
如果现在你想退出系统,则可以选择推出系统按钮,将会弹出确认对话框,询问你是否决定退出系统(Are you sure to quit?).如果选择确定按钮,将会退出本系统。如果你现在又不想退出本系统,则选择取消按钮。
退出系统按钮的代码如下:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
javax.swing.JFrame f=new javax.swing.JFrame("ConfirmDialog");
int returnValue=javax.swing.JOptionPane.CANCEL_OPTION;
returnValue=javax.swing.JOptionPane.showConfirmDialog(f,"Are you sure to quit?","ask",javax.swing.JOptionPane.OK_CANCEL_OPTION);
if(returnValue==javax.swing.JOptionPane.OK_OPTION){
System.exit(0);
}
else
f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
3.1 普通用户系统
用户选择进入普通用户系统,系统弹出普通用户界面(userInterface)。
userInterface界面上有各类待查询信息,在界面的上方有主菜单,分六部分:人员信息、住房信息、收费信息、房产信息、帮助、返回。
在人员信息中有两种:
sql查询
填充查询
sql查询代码如下:
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
String input=null;
javax.swing.JFrame f=new javax.swing.JFrame();
input=javax.swing.JOptionPane.showInputDialog(f,"请输入sql叙述如select*from renyuan","Input",javax.swing.JOptionPane.QUESTION_MESSAGE);
System.out.println("数据查询.........");
if((input!=null)&&(input.length()!=0)){
System.out.println(input);
//进行数据库查询
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce){
System.out.println("SQLException:"+ce.getMessage());
}
try{
Connection con=DriverManager.getConnection("jdbc:odbc:houqin");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(input);
System.out.println(zc.face.MySqlUnit.printMetaData(rs));
System.out.println(zc.face.MySqlUnit.printResultSet(rs));
stmt.close();
con.close();
}
catch(SQLException e){
System.out.println("SQLException:"+e.getMessage());
}
catch(IOException e2){
System.out.println("IOException:"+e2.getMessage());
}
}
else
System.out.println("输入正确的查询语句.");
}
在填充查询中又分三种:
按姓名
按门牌号
按工作单位
按姓名查询代码如下:
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
zc.face.renyuan1 jf=new zc.face.renyuan1( );
jf.setVisible(true);
setVisible(false);
}
按门牌号和工作单位查询代码与按姓名查询代码相似。
住房信息的菜单结构与人员信息大菜单结构相似,其查询代码也相似。
在收费信息和房产信息中有两种:
sql查询
填充查询
其查询代码与人员信息查询代码相似:
如果用户想查询人员方面的信息,可以通过点击主菜单中的“人员信息”选项实现。
如果用户想查询某个人的具体信息,用户对数据库查询语句又比较熟悉,用户可以选择人员信息菜单下的“sql查询” 。在弹出的对话框中输入Select查询语句点击“确定”按钮进行杳询。
如果用户想查询某个人的具体信息,用户对数据库又不熟悉,则可以选择人员信息菜单下的“填充查询” 。
如果用户只知道所要查询人的姓名,则可以点击“按姓名查询”。用户可以在弹出的人员信息查询界面1(renyuan1.java)的文本框中输入查询人姓名,点击“查询”按钮进行查询。如果用户想继续查询其他人员信息,则可以点击“继续查询”按钮继续进行查询。如果用户现在不想查询,则可以点击“取消”按钮,将会返回到普通用户界面。
查询按钮的代码如下:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce){
System.out.println("SQLException:"+ce.getMessage());
}
try
{
if(!jTextField4.getText( ).equals(" "))
{
Connection con=DriverManager.getConnection("jdbc:odbc:houqin");
System.out.println("链接成功");
System.out.println("sql查询:");
String query="select * from renyuan"+ " where 姓名='"+jTextField4.getText( )+"'";
System.out.println(query);
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(query);
System.out.println(zc.face.MySqlUnit.printResultSet(rs));
stmt.close();
con.close();
}
else
System.out.println("请输入正确的姓名后按查询按钮");
}
catch(SQLException e){
System.out.println("SQLException:"+e.getMessage());
}
catch(IOException e2){
System.out.println("IOException:"+e2.getMessage());
}
}
继续查询按钮的代码如下:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
jTextField4.setText(" ");:
}
取消按钮的代码如下:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
zc.face.userInterface2 jf1=new zc.face.userInterface2();
jf1.setVisible(true);
setVisible(false);
}
如果用户只知道所要查询人的门牌号,就可以点击“按门牌号查询”,用户可以在弹出的人员信息查询界面2(renyuan2.java)的文本框中输入门牌号信息点击“查询”按钮进行查询.
如果用户只知道所要查询人的工作单位,就可以点击“按工作单位查询”,用户可以在弹出的人员信息界面3(renyuan3.java)的文本框中输入工作单位信息点击“查询”按钮进行查询。
当用户想查询住房方面的信息,可以通过点击主菜单的“住房信息”选项实现。用户可根据自身情况选择“sql查询”还是“填充查询”。如果选择“填充查询”,用户则要根据自已所知道的住房信息内容,进行按姓名,按门牌号,还是按工作来源查询来进行选择。其查询代码与人员信息菜单下的菜单项查询代码相似。
当用户想查询收费方面的信息,可以通过点击主菜单中的“收费信息”选项实现。用户可根据自身情况选择“sql查询”还是“填充查询”。如果选择“填充查询”,用户可以在弹出的收费信息查询界面(shoufei.java)的文本框中输入所要查询的收费信息住房的门牌号点击“查询”按钮进行查询。点击“继续查询”按钮在文本框内重新输入其它门牌号信息,点击“查询”按钮进行查询。其查询代码与主菜单中的“人员信息”菜单下的菜单项的查询代码相似。
如果用户想查询房户方面的信息,可以通过点击主菜单中的“房产信息”选项实现.用户可根据自身情况决定选择“sql查询”还是“填充查询”。如果选择“sql查询”,用户可以在弹出的对话框直接输入Select查询语句,点击“确定”按钮进行查询。如果选择“填充查询”,用户可以在弹出的房产信息查询界面(fangchan.java)的文本框中输入所要查询房产的楼号信息点击“查询”按钮进行查询。点击“继续查询”按钮在文本框内重新输入其它楼号信息,点击“查询”按钮进行查询。其查询代码与主菜单中的“人员信息”菜单下的菜单项的查询代码相似。
如果用户想了解关于普通用户系统的信息,则可以点击主菜单中的“帮助”菜单下的“帮助”菜单项,将会在文本区内显示帮助信息。
“帮助”菜单项的代码如下:
private void jMenuItem14ActionPerformed(java.awt.event.ActionEvent evt){
String s 欢迎进入用户系统 \n"+
" 用户在这里可以得到关于人员,住房,收费和房产方面的信息,\n"+
"系统功能使用说明如下:\n"+
" 1。用户可以使用sql查询和填充查询两种查询方式,可从菜\n"+
"单进行选择。\n"+
" 2。sql查询是直接在对话框内输入select查询语句按确定按\n"+
"钮进行查询,适合于对数据库查询语句熟悉的用户。\n"+
" 3。填充查询是根据用户从菜单所选中项的要求和提示在文本框\n"+
"内输入用户所知信息按查询按钮进行查询,适合于一般的查询用户。\n"+
" 4。查询结果在输出框内显示。\n"+
" 5。用户可通过帮助菜单的帮助项得到关于系统使用的说明。\n";
jTextArea1.setText(s);
}
如果用户想离开普通用户界面,则可以点击主菜单中的“返回”菜单下的“返回”菜单项。
“返回”菜单项的代码如下:
private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
zc.JFrame1 jf1=new zc.JFrame1();
jf1.setVisible(true);
setVisible(false);
}
3.2 管理员系统
系统管理员用户选择管理员进入系统按钮,将会弹出管理员用户域名和密码验证界面(JFrame2)。在验证界面中,根据提示在文本框中输入管理员用户域名和进入密码,点“OK”按钮。如果域名和密码正确,管理员用户则可进入管理系统界面。如果域名和密码有一项不正确,管理员用户也不能进入管理系统,而且系统也会根据域名和密码的错误情况出现不同的对话框给予提示。如果域名不正确,而密码正确点击“OK”按钮将弹出对话框1并显示:Wrong Administrator name!! 信息,点击“确定”按钮将会返回到JFrame2界面,要求重新输入域名;如果域名正确而密码不正确,点击“OK”按钮将弹出对话框2并显示:Wrong Administrator Password!! 信息,点击“确定”按钮将会返回到JFrame2界面,要求重新输入密码;如果域名和密码都不正确,点击“OK”按钮将弹出对话框3并显示:Wrong Administrator name and Wrong Administrator passward!! 信息,点击“确定”按钮将会返回到JFrame2界面。
如果管理员用户不想进入管理系统,则可以点击JFrame2界面上的“Cancel”按钮,将会返回到开始界面(JFrame1)。
“OK”按钮的代码如下:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
confirmPassword();
}
public void confirmPassword(){
String s1="",s2="",s="htf",password="270098";
s1=jTextField1.getText();
s2=jPasswordField2.getText();
if(!(s1.equals(s))&&(!(s2.equals(password)))){
//用户名和密码都不正确
javax.swing.JFrame f=new javax.swing.JFrame("MessageDialog");
javax.swing.JOptionPane.showMessageDialog(f,"Wrong Administrator name and Wrong Administrator Password!!","ConfirmMessage",javax.swing.JOptionPane.ERROR_MESSAGE);
int returnValue=0;
if(returnValue==javax.swing.JOptionPane.OK_OPTION)
f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
else if(!(s1.equals(s))){
//用户名不正确;
javax.swing.JFrame f=new javax.swing.JFrame("MessageDialog");
javax.swing.JOptionPane.showMessageDialog(f,"Wrong Administrator name!!","ConfirmMessage",javax.swing.JOptionPane.ERROR_MESSAGE);
}
//用户名正确,校验密码;
else if(!(s2.equals(password))){
//密码不正确
javax.swing.JFrame f=new javax.swing.JFrame("MessageDialog");
javax.swing.JOptionPane.showMessageDialog(f,"Wrong Administrator Password!!","ConfirmMessage",javax.swing.JOptionPane.ERROR_MESSAGE);
int returnValue=0;
if(returnValue==javax.swing.JOptionPane.OK_OPTION)
f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
else{
zc.face.AdministratorInterface jf4=new zc.face.AdministratorInterface();
jf4.setVisible(true);
setVisible(false);
//密码正确,建立新的界面
}
}
如果管理员用户输入的域名和密码都正确,点击“OK”按钮后将会弹出管理员界面(Administrator)。
在界面的上方有主菜单,分六部分:人员管理,住房管理,收费管理,房产管理,帮助,返回。
在人员管理,住房管理,收费管理,房产管理菜单下有相同的四种菜单项:
添加(Insert)
更新(Update)
删除(Delete)
查询(Inquery)
添加(Insert)菜单的代码如下:
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
String input=null;
javax.swing.JFrame f=new javax.swing.JFrame();
input=javax.swing.JOptionPane.showInputDialog(f,"请输入Insert语句","Input",javax.swing.JOptionPane.QUESTION_MESSAGE);
System.out.println("数据添加........");
if((input!=null)&&(input.length()!=0)){
System.out.println(input);
//进行数据添加
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce){
System.out.println("SQLException:"+ce.getMessage());
}
try{
Connection con=DriverManager.getConnection("jdbc:odbc:houqin");
Statement stmt=con.createStatement();
int status=stmt.executeUpdate(input);
ResultSet rs=stmt.executeQuery("select * from renyuan");
System.out.println(zc.face.MySqlUnit.printResultSet(rs));
stmt.close();
con.close();
}
catch(SQLException e){
System.out.println("SQLException:"+e.getMessage());
}
catch(IOException e2){
System.out.println("IOException:"+e2.getMessage());
}
}
else
System.out.println("输入正确的Insert语句.");
}
其它查询代码与上面的相同。
如果管理员用户想修改和查询人员方面的信息,则可以点击主菜单中的“人员管理”选项。
如果管理员用户想对人员数据库添加记录,则可以点击“添加”菜单项将会弹出Insert对话框。管理员用户输入insert语句后点击“确定”按钮,如果Insert语句正确系统将会执行“select*from renyuan”查询并在Output Windows窗口输出查询结果,至此对后端的renyuan数据库添加了记录,如果点击“取消”按钮,将会返回到管理员界面。
如果管理员用户想对人员数据库进行更新,则可以点击“更新”菜单项将会弹出Update对话框。管理员用户输入update语句后点击“确定”按钮,如果Update语句正确,系统将会执行“selete*from renyuan”查询,并在OutputWindows窗口输出查询结果,至此对后端的renyuan数据库的记录进行了更新。如果点击“取消”按钮,将会返回到管理员界面。
如果管理员用户想删除人员数据库的某项记录,则可以点击“删除”菜单项将会弹出Delete对话框。管理员用户输入delete语句后点击“确定”按钮,如果Delete语句正确并且要删除的记录存在,系统将会执行“selete*from renyuan”查询,并在OutputWindows窗口输出查询结果,至此删除了后端renyuan数据库的某项记录。如果点击“取消”按钮,将会返回到管理员界面。
如果管理员用户只想查询有关人员数据库的信息,则可以点击“查询”菜单顶将会弹出Inquery 对话框。管理员用户输入select语句后点击“确定”按钮,如果select语句正确并且查询内容存在,系统将会执行select语句,在OutputWindows窗口显示查询结果。如果点击“取消”按钮,将会返回到管理员界面。
当管理员用户想对住房(zhufang)数据库进行修改和查询时,则可以点击主菜单中的“住房管理”选项。如果管理员用户想对住房数据库添加记录时,则可以点击“添加”菜单项;如果管理员用户想对住房数据库的记录进行更新,则可以点击“更新”菜单项;如果管理员用户想对住房数据库的记录进行删除,则可以点击“删除”菜单项;如果管理员用户只想查询住房数据库的信息,则可以点击“查询”菜单项。其“添加”,“更新”,“删除”,“查询”菜单的具体用法同“人员管理”菜单下的“添加”,“更新”,“删除”,“查询”菜单项。
当管理员用户想对收费(shoufei)数据库进行修改和查询时,则可以点击主菜单中的“收费管理”选项。如果管理员用户想对收费数据库添加记录时,则可以点击“添加”菜单项;如果管理员用户想对收费数据库的记录进行更新,则可以点击“更新”菜单项;如果管理员 用户想对收费数据库的记录进行删除,则可以点击“删除”菜单项;如果管理员用户只想查询收费数据库的信息,则可以点击“查询”菜单项。其“添加”,“更新”,“删除”,“查询”菜单的具体用法同“人员管理”菜单下的“添加”,“更新”,“删除”,“查询”菜单项。
当管理员用户想对房产(fangchan)数据库进行修改和查询时,则可以点击主菜单中的“房产管理”选项。如果管理员用户想对房产添加记录时,则可以点击“添加”菜单项;如果管理员用户想对房产的记录进行更新,则可以点击“更新”菜单项;如果管理员用户想对房产的记录进行删除,则可以点击“删除”菜单项;如果管理员用户只想查询房产的信息,则可以点击“查询”菜单项。其“添加”,“更新”,“删除”,“查询”菜单的具体用法同“人员管理”菜单下的“添加”,“更新”,“删除”,“查询”菜单项。
如果管理员用户想了解系统的有关信息,则可以点击主菜单中“帮助”菜单下的“帮助”菜单项,将会在主菜单下的文本区内显示系统信息。
如果管理员用户想离开管理系统,则可以点击主菜单中“返回”菜单下的“返回”菜单项,管理员用户则可以返回到开始界面(JFramel)。
3.3 物业管理系统的各个界面及其功能介绍
系统的进入界面是JFramel.java,下面是JFramel.java界面:
JFramel.java是系统的主界面,进入系统有三个选择:普通用户进入系统,管理员进入系统,退出系统。用户可以根据自己的需要选择进入不同的界面。
以下是userInterface.java界面:
userInterface.java是普通用户系统的查询主界面,用户可以在此实现对人员信息,住房信息、收费信息、房产信息的各种查询。
renyuan1.java界面是用户想查询人员方面的信息时,又只知道所要查询人的姓名时进行查询的界面。
renyuan2.java界面是用户想查询人员方面的信息时,又只知道所要查询人的门牌号时进行查询的界面。
renyuan3.java界面
zhufang1.java界面
zhufang2.java界面
zhufang3.java界面
shoufei.java界面
fangchan.java界面
以下是renyuan1.java界面:
以上是系统为方便普通用户查询各种信息而提供的不同种类的查询界面。
以下是Administraror.java界面:
Administraror.java是管理系统的主界面,管理员用户可以通过界面提供的各类管理信息的各种功能实现对后端数据库记录的添加,更新,删除,查询和管理。
Input1.java界面是管理员想对人员数据库添加记录时点击“人员管理”菜单下的“添加”项时出现的界面。
Input2.java界面是管理员想对住房数据库添加记录时点击“住房管理”菜单下的“添加”项时出现的界面。
Input3.java界面
Input4.java界面
Update1.java界面
Delete1.java界面
Inquery1.java界面
3.4 各个表单的联系
下面根据在普通用户界面对人员信息按姓名进行查询及管理员界面对人员数据库进行添加记录将以上部分界面连接起来。
用户在进入界面(JFraml.java)上点击“普通用户进入系统”按钮,系统就弹出普通用户界面(userInterface.java)。
如果用户想查询人员方面的信息,就点击主菜单中的“人员信息”菜单,如果用户对数据库查询方面的知识不熟悉,则选择“人员信息”菜单下的“填充查询”菜单。如果用户只知道所要查询人的姓名,则点击“填充查询”菜单下的“姓名”菜单项,系统将会弹出人员信息查询界面1(renyuan1.java)。用户可以输入查询人姓名点击“查询”按钮查询,查询结果在OutputWindow窗口显示,如果用户想继续查询,就点击“继续查询”按钮,用户重新输入其他查询人姓名点击“查询”按钮进行查询。用户此时如果想离开renyuan1.java界面,就点击“取消”按钮,将会返回到普通用户界面。
省略
3.5后台数据库的建立
省略
3.6 建立ODBC数据源
省略
3.7 连接数据库
JDBC建立Java程序连接到数据库的结构,它看起来很像ODBC,但ODBC是以C语言撰写的,不能直接在Java程序中应用。JDBC中包含一个JDBC/ODBC的桥接器(bridge),通过该桥接器就可以在Java程序中调用合乎ODBC规格的数据库。
图:利用JDBC/ODBC桥接驱动程序将Java程序与数据库连接
连接代码如下:
try
{ Class.forName(“sun.jdbc.odbc. JdbcOdbcDriver”);}
catch (ClassNotFoundException ce)
{System.out.println(“SQLCXCEption:”+ce.getMessage());}
try
{Connection con=Driver Manager.getConnection(“jdbc:odbc:houqin”);}
catch(SQLException e)
{System.out.println(“SQLException:”+e.getMessage( );)
class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);载入JDBC/ODBC桥接驱动程序到程序中。Connection con=Driver Managor.getConnection(“jdbc:odbc:houqin”);连接到Microsoft的SQL Server数据库,数据来源名称为houqin的数据库houqin。Class类别的ferName()方法负责将指定的JDBC/ODBC桥接驱动程序载入到Java程序中,DriverManager类别的getConnection()方法负责与指定的数据来源houqin连接。
3.8 取得数据表属性
当使用JDBC送出SQL的select语句后,将会取得一个ResultSet对象rs,通过rs可建立一个ResultSetMetaData对象md,通过md对象可取得md对象中的数据成员或调用md对象中的方法成员:
md.getColumnCount() 取得指定数据表的域数
md.getColumnLabel(i) 取得第i域名称
md.getColumnDisplaySize(i) 取得第i域显示的域数
md.getColumnTypeName(i) 取得第i域的类型名称
程序MySqlUtil.java中的printMetaData()方法显示该连接表的一些静态数据,例如每一行共有几域(colCount)、每域名称(colLabel)、每域以几个域(column)表示(colDisplaySize)、每一域的数据类型(colTypeName)等等。PrintResultSet()方法显示该连接表的一些动态数据,每一域的域名以及该域的内含值。
其代码如下:
package zc.face;
import java.io.*;
import java.sql.*;
class MySqlUnit {
public static String printMetaData(ResultSet rs) throws SQLException
{
ResultSetMetaData md=rs.getMetaData();
int colCount=md.getColumnCount();
String colLabel[]=new String[colCount+1];
int colDisplaySize[]=new int[colCount+1];
String colTypeName[]=new String[colCount+1];
System.out.println("database colCount="+colCount);
StringBuffer sb=new StringBuffer();
for(int i=1;i<=colCount;i++){
colLabel[i]=md.getColumnLabel(i);
colDisplaySize[i]=md.getColumnDisplaySize(i);
colTypeName[i]=md.getColumnTypeName(i);
sb.append("Label:"+colLabel[i]+"DisplaySize:"+colDisplaySize[i]+"TypeName:"+colTypeName[i]+"\r\n");
}
return sb.toString();
}
public static String printResultSet(ResultSet rs) throws IOException,SQLException
{
ResultSetMetaData md=rs.getMetaData();
int colCount=md.getColumnCount();
String colLabel[]=new String[colCount+1];
for(int i=1;i<=colCount;i++)
colLabel[i]=md.getColumnLabel(i);
StringBuffer sb=new StringBuffer();
while(rs.next()){
for(int i=1;i<=colCount;i++)
sb.append(colLabel[i]+":"+rs.getObject(i)+" ");
sb.append("\r\n");
return sb.toString( );
}
}
四.系统评价与展望
在有限的时间里经过努力,物业管理系统已具规模。
界面比较实用,系统稳定性好,在不同的计算机上都可以很平稳的运行。
系统的查询功能完备,可以满足用户的各种查询要求。查询信息准确无误,完整详细、迅速方便。
系统的可操作性很好,基本上不同用户过多浪费时间在无谓的细节上。
系统的突出之处是用TDBC/ODBC桥接驱动程序连接成功,用Java语句实现了对后端数据库的修改和查询功能。
本系统在现有基础上,对于后端数据库系统的设计有待在又节约数据库资源和又便于客户端查询更方便的基础上进一步完善和协调。随着计算机技术的不断发展和更新以及人力物力的投入,本系统的功能将会得到更加完善的改进。
五.参考书目:
Microsoft SQLServer 7.0 开发指南 [美]Sharon Bjeletich,Greg Mable
Microsoft SQLServer 7.0 系统管理指南 [美]M.Soenik,o.Sledge
JAVA 例解教程 柯温钊 中国铁道出版社
Java 程序设计入门教程 林邦杰 中国青年出版社
Java 编程思想 Thinking in JAVA [美] Bruce Eckel
Windows NT Server4 从入门到精通 [美] Mark Minasi
操作系统Linux 北京·电子工业出版社
5、资源下载
本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基于java+JDBC+sqlserver的物业管理系统设计与实现(源码+文档)_java_JDBC_CS架构_物业管理系统.zip |