Java登录界面 2DB
来源:互联网 发布:中文语音朗读软件( 编辑:程序博客网 时间:2024/06/05 19:58
package wyf.wyy;
import java.util.*;
import java.sql.*;
import java.io.*;
import java.awt.*;
import javax.swing.*;
public class DButil
{
private static String driver="sun.jdbc.odbc.JdbcOdbcDriver";//声明驱动类字符串
//声明数据库连接字符串
private static String url="jdbc:odbc:driver={Microsoft 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
{
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;}//如果结果集不为空关闭结果集并赋值null
if(stat!=null){stat.close(); stat=null;}//如果语句对象不为空关闭语句对象并赋值null
if(con!=null){con.close(); con=null;}//如果连接不为空关闭连接并赋值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("select pwd from user where uid='"+user+"'");
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
{
con=DButil.getConnection();//得到数据库连接
stat=con.createStatement();//创建语句对象
count=stat.executeUpdate(sql);//执行更新
}
catch(Exception e)
{
e.printStackTrace();
count=-1;//更新失败返回值为-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<String> vpid=new Vector<String>();//存放pid的集合 一个用户对应多个联系人
try
{
con=DButil.getConnection();//得到数据库连接
stat=con.createStatement();//创建语句对象
rs=stat.executeQuery("select pid from lxy where uid='"+uid+"'");//得到每个联系人的ID
while(rs.next())
{
String pid=rs.getString(1);//得到用户下的pid
vpid.add(pid);//添加进联系人集合
}
stat=con.createStatement();//重新创建语句对象
for(String s:vpid)
{//循环删除每个联系人
stat.executeUpdate("delete from photo where pid='"+s+"'");
}
//在联系人lxy表中删除每个联系人
count=stat.executeUpdate("delete from lxy where uid='"+uid+"'");
//在用户表中删除用户
stat.executeUpdate("delete from user where uid='"+uid+"'");
}
catch(Exception e)
{
e.printStackTrace();
}
finally{DButil.closeCon();}//关闭数据库连接
return count;//返回删除了多少个联系人
}
public static Vector<String> getNode(String user,String condition)//根据条件得到节点名称列表
{//根据登陆用户和条件得到节点名称
Vector<String> node=new Vector<String>();
String patternStr=";";//拆分条件的正则式
String[] scon=condition.split(patternStr);//将条件拆分
try
{
con=getConnection();//得到数据库连接
stat=con.createStatement();//创建语句对象
if(scon.length==1&&scon[0].equals("uid"))
{//得到当前用户下有多少个分组
rs=stat.executeQuery("select distinct pgroup from lxy where uid='"+user.trim()+"'");
}
else if(scon.length==1)
{//得到当前联系人下相册里照片名列表
rs=stat.executeQuery("select photoname from photo where pid = "+
"(select pid from lxy where uid='"+user.trim()+"'and pname='"+scon[0].trim()+"')");
}
else if(scon.length==2)
{//得到分组里的联系人姓名列表
rs=stat.executeQuery("select pname from lxy where uid='"
+user.trim()+"'and pgroup='"+scon[1].trim()+"'");
}
while(rs.next())
{//组织成Vector返回
String s=rs.getString(1);
node.add(s);
}
}
catch(Exception e)
{
e.printStackTrace();//打印异常信息
}
finally
{
DButil.closeCon();//关闭数据库连接
}
return node;//返回结果列表
}
//**************************分组******************************************
public static int delGroup(String user,String group)
{
int count=0;
Vector<String> vpid=new Vector<String>();//一个分组对应多个联系人
try
{
con=getConnection();//得到数据库连接
stat=con.createStatement();//创建语句对象
rs=stat.executeQuery("select pid from lxy where pgroup='"+group+"'"
+"and uid='"+user+"'");//从数据库中搜索到group组里的pid
while(rs.next())
{
String pid=rs.getString(1);//得到用户下的pid循环删除photo表中pid下的照片
vpid.add(pid);//添加该分组下联系人名称到集合
}
stat=con.createStatement();//创建语句对象
for(String s:vpid)
{//循环删除每个联系人的相册
stat.executeUpdate("delete from photo where pid='"+s+"'");
}
//在联系人lxy表中删除每个联系人
count=stat.executeUpdate("delete from lxy where pgroup='"+group+"'");
}
catch(Exception e)
{
e.printStackTrace();
}
return count;//返回删除联系人数目
}
//****************************联系人**************************************
public static String insertPerson(String uid,Vector<String> pInfo)
{
String isPathNull="isNotNull";//传过来的图像是不是合法,默认不为空
try{
con=getConnection();//得到数据库连接
if(pInfo.get(9).equals("")||pInfo.get(9)==null)
{//照片路径为空,则不插入图像
psInsert=con.prepareStatement("insert into lxy(pid,pname,pgender,page,pnumber,"+
"pemail,pgroup,ppostalcode,padress,uid)"+
"values(?,?,?,?,?,?,?,?,?,?)");
}
else
{//照片路径不为空,则插入图像
psInsert=con.prepareStatement("insert into lxy(pid,pname,pgender,page,pnumber,"+
"pemail,pgroup,ppostalcode,padress,uid,pphoto)"+
"values(?,?,?,?,?,?,?,?,?,?,?)" );
File f=new File(pInfo.get(9));//获取选取的图片文件
byte[] b=new byte[(int)f.length()];//创建存储图片数据的数组
FileInputStream fin=new FileInputStream(f);
fin.read(b);fin.close();//读取文件存于byte数组中并关闭输入流
psInsert.setBytes(11,b);//设置pphoto参数的数据
}
for(int i=0;i<9;i++)
{//设置公共信息
psInsert.setString(i+1,pInfo.get(i));
}
psInsert.setString(10,uid);//所属用户
psInsert.execute();psInsert.close();//执行更新并关闭语句
}
catch(FileNotFoundException fnfe){isPathNull="isNull";}//图片路径不对
catch(Exception e){e.printStackTrace();}
finally{DButil.closeCon();}//关闭数据库连接
return isPathNull;
}
public static String updatePerson(String uid,Vector<String> pInfo){
String isPathNull="isNotNull";//传过来的path是不是合法
try{
con=getConnection();
if(pInfo.get(9).equals("")||pInfo.get(9)==null)
{//更新时候,如果照片路径为空,则不更新图像
psInsert=con.prepareStatement("update lxy set pname=?,pgender=?,page=?,pnumber=?,"+
"pemail=?,pgroup=?,ppostalcode=?,padress=?,uid=? where pid='"+pInfo.get(0).trim()+"'");
}
else
{//如果照片路径不为空,则更新图像
psInsert=con.prepareStatement("update lxy set pname=?,pgender=?,page=?,pnumber=?,"+
"pemail=?,pgroup=?,ppostalcode=?,padress=?,uid=?,pphoto=? where pid='"+pInfo.get(0).trim()+"'");
File f=new File(pInfo.get(9));//获取选取的图片文件
byte[] b=new byte[(int)f.length()];//创建存储图片数据的数组
FileInputStream fin=new FileInputStream(f);
fin.read(b);fin.close();//读取文件存于byte数组中并关闭输入流
psInsert.setBytes(10,b);
}
for(int i=1;i<9;i++){//设置公共的信息部分
psInsert.setString(i,pInfo.get(i));
}
psInsert.setString(9,uid);//所属用户
psInsert.execute();psInsert.close();//执行更新并关闭语句
}
catch(FileNotFoundException fnfe){isPathNull="isNull";}//路径不合法
catch(Exception e){e.printStackTrace();}
finally{DButil.closeCon();}//关闭连接
return isPathNull;
}
public static Vector<String> getPerInfo(String sql)//得到联系人信息
{
Vector<String> pInfo=new Vector<String>();
try
{
con=getConnection();//得到数据库连接
stat=con.createStatement();//创建语句对象
rs=stat.executeQuery(sql);//执行查询
while(rs.next())
{
for(int i=1;i<10;i++)
{
pInfo.add(rs.getString(i));//将联系人信息添加到返回向量
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally{DButil.closeCon();}//关闭数据库连接
return pInfo;//返回信息集合
}
public static Image getPic(String sql)
{
Image i=null;//声明Image对象引用
try
{
con=getConnection();//得到数据库连接
stat=con.createStatement();//创建语句对象
rs=stat.executeQuery(sql);//执行SQL语句
while(rs.next())
{
byte[] buff=rs.getBytes(1);//得到图像数据
if(buff!=null)//如果数据存在
{
i=(new ImageIcon(buff)).getImage();//转换成ImageIcon对象
}
}
}
catch(Exception e)
{
e.printStackTrace();//打印异常信息
}
finally{DButil.closeCon();}//关闭数据库连接
return i;
}
//***********************************照片*********************************
public static int insertPic(String path,String pid)
{//flag=0表示上传成功 1表示找不到文件 2表示文件已经存在
int flag=0;
File f=new File(path);//获取选取的图片文件
try
{
con=getConnection();//得到数据库连接
psInsert=con.prepareStatement("insert into photo values(?,?,?)");
byte[] b=new byte[(int)f.length()];//创建存储照片数据的数组
FileInputStream fin=new FileInputStream(f);//
fin.read(b);fin.close();//读取文件存于byte数组中并关闭输入流
psInsert.setString(1,pid);//设置此照片所属联系人
psInsert.setString(2,f.getName());//设置此照片名称
psInsert.setBytes(3,b);//设置照片数据
psInsert.executeUpdate();psInsert.close();//执行更新并关闭语句
}
catch(FileNotFoundException fnfe){flag=1;}//找不到照片文件
catch(SQLException sqle){flag=2;}//文件已经存在
catch(Exception e){e.printStackTrace();}
finally{DButil.closeCon();}//关闭数据库连接
return flag;
}
public static void main(String[] args)
{
System.out.println(DButil.delUser("aa"));
}
}
- Java登录界面 2DB
- Java登录界面
- Java登录界面
- java登录界面代码
- java登录界面
- JAVA登录界面
- Java设计登录界面
- Java:创建登录界面
- 登录界面java
- Java登录窗口界面实验
- Java登录界面的开发
- java之用户登录界面
- Java Swing 用户登录界面
- JAVA Swing 用户登录界面
- JAVA编写QQ登录界面
- flex登录界面实例2
- 用JAVA开发简易QQ登录界面
- JAVA GUI 开发---登录界面加载背景图片
- 我在学校的信息化建设的总结——圆满的句号
- Java登录界面
- 默认库“library”与其他库的使用冲突;请使用 /NODEFAULTLIB:library LNK4098 的解决办法
- Netbeans FrameView
- 跨服务器跨数据库查询 之 JQuery辅助
- Java登录界面 2DB
- 表单中POST方法与GET方法有什么区别
- 让生活充满激情
- servlet的原理及过程
- 关于字符编码,你所需要知道的
- Servlet的多线程问题
- 20110606
- BootRom的生成过程
- 要下些毕业设计了,没有分悲哀