📄 dbcon.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 + -