package com.mcl.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import com.mcl.model.Friend;
import com.mcl.model.Message;
import com.mcl.model.User;
import com.mcl.tools.ConnDB;
public class UserDao {
/**
* 通过用户名来获取用户的id值
* @param loginname
* @return id
* @throws Exception
*/
public int getIdByLoginname(String loginname){
int id=0;
ConnDB conn=new ConnDB();
String sql="select f_id from t_user where f_loginname='"+loginname+"'";
ResultSet rs=conn.executeQuery(sql);
try{
while(rs.next())
{
id=rs.getInt(1);
}
}catch (SQLException e) {
e.printStackTrace();// TODO: handle exception
}
conn.close();
return id;
}
/**
* 通过id来获取用户的昵称
* @param loginname
* @return id
* @throws Exception
*/
public String getNameById(int id){
ConnDB conn=new ConnDB();
String sql="select f_name from t_user where f_id='"+id+"'";
ResultSet rs=conn.executeQuery(sql);
String name="";
try{
while(rs.next())
{
name=rs.getString(1);
}
}catch (SQLException e) {
e.printStackTrace();// TODO: handle exception
}
conn.close();
return name;
}
/**
* 检查用户是否存在返回boolean类型,用于数据操作时检查数据库
* @param loginname
* @return boolean result
* @throws Exception
*/
public boolean isExist(String loginname){
boolean result=false;
ConnDB conn=new ConnDB();
String sql="SELECT * FROM t_user where f_loginname='"+loginname+"'";
ResultSet rs=conn.executeQuery(sql);
try{
if(rs.next())
{
result=true;
}else
{
result=false; //表示用户不存在
}
}catch (SQLException e) {
e.printStackTrace();// TODO: handle exception
}
conn.close();
return result;
}
/**
* 检查用户名是否已经存在,用于注册时向页面响应
* @param loginname
* @return
* @throws Exception
*/
public String checkUser(String loginname){
String result="";
ConnDB conn=new ConnDB();
String sql="SELECT * FROM t_user where f_loginname='"+loginname+"'";
ResultSet rs=conn.executeQuery(sql);
try{
if(rs.next())
{
result="很抱歉【"+loginname+"】已被注册";
}else
{
result="1"; //表示用户没有注册
}
}catch (SQLException e) {
e.printStackTrace();// TODO: handle exception
}
conn.close();
return result;
}
/**
* 对用户进行存储
* @param user
* @return result
* @throws Exception
*/
public String saveUser(User user){
String result="";
ConnDB conn=new ConnDB();
String sql="INSERT INTO t_user(f_id,f_name,f_loginname,f_password,f_question,f_answer,f_email) VALUES (t_user_seq.Nextval,'"+user.getF_name()+"','"+user.getF_loginName()+"','"+user.getF_password()+"','"+user.getF_question()+"','"+user.getF_answer()+"','"+user.getF_email()+"')";
int rt=conn.executeUpdate(sql); //执行更新
if(rt>0)
{
result="注册成功";
}else
{
result="注册失败";
}
conn.close();
return result;
}
/**
* 来更改密码
* @param user
* @return 字符串来响应给页面
* @throws Exception
*/
public String changePwd(User user){
String result="";
ConnDB conn=new ConnDB();
UserDao dao=new UserDao();
String sql1="update t_user set f_password='"+user.getF_password()+"' where f_loginname='"
+user.getF_loginName()+"' and f_question='"+user.getF_question()+"' and f_answer='"+user.getF_answer()+"'";
if(dao.isExist(user.getF_loginName())==false) //如果不存在该用户
{
result="该用户名不存在!!";
}else
{
int rt=conn.executeUpdate(sql1);
if(rt>0)
{
result="更新成功";
}else
{
result="更新失败";
}
}
conn.close();
return result;
}
/**
* 通过用户名,密码进行登录
* @param user
* @return 响应页面的字符串
* @throws Exception
*/
public String loginUser(User user){
String result="";
ConnDB conn1=new ConnDB();
ConnDB conn2=new ConnDB();
String sql="select f_password,f_state from t_user where f_loginname='"+user.getF_loginName()+"'"; //获取密码
String sql1="update t_user set f_state=1 where f_loginname='"+user.getF_loginName()+"'"; //更改状态
ResultSet rs=conn1.executeQuery(sql);
try{
if(rs.next())
{
String password=rs.getString("f_password");
if(user.getF_password().equals(password))
{
if(rs.getInt("f_state")==0)
{
int rt=conn2.executeUpdate(sql1);
if(rt>0)
{
result="登录";
}else
{
result="登录失败";
}
result="正确";
}else{
result="该用户已登录!";
}
}else
{
result="用户名或者密码错误";
}
}else
{
result="没有此用户!";
}
}catch (SQLException e) {
e.printStackTrace();// TODO: handle exception
}
conn1.close();
System.out.println("-----------------------------------登录");
conn2.close();
return result;
}
/**
* 通过用户名查询昵称
* @param loginname
* @return name
* @throws Exception
*/
public String getName(String loginname){
String name="";
ConnDB conn=new ConnDB();
String sql="select f_name from t_user where f_loginname='"+loginname+"'";
ResultSet rs=conn.executeQuery(sql);
try{
while(rs.next())
{
name=rs.getString(1);
}
}catch (SQLException e) {
e.printStackTrace();// TODO: handle exception
}
conn.close();
return name;
}
/**
* 当载入页面时查询好友以及消息信息存入到数json中
* @param user
* @return JSONArray对象
* @throws Exception
*/
public JSONArray checkUser(Friend user){
ConnDB conn=new ConnDB();
int userid=user.getF_userID(); //获取用户的id值
JSONArray userArr=new JSONArray(); //Json数组
JSONObject userObj=new JSONObject();
String message="";
String sql="select b.f_id,b.f_name,b.f_state,b.f_loginname,(select count(*) from " +
"t_message t where t.f_senderid=a.f_friendid and t.f_state=0) as f_count " +
"from t_friend a,t_user b where a.f_friendid=b.f_id and a.f_userid="+userid; //查询friendId
ResultSet rs1=conn.executeQuery(sql);
try {
while(rs1.next()) //遍历查询friendid
{
if(rs1.getInt("f_count")>0)
{
message="(有"+rs1.getInt("f_count")+"条未读消息)"; //获取几条未读消息
}else
{
message="";
}
int state=rs1.getInt("f_state");
String name=rs1.getString("f_name");//获取昵称
String loginname=rs1.getString("f_loginname");
int friendid=rs1.getInt("f_id");
userObj.put("name", name); //放入json 对象中
userObj.put("state", state);
userObj.put("message", message);
userObj.put("loginname", loginname);
userObj.put("id", friendid);
userArr.add(userObj); //将json对象放任json数列中
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn.close();
return userArr;
}
/**
* 进行注销
* @param user
* @return result
*/
public String outLine(User user){
String result="";
ConnDB conn=new ConnDB();
String sql="update t_user set f_state=0 where f_loginname='"+user.getF_loginName()+"'"; //更改状态
System.out.println(sql);
try{
int rt=conn.executeUpdate(sql);
System.out.println(rt);
if(rt>0)
{
result="退出成功,谢谢光临";
}else
{
result="错误~~~~";
}
}catch (Exception e) {
e.printStackTrace();// TODO: handle exception
}
conn.close();
System.out.println(result);
return result;
}
/**
* 添加好友时先进行查找是否存在该用户
* @param user
* @return
* @throws Exception
*/
public String SearchUser(User user){
String result="";
String sql1="select * from t_user where f_loginname='"+user.getF_loginName()+"'"; //查询是否存在要查找的用户
System.out.println(sql1);
ConnDB
没有合适的资源?快使用搜索试试~ 我知道了~
JAVA WEB即时通信
共67个文件
jar:16个
jpg:11个
class:8个
5星 · 超过95%的资源 需积分: 9 28 下载量 56 浏览量
2014-03-18
11:04:21
上传
评论 3
收藏 7.92MB ZIP 举报
温馨提示
一套不错的JAVA WEB即时通信源码,导入eclipse里就可以运行的。
资源推荐
资源详情
资源评论
收起资源包目录
JAVA WEB即时通信.zip (67个子文件)
JAVA WEB即时通信
.project 2KB
.settings
.jsdtscope 500B
org.eclipse.wst.common.component 444B
org.eclipse.jdt.core.prefs 395B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.jsdt.ui.superType.name 6B
.mymetadata 279B
WebRoot
test.jsp 948B
WEB-INF
web.xml 809B
lib
commons-beanutils-1.8.3.jar 227KB
commons-lang-2.4.jar 256KB
jstl-1.2.jar 405KB
sqljdbc.jar 570KB
jackson-all-1.7.6.jar 932KB
mysql-connector-java-3.0.16-ga-bin.jar 231KB
jsf-api.jar 314KB
jaxen-1.1-beta-6.jar 239KB
jsf-impl.jar 1.15MB
dom4j-1.6.1.jar 307KB
dwr.jar 1.13MB
ezmorph-1.0.2.jar 76KB
classes12.jar 1.52MB
json-lib-2.1.jar 122KB
commons-logging-1.1.1.jar 59KB
commons-collections-3.2.1.jar 562KB
classes
com
mcl
dao
UserDao.class 10KB
servlet
UserServlet.class 8KB
model
User.class 2KB
Friend.class 864B
Message.class 2KB
tools
ConnDB.class 5KB
test.class 651B
connDB.properties 125B
UserUtil.class 821B
index.jsp 23KB
META-INF
MANIFEST.MF 36B
JS
jquery-1.8.2.js 261KB
AjaxRequest.js 2KB
wghFunction.js 1KB
CSS
style.css 2KB
talk.jsp 4KB
chat.jsp 16KB
images
5.jpg 755B
blue_glow.jpg 161KB
3.jpg 2KB
loginin.png 36KB
div_bg.jpg 13KB
4.jpg 2KB
2.jpg 82KB
qq.jpg 59KB
ico_bbs.jpg 14KB
6.jpg 714B
1.bmp 133KB
login.jpg 29KB
ico_label.gif 1009B
ico_label.jpg 14KB
.myeclipse
src
com
mcl
dao
UserDao.java 14KB
servlet
UserServlet.java 13KB
model
Friend.java 638B
User.java 2KB
Message.java 1KB
tools
UserUtil.java 500B
test.java 204B
connDB.properties 125B
ConnDB.java 6KB
.classpath 1KB
共 67 条
- 1
资源评论
- fameimei2014-07-29看起来多不错的,可惜没有上传数据库脚本
- applepiepine2014-05-27不错,导入myeclipse后能运行,如果能有mysql的建表语句就更好了
27146736
- 粉丝: 4
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功