⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 implementuserdao.java

📁 模仿腾讯QQ的
💻 JAVA
字号:
package com.softfz.jn0708.dao.oracle;

import java.io.Serializable;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.ImageIcon;
import com.softfz.jn0708.dao.DBConnection;
import com.softfz.jn0708.dao.intef.IUserDAO;
import com.softfz.jn0708.images.Images;
import com.softfz.jn0708.srcpackage.TUser;

/**-----------------------------------------------------------------------------
 * 
 * 
 *                   实现类,实现了IUserDAO接口的一下方法:
 *                 
 *                ======查询 、添加 、删除、 修改 等方法======
 *     
 *     
 *-----------------------------------------------------------------------------     
 */

public class ImplementUserDAO implements IUserDAO,Serializable {

	private static Connection con = null;//连接对象	
	private static Statement stmt = null;//statement对象 =发送SQL语句
	private static PreparedStatement ps = null;
	
	//TUser user = new TUser();

	/**=========================================================================
	 *                     Connection数据库连接
	 *========================================================================= 
	 */	
	public ImplementUserDAO(){		
		
		if (con == null){	
		
			try {
					con = DBConnection.Connect();
					stmt = con.createStatement();						
				
			} catch (SQLException e) {
	
				e.printStackTrace();
				System.out.println("返回statement对象时发生错误");
				
			}
		}		
	}	
	
	/**=========================================================================
	 *                          实现添加接口
	 *=========================================================================
	 */
	public boolean add(TUser user) {	
		
		try {
			ps = con.prepareStatement("insert into tuser(UNO,UPASSWORD,UNAME,UTERM,USEX,UICONID,UAGE,DNO,UPHONE,UADDRESS,ULASTLOGINTIME,UREGDATE,ULOGINCOUNT,UISONLINE)values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
			ps.setString(1,user.getUNO());
			ps.setString(2,user.getUPASSWORD());
			ps.setString(3,user.getUNAME());
			ps.setString(4,user.getUTERM());
			ps.setString(5,user.getUSEX());
			ps.setString(6,user.getUICONID());
			ps.setString(7,user.getUAGE());
			ps.setString(8,user.getDNO());
			ps.setString(9,user.getUPHONE());
			ps.setString(10,user.getUADDRESS());
			ps.setString(11,user.getULASTLOGINTIME());
			ps.setString(12,user.getUREGDATE());
			ps.setString(13,user.getULOGINCOUNT());
			ps.setString(14,user.getUISONLINE());			
			ps.executeUpdate();
			return true;
		}catch (SQLException e){
			e.printStackTrace();
			return false;
		}
	}
	
	
	/**=========================================================================
	 *                          实现删除接口
	 *=========================================================================  
	 */
	public boolean del(String uno) {	

			try {
				ps = con.prepareStatement("delete from tuser where uno =?");
				ps.setString(1,uno);
				ps.executeUpdate();
				return true;
				
			} catch (SQLException e) {

				e.printStackTrace();
				return false;
			}
	}
	
	
	
	/**=========================================================================
	 *                           实现修改接口
	 *========================================================================= 
	 */
	public boolean modify(TUser user) {	
		
		try {
			ps = con.prepareStatement("update tuser set UPASSWORD=?,UNAME=?,UTERM=?,USEX=?,UICONID=?,UAGE=?,DNO=?,UPHONE=?,UADDRESS=?,ULASTLOGINTIME=?,UREGDATE=?,ULOGINCOUNT=?,UISONLINE=? where UNO=?");
			ps.setString(1,user.getUPASSWORD());
			ps.setString(2,user.getUNAME());
			ps.setString(3,user.getUTERM());
			ps.setString(4,user.getUSEX());
			ps.setString(5,user.getUICONID());
			ps.setString(6,user.getUAGE());
			ps.setString(7,user.getDNO());
			ps.setString(8,user.getUPHONE());
			ps.setString(9,user.getUADDRESS());
			ps.setString(10,user.getULASTLOGINTIME());
			ps.setString(11,user.getUREGDATE());
			ps.setString(12,user.getULOGINCOUNT());
			ps.setString(13,user.getUISONLINE());	
			ps.setString(14,user.getUNO());
			ps.executeUpdate();
			return true;
		}catch (SQLException e){
			e.printStackTrace();
			return false;
			
		}
	}
	
	
	/**
	 * 获取在线列表列名
	 */
	public List getOnlineColumnNames() {
		
		List list = new ArrayList();
		list.add("编号");
		list.add("姓名");
		list.add("昵称");
		list.add("性别");
		list.add("头像");
		list.add("年龄");		
		list.add("部门");
		list.add("电话");
		list.add("地址");
		list.add("注册日期");	
		return list;
	}
	/**
	 * 获取在线列表行数据
	 */
	public List getOnlineRowData() { 
		
		List list =  new ArrayList();
		
		list = select("","","","1");		
		
		
		URL url;
		ImageIcon icon;
		for(int i=0; i<list.size();i++){
			String iconid = (String)((List)list.get(i)).get(4);
			url = Images.class.getResource("head/"+iconid+".gif");
			icon = new ImageIcon(url);
			((List)list.get(i)).set(4,icon);		
		}
		return list;		
	}


	/**
	 * 获取所有列名
	 */
	public List getColumnNames() {
		List list = new ArrayList();
		list.add("编号");
		list.add("姓名");
		list.add("昵称");		
		list.add("性别");
		list.add("头像");
//		list.add("密码");
		list.add("年龄");		
		list.add("部门");
		list.add("电话");
		list.add("地址");
		list.add("注册日期");
		list.add("最后一次上线日期");
		list.add("登录次数");		
		return list;
	}
	/**
	 * 获取所有行数据
	 */
	public List getRowData() {
		
		List list =  new ArrayList();
		
		list = select("","","","");
		
		URL url;
		ImageIcon icon;
		for(int i=0; i<list.size();i++){
			String iconid = (String)((List)list.get(i)).get(4);
			url = Images.class.getResource("head/"+iconid+".gif");
			icon = new ImageIcon(url);
			((List)list.get(i)).set(4,icon);	
		}

		return list;
	}




	/**
	 * 获取列的最大值
	 */
	public String getMaxUno() {
		
		Connection conn = DBConnection.Connect();
		PreparedStatement ps = null;
		ResultSet rs = null;
		String s = null;
		try {
			ps = conn.prepareStatement("select trim(to_char(to_number(nvl(max(UNO),0))+1,'0000'))"
							+ " as MaxUserId from TUSER");

			rs = ps.executeQuery();
			while (rs.next()) {
				s = rs.getString(1);
			}
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} finally {
			DBConnection.Close(rs);
			DBConnection.Close(ps);
			DBConnection.Close(conn);
		}

		return s;
	}




	/**
	 * 修改用户在线状态
	 */
	public void modifyLoginUser(String UNO, String Online) {
		
		PreparedStatement ps = null;
		String sql=null;	
		try {
			if (Online.equals("1")){
				sql="UPDATE TUSER SET UISONLINE=1,ULOGINCOUNT=ULOGINCOUNT+1," +
					"ULASTLOGINTIME=TO_DATE(?,'yyyy-mm-dd HH24:mi:ss') where UNO="+UNO;
			}else{
				sql="UPDATE TUSER SET UISONLINE=0 ";
				if (!UNO.equals("")){
					sql=sql+"WHERE UNO="+UNO;
				}
			}
			ps=con.prepareStatement(sql);
			
			if (Online.equals("1")){
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				ps.setString(1, sdf.format(new Date()));	
			}
			
			ps.executeUpdate();
		
			
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} finally {
//			DBConnection.Close(ps);
//			DBConnection.Close(con);
		}		
		
	}
	
	/**
	 * 用户查询
	 */

	public List select(String UNO, String UNAME, String DNO,String UISONLINE) {
		
		List list = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		
		String	sql="select TU.UNO,TU.UNAME,TU.UTERM,TU.USEX,TU.UICONID,TU.UAGE,TDP.DNAME,TU.UPHONE,TU.UADDRESS,TU.UREGDATE,TU.ULASTLOGINTIME,TU.ULOGINCOUNT,TU.UISONLINE,TDP.DNO,TU.UICONID AS ICON_ID,TU.UPASSWORD from tuser TU INNER JOIN TDEPARTMENT TDP ON TU.DNO = TDP.DNO WHERE 1 = 1";
		
		if (!UNO.equals("")){
			sql=sql+" and TU.UNO = "+"'"+UNO+"'";
		}
		
		if (!UNAME.equals("")){
			sql=sql+" and TU.UNAME = "+"'"+UNAME+"'";
		}
		
		if (!DNO.equals("")){
			sql=sql+" and TDP.DNO = "+"'"+DNO+"'";
		}
		if (!UISONLINE.equals("")){
			sql=sql+" and TU.UISONLINE = "+"'"+UISONLINE+"'";
		}		

			sql = sql + " order by TU.UNO ";
				
		try {
			ps = con.prepareStatement(sql);
			rs = ps.executeQuery();
			int count = rs.getMetaData().getColumnCount();
			
			list = new ArrayList();
			while(rs.next()){
				List row = new ArrayList();
				for(int i = 1; i <= count; i++){
					row.add(rs.getString(i));						
				}
				list.add(row);				
			}
			
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		
		}			
		return list;

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -