package com.text.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.sun.corba.se.spi.servicecontext.UEInfoServiceContext;
import com.text.entity.User;
import com.text.util.JdbcUtil;
import com.text.util.PropertiesUtil;
/*
* UserDao
*层操作User表
*/
public class UserDao {
//对数据库user表的用户名与密码核对的方法
public User login(String username,String pwd){
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
User user = null;
try{
//连接数据库
connection =JdbcUtil.getJdbcUtil().getConnection();
//将此连接的自动提交模式设置为false
connection.setAutoCommit(false);
//mysql语句检测用户名与密码(decode(?,?)解密)
StringBuffer stringBuffer=new StringBuffer(" select id,username,pwd,realname from user where username = ? and decode(pwd,?)=? ");
//存储用户名与密码,需要时调用
preparedStatement=connection.prepareStatement(stringBuffer.toString());
preparedStatement.setString(1, username);
preparedStatement.setString(3, pwd);
//用PropertiesUtil读取prepareStatement存储的mysql语句(密匙)
preparedStatement.setString(2, PropertiesUtil.getPropertiesUtil().getValue("mykey"));
//查询结果
resultSet=preparedStatement.executeQuery();
//遍历信息
if(resultSet.next()){
user=new User();
user.setId(resultSet.getInt("id"));
user.setUsername(resultSet.getString("username"));
user.setPwd(resultSet.getString("pwd"));
user.setRealname(resultSet.getString("realname"));
}
//user不为空时
if(user!=null){
//mysql语句检测用户名是否在线(在线=1)
StringBuffer onLineBuffer=new StringBuffer(" update user set isonline = 1 where username = ? ");
//存储用户名与密码,需要时调用
preparedStatement=connection.prepareStatement(onLineBuffer.toString());
preparedStatement.setString(1, user.getUsername());
preparedStatement.executeUpdate();
}
//放此 Connection 对象当前持有的所有数据库锁
connection.commit();
}catch(Exception e){
try {
//返回Connection 对象
connection.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally{
//关闭连接
JdbcUtil.getJdbcUtil().closeConnection(resultSet, preparedStatement, connection);
}
return user;
}
//检测数据库user表用户名是否重叠的方法
public User getByUsername(String username){
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
User user = null;
try{
//连接数据库
connection =JdbcUtil.getJdbcUtil().getConnection();
//mysql语句检测用户名
StringBuffer stringBuffer=new StringBuffer(" select id,username,pwd,realname from user where username = ? ");
//存储用户名,需要时调用
preparedStatement=connection.prepareStatement(stringBuffer.toString());
preparedStatement.setString(1, username);
//查询结果
resultSet=preparedStatement.executeQuery();
//遍历信息
if(resultSet.next()){
user=new User();
user.setId(resultSet.getInt("id"));
user.setUsername(resultSet.getString("username"));
user.setPwd(resultSet.getString("pwd"));
user.setRealname(resultSet.getString("realname"));
}
}catch(Exception e){
e.printStackTrace();
}finally{
//关闭连接
JdbcUtil.getJdbcUtil().closeConnection(resultSet, preparedStatement, connection);
}
return user;
}
//对数据库user表添加新用户的方法
public void insertUser(User user){
Connection connection = null;
PreparedStatement preparedStatement = null;
try{
//连接数据库
connection =JdbcUtil.getJdbcUtil().getConnection();
//mysql语句增加新用户
StringBuffer stringBuffer=new StringBuffer(" insert into user (username,pwd,realname,photo) values (?,encode(?,?),?,?) ");
//存储新用户,需要时调用(用户名,密码,真实姓名,图片)
preparedStatement=connection.prepareStatement(stringBuffer.toString());
preparedStatement.setString(1, user.getUsername());
preparedStatement.setString(2, user.getPwd());
//用PropertiesUtil读取prepareStatement存储的mysql语句(密匙)
preparedStatement.setString(3, PropertiesUtil.getPropertiesUtil().getValue("mykey"));
preparedStatement.setString(4, user.getRealname());
preparedStatement.setString(5, user.getPhoto());
//增加新用户
preparedStatement.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
//关闭连接
JdbcUtil.getJdbcUtil().closeConnection(null, preparedStatement, connection);
}
}
//得到好友列表集的方法
public List<User> getUserList(){
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
List<User> users = null;
try{
//连接数据库
connection =JdbcUtil.getJdbcUtil().getConnection();
//mysql语句检测用户表
StringBuffer stringBuffer=new StringBuffer(" select id,username,pwd,realname,photo,isonline from user ");
//存储用户表,需要时在数据库调用
preparedStatement=connection.prepareStatement(stringBuffer.toString());
//查询结果
resultSet=preparedStatement.executeQuery();
//如果返回的结果集不为空,则new一个好友列表集
if(!resultSet.wasNull()){
users=new ArrayList<User>();
}
//遍历信息
while(resultSet.next()){
User user=new User();
user.setId(resultSet.getInt("id"));
user.setUsername(resultSet.getString("username"));
user.setRealname(resultSet.getString("realname"));
user.setPhoto(resultSet.getString("photo"));
user.setIsonline(resultSet.getInt("isonline"));
//将遍历的好友信息添加到好友列表集里
users.add(user);
}
}catch(Exception e){
e.printStackTrace();
}finally{
//关闭连接
JdbcUtil.getJdbcUtil().closeConnection(resultSet, preparedStatement, connection);
}
return users;
}
//退出的方法
public void exit(String username){
Connection connection = null;
PreparedStatement preparedStatement = null;
try{
//连接数据库
connection =JdbcUtil.getJdbcUtil().getConnection();
//mysql语句检测用户表
StringBuffer sqlBuffer=new StringBuffer(" update user set isonline = 0 where username = ? ");
//存储用户表,需要时在数据库调用
preparedStatement=connection.prepareStatement(sqlBuffer.toString());
preparedStatement.setString(1, username);
//更新结果
preparedStatement.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
//关闭连接
JdbcUtil.getJdbcUtil().closeConnection(null, preparedStatement, connection);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java仿qq通讯聊天软件
共140个文件
png:64个
class:37个
java:29个
需积分: 0 1 下载量 40 浏览量
2023-07-03
22:04:18
上传
评论
收藏 2.37MB ZIP 举报
温馨提示
Bzhan搜java仿qq通讯,有教程。最终版
资源推荐
资源详情
资源评论
收起资源包目录
java仿qq通讯聊天软件 (140个子文件)
UserDao.class 5KB
ServerClient.class 5KB
TalkView.class 4KB
InformationDao.class 4KB
RegisterView.class 3KB
FriendListView.class 3KB
LogView.class 3KB
UserService.class 3KB
TalkThread.class 3KB
JdbcUtil.class 3KB
JdbcUtil.class 3KB
FriendListView$1.class 2KB
Message.class 2KB
Message.class 2KB
TalkView$1.class 2KB
RegisterView$1.class 2KB
ReplaceFriendListThread.class 2KB
TalkView$2.class 2KB
FriendListView$2.class 2KB
LogView$1.class 2KB
SocketUtil.class 2KB
SocketUtil.class 2KB
User.class 1KB
User.class 1KB
TalkThread.class 1KB
Information.class 1KB
Information.class 1KB
PropertiesUtil.class 1KB
PropertiesUtil.class 1KB
RegisterView$2.class 1KB
MessageType.class 917B
MessageType.class 917B
LogView$2.class 752B
ThreadManage.class 624B
ThreadManage.class 530B
Clientconfig.class 426B
Clientconfig.class 426B
.classpath 306B
.classpath 306B
mysql-connector-java-5.1.10.jar 707KB
mysql-connector-java-5.1.10.jar 707KB
UserDao.java 7KB
ServerClient.java 6KB
RegisterView.java 6KB
TalkView.java 5KB
FriendListView.java 5KB
UserService.java 4KB
LogView.java 4KB
InformationDao.java 3KB
TalkThread.java 3KB
ReplaceFriendListThread.java 2KB
Message.java 2KB
Message.java 2KB
JdbcUtil.java 2KB
JdbcUtil.java 2KB
SocketUtil.java 1KB
SocketUtil.java 1KB
MessageType.java 1KB
MessageType.java 1KB
User.java 1KB
User.java 1KB
PropertiesUtil.java 996B
PropertiesUtil.java 996B
TalkThread.java 971B
Information.java 952B
Information.java 952B
ThreadManage.java 531B
ThreadManage.java 434B
Clientconfig.java 197B
Clientconfig.java 197B
choice.png 17KB
choice.png 17KB
choice.png 17KB
choice.png 17KB
xs.png 17KB
xs.png 17KB
xs.png 17KB
xs.png 17KB
yy.png 17KB
yy.png 17KB
yy.png 17KB
yy.png 17KB
choice (2).png 16KB
choice (2).png 16KB
choice (2).png 16KB
choice (2).png 16KB
wzh.png 16KB
wzh.png 16KB
wzh.png 16KB
wzh.png 16KB
ym.png 16KB
ym.png 16KB
ym.png 16KB
ym.png 16KB
wl.png 16KB
wl.png 16KB
wl.png 16KB
wl.png 16KB
sl.png 15KB
sl.png 15KB
共 140 条
- 1
- 2
资源评论
不可理yu
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功