一 项目概述
现代人的生活节奏日益加快,各种联系人也不断增多,但是有很大一部分人依然在使用纸质通讯录。根据我的总结,纸质通讯录有以下缺陷:1,储存信息量少,查找不方便;2,不能存放照片;3,安全性不高,信息容易丢失,且对于隐私保护不强。为此,我开发了这个java通讯录程序。在我写的此程序中,上述缺陷得到了很好的弥补。
我在此通讯录中使用的是Access数据库。经过测试,该程序平台移植性良好,功能方面基本达到了我的预想要求。
二 具体功能介绍
1,用户的登录,注册,删除功能;
2,联系人信息的增加,删除,修改,查询的功能; 3,联系人分组的增加,删除的功能; 4,联系人头像的上传,显示等功能;
5,联系人相册的各项管理功能(相片的上传,删除等功能); 6.实现系统托盘的功能.
- 1 -
三 设计与实现
系统结构图: 通讯录系统 联系人管理 注册登录系统 添加联系人 修改联系人资料 查询联系人信息 删除联系人信息 添加联系人照片 删除联系人照片 注册新用户 修改登录密码 删除用户 用户登录
代码:
DButil.java
package tongxunlu; import java.util.*; import java.sql.*; import java.io.*; import java.awt.*; import javax.swing.*; public class DButil {
private static String driver=\声明驱动类字符串
private static String url=\Access Driver (*.mdb)};DBQ=db/linkman.mdb\
private static Connection con=null; private static Statement stat=null;
private static PreparedStatement psInsert=null; private static ResultSet rs=null;
public static Connection getConnection()//得到数据库连接的方法 { try
- 2 -
{
Class.forName(driver);
con=DriverManager.getConnection(url);//得到连接,连接数据库方法为桥接 }
catch(Exception e){e.printStackTrace();} return con;//返回连接 }
public static void closeCon()//关闭数据库连接的方法 {
try {
if(rs!=null){rs.close(); rs=null;}
if(stat!=null){stat.close(); stat=null;} if(con!=null){con.close(); con=null;} }
catch(Exception e){e.printStackTrace();} }
public static boolean check(String user,String pwd)//登陆验证函数 {
boolean flag=false; try {
con=DButil.getConnection(); stat=con.createStatement();
rs=stat.executeQuery(\ rs.next();
String spwd=rs.getString(1); if(spwd.equals(pwd)) {
flag=true; } }
catch(Exception e) {
flag=false; }
finally{DButil.closeCon();} return flag; }
public static int update(String sql)//更新数据库 {
int count=0;//声明返回值 try {
- 3 -
con=DButil.getConnection(); stat=con.createStatement(); count=stat.executeUpdate(sql); }
catch(Exception e) {
e.printStackTrace(); count=-1; }
finally{DButil.closeCon();} return count; }
public static boolean isExist(String sql)//某条记录是否存在 {
boolean flag=false; try {
con=DButil.getConnection(); stat=con.createStatement(); rs=stat.executeQuery(sql); if(rs.next()) {
flag=true;//存在,设置返回值为true } }
catch(Exception e) {
e.printStackTrace();
flag=false;//发生任何异常,置返回结果为false }
finally{DButil.closeCon();} return flag; }
public static int delUser(String uid)//删除用户 {
int count=0;//设置返回值,此值记录被删除的用户拥有的联系人数量 Vector
con=DButil.getConnection(); stat=con.createStatement();
rs=stat.executeQuery(\ while(rs.next())
- 4 -

