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

📄 dbcon.java

📁 这是我们做的医院管理系统的一个子部分,也就是关于处方发药的!(SWT组件)
💻 JAVA
字号:
package myprojects.DB;
import java.sql.*;

public class DbCon
{
	public  ResultSet rstCF=null;				//定义记录集
	public  ResultSet rst=null;

	private Statement statCF;
	private Statement stat;
	private Connection con;						//定义一个连接
	
	private String strUser=null;				//定义一个String型的变量用于存SQL语句
	
	private String DbDriver="sun.jdbc.odbc.JdbcOdbcDriver";//驱动程序
	private String DbCon="jdbc:odbc:Dbserver";	
	/**
	 * 函数名:getConnection
	 * 编写者:郭军,田文涛
	 * 功  能:初始化与数据库的连接
	 * 输入参数:
	 * 输出参数:
	 * 备  注:
	 */
	public boolean getConnection()
	{
		try
		{
			Class.forName(DbDriver);						//载入驱动程序
			con=DriverManager.getConnection(DbCon);			//建立连接
			con.setAutoCommit(false);
			con.setTransactionIsolation(con.TRANSACTION_SERIALIZABLE);
				//初始化状态集
			statCF=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
			stat=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
			System.out.println("--------------------------   与数据库YPGL连接成功!   --------------------------");
		}
		catch(Exception e)
		{
			System.out.println(e.getMessage());
			e.printStackTrace();
			return false;
		}
		return true;
	}
 	 /**
	* 函数名:getBRCF
	* 编写者:郭军,田文涛
	* 功  能:初始化加载页面相关所需要的信息!!
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public int getBRCF(String CFDH)
	{
		int count=0;						//定义返回值
		String strSQL="";
		strSQL="select * from CFD where CFDH='" + CFDH + "'";
		try
		{
			rstCF=statCF.executeQuery(strSQL);//执行SQL语句
			if(rstCF.next())
			{	
				count++;					//返回值加 1	
			}
			if(count>0)
			{								//打印信息
				System.out.println("病人处方查询成功!");
			}
			else
			{								//打印信息
				System.out.println("病人处方查询失败!");
			}
		}
		catch(SQLException e)				//捕获SQL异常
		{
			System.out.println(e.getMessage());
			e.printStackTrace();
			count= -1;
		}
		return count;
	}
 	 /**
	* 函数名:insertBRCF
	* 编写者:郭军,田文涛
	* 功  能:插入病人的详细处方
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public int insertBRCF(String[] lstCF)
	{
		int insertCF=0;						//定义返回值
		String strCFSQL=null;
		strCFSQL="insert into CFD(";
		strCFSQL=strCFSQL+"CFDH,BRXM,BRXB,BRNL,";
		strCFSQL=strCFSQL+"KDKS,CFYS,CFRQ,FYYF)";
		strCFSQL=strCFSQL+"values(";
		strCFSQL=strCFSQL+"'"+lstCF[0]+"','"+lstCF[1]+"',";
		strCFSQL=strCFSQL+"'"+lstCF[2]+"','"+lstCF[3]+"',";
		strCFSQL=strCFSQL+"'"+lstCF[4]+"','"+lstCF[5]+"',";
		strCFSQL=strCFSQL+"'"+lstCF[6]+"','"+lstCF[7]+"')";
		try
		{
			insertCF=statCF.executeUpdate(strCFSQL);//执行update SQL语句
			con.commit();
			System.out.println("成功执行insertBRCF语句:"+strCFSQL);
		}
		catch(SQLException eInsert)
		{
			System.out.println(eInsert.getMessage());
			eInsert.printStackTrace();
			try
			{
				con.rollback();						//如果更新失败就回滚
			}
			catch(SQLException se1)
			{;}
			return -1;
		}
		return insertCF;
	}
 	 /**
	* 函数名:updateBRCF
	* 编写者:郭军,田文涛
	* 功  能:更新病人处方,如果已发药就插入发药人ID和发药时间等信息
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public int updateBRCF(String strFYR,String strFYSJ,String strHJJE)
	{
		String strUpdate="";						//用于存放SQL语句
		strUpdate="update CFD set FYR='"+ strFYR +"',";
		strUpdate=strUpdate+"'"+strFYSJ+"','"+strHJJE+"'";
		try
		{
			statCF.executeUpdate(strUpdate);		//执行更新病人处方语句
			con.commit();
			return 1;
		}
		catch(SQLException exUpdate)
		{
			System.out.println("更新失败原因: "+exUpdate.getMessage());
			exUpdate.getStackTrace();
			try
			{
				con.rollback();						//如果更新失败就回滚
			}
			catch(SQLException exRetrun)
			{;}
			return 0;
		}
	}	
 	 /**
	* 函数名:getCFMX
	* 编写者:郭军,田文涛
	* 功  能:得到药品详细信息
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public int getCFMX(String strCFMX)
	{
		int i=0;									//设一个记数号!
		String strMX="select YM,YPDJ,JJDW,SL,JX,GG,CD,CJ,BZ from View_CFDQXX where CFDH='"+ strCFMX +"'";
		try
		{
			rstCF=statCF.executeQuery(strMX);		//执行SQL查询语句
			rstCF.last();							//将记录集移到最后
			i=rstCF.getRow();						//得到最后一行的列号作为记录的总条数
			rstCF.first();							//将记录集移到第一条记录
			System.out.println("成功执行getCFMX的SQL语句是:"+strMX);
		}
		catch(SQLException exMX)
		{
			i=-1;									//设定返回值
			System.out.println("处方信息错误是: "+exMX.getMessage());
			exMX.getStackTrace();
		}
		return i;
	}
 	 /**
	* 函数名:disFY(没有发药)
	* 编写者:郭军,田文涛
	* 功  能:到还没有发药的处方号!
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public int disFY()
	{
		int countFY=0;
		String strFY="select * from CFD where FYR IS NULL order by CFDH DESC";
		System.out.println("没有发药单号的SQL语句"+strFY);
		try 
		{
			rstCF=statCF.executeQuery(strFY);		//执行SQL查询语句
			//con.commit();
			if(rstCF.next())
			{
				rstCF.last();						//将记录集移到最后
				countFY=rstCF.getRow();				//得到最后一行的列号作为记录的总条数
				rstCF.first();						//将记录集移到第一条记录
			}
			System.out.println("执行SQL: "+ strFY +"一共返回"+countFY+"项未发药处方单号!");
		}
		catch(SQLException exCF)
		{
			System.out.println(exCF.getMessage());
			exCF.printStackTrace();
			countFY= -1;
		}
		return countFY;								//返回执行结果
	}
	/**
	 * 函数名:saveTable
	 * 编写者:郭军,田文涛
	 * 功  能:保存表格中的数据!
	 * 输入参数:
	 * 输出参数:
	 * 备  注:
	 */   
	public int saveTable(String[] lstSave)
	{
		int intSave=0;								//定义一个返回值
		String strSave="";
		strSave="insert into CFMX(";
		strSave=strSave+"CFDH,MXSX,YPNM,JJDW,SL)";
		strSave=strSave+"values(";
		strSave=strSave+"'"+lstSave[0] +"','"+lstSave[1] +"','"+lstSave[2] +"',";
		strSave=strSave+"'"+ lstSave[3]+"','"+ lstSave[4]+"')";
		System.out.println("saveTable语句:"+strSave);//打印要执行的语句
		try
		{
			intSave=statCF.executeUpdate(strSave);	//执行SQL更新命令
			con.commit();
			System.out.println("成功执行saveTable语句:"+strSave);
		}
		catch(SQLException eSave)
		{
			System.out.println(eSave.getMessage());
			eSave.printStackTrace();
			try
			{
				con.rollback();					//如果更新失败就回滚
			}
			catch(SQLException eSave2)
			{;}
			return -1;							//重置返回值
		}
		return intSave;
	}
 	 /**
	* 函数名:getYPXX
	* 编写者:郭军,田文涛
	* 功  能:在数据库在查询相应的药名及其它信息
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/ 
	public int getYPXX(String YPNM)
	{
		int countYP=0;
		String strSQLYM="";
		strSQLYM="select YM,YPDJ,JJDW,JX,GG,CD,CJ,BZ from YPXX where YPNM='"+YPNM+"'";
		try
		{
			rstCF=stat.executeQuery(strSQLYM);	//执行SQL查询语句
			if(rstCF.next())
			{
				countYP++;						//返回值加 1
				rstCF.first();					//记录集移到第一条
			}
		}
		catch(SQLException exYM)
		{
			System.out.println("执行getYM()时错误是: "+exYM.getMessage());
			exYM.getStackTrace();
			countYP=-1;
		}
		return countYP;
	}
 	 /**
	* 函数名:getDH
	* 编写者:郭军,田文涛
	* 功  能:判定并得到当前医生开的处方个数
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/ 
	public String getDH(String DH)
	{
		String strSQL=null;
		String strDH="none";
		long lmid=0;//设定一个中间处理变量
		strSQL="select CFDH from CFD where CFDH like'"+ DH +"%'";
		strSQL=strSQL+"order by CFDH DESC";
		try
		{
			
			rst=stat.executeQuery(strSQL);
			if(rst.next())
			{
				rst.first();				//记录集移到第一条
				strDH=rst.getString("CFDH");//取出对应的处方单号
			}
		}
		catch(SQLException es)
		{
			System.out.println("错误是:  "+es.getMessage());
			es.getStackTrace();
			strDH="Error";					//置返回值为ERROR
		}
		return strDH;
	}
	/**
	* 函数名:updateBRCF
	* 编写者:郭军,田文涛
	* 功  能:重新更新CFD表,插入发药人
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/
	public int updateBRCF(String strCF,String strFYR)
	{
		int retDH=0;						//定义返回值
		String strTime=getNowDate();
		String strUpdate=null;
		strUpdate="update CFD set FYR=";
		strUpdate=strUpdate+"'"+strFYR+"',";
		strUpdate=strUpdate+"FYSJ='"+strTime+"'";
		strUpdate=strUpdate+"where CFDH='"+strCF+"'";
		try
		{
			retDH=stat.executeUpdate(strUpdate);//执行SQL更新语句
			con.commit();
		}
		catch(SQLException eUp)
		{
			System.out.println("Dbcon中调用updateBRCF()时:  "+eUp.getMessage());
			eUp.printStackTrace();
			try
			{
				con.rollback();					//如果更新失败就回滚
			}
			catch(Exception eUp2)
			{;}
			return -1;							//置返回值为 1
		}
		return retDH;
	}
 	 /**
	* 函数名:getCurentUser
	* 编写者:郭军,田文涛
	* 功  能:得到当前用户信息
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public int getCurentUser()
	{
		int user=0;								//定义返回值,用于确定用户当前登录情况
		strUser="select * from YPUser where DQBJ=1";
		try
		{
			rst=stat.executeQuery(strUser);		//执行SQL查询语句
			System.out.println("成功执行getCurentUser语句:"+strUser);
			if(rst.next())
			{
				user++;							//已经登录的用户数量
			}
			System.out.println("--------------------------  一共有"+user+"个用户在登录系统!--------------------------");
		}
		catch(Exception eUser)
		{
			System.err.println(eUser.getMessage());
			eUser.printStackTrace();
			user =-1;							//返回-1表示查询失败
		}
		return user;
	}
 	 /**
	* 函数名:getUserInfo
	* 编写者:郭军,田文涛
	* 功  能:得到当前用户信息
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
	public String getUserInfo(String userInfo)
	{
		String strUserInfo=null;				//定义返回用户服务信息
		strUser="select * from YPUser where DQBJ=1";
		try
		{
			rst=stat.executeQuery(strUser);
			rst.first();
			strUserInfo=rst.getString(userInfo);//取出用户信息用于返回给调用函数
		}
		catch(SQLException euser)
		{
			System.out.println(euser.getMessage());
			euser.getStackTrace();
			return new String("Error");
		}
		return strUserInfo;						//返回用户信息
	}
 	 /**
	* 函数名:getNowDate
	* 编写者:郭军,田文涛
	* 功  能:得到当前日期
	* 输入参数:
	* 输出参数:
	* 备  注:
	*/   
    public String getNowDate()
    {
    	String getNowDate = null;
        try 
        {
            String strSQL = "";					//定义SQL字符串
            strSQL = "SELECT SUBSTRING(CONVERT(VARCHAR(16),GETDATE(),120),1,16) AS SYSDATE";
            rst = stat.executeQuery(strSQL);	//执行SQL结果保存在动态集里
            while(rst.next())
            {
                getNowDate = rst.getString("SYSDATE");
            }
        } 
        catch (Exception se)
        {
          	System.out.println(se.getMessage());
        	se.printStackTrace();
        }
        return getNowDate;						//返回当前时间
     }
	/**
	 * 函数名:closeDB
	 * 编写者:郭军,田文涛
	 * 功  能:关闭数据库的连接!
	 * 输入参数:
	 * 输出参数:
	 * 备  注:
	 */  
	public void closeDB()
	{
		try
		{
			con.commit();
			if(!con.isClosed())				//如果数据库没有关闭
			{
				con.close();				//关闭数据库的连接!
			}
 	    }
		catch(Exception e2)
		{
			System.out.println(e2.getMessage());
			e2.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

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