📄 sql.java
字号:
import java.sql.*;
import java.io.*;
public class SQL
{
private String strDBName; //数据库名字
private String strServerName; //连接数据库的服务器名
private String strUserName; //访问数据库用户
private String strPassword; //连接数据库密码
private int dbType=0; //数据库类型
private Statement stmt; //SQL命令语句
private ResultSet rs; //管式数据集
private CallableStatement cst;//储存过程接口
private String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String url;
public SQL(String server,String db,String user,String pwd,int type)
{
strDBName=db;//数据库
strServerName = server;//服务器
strUserName = user;//用户名
strPassword = pwd;//用户密码
dbType = type;//连接类型
}
/*
创建连接对象
*/
public Connection connection()
{
switch(dbType)
{
case 0://0表示SQL Server2000数据库
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
url="jdbc:microsoft:sqlserver://"+strServerName+":1433;DataBaseName="+strDBName+";User="+strUserName+";Password="+strPassword;
break;
case 1://表示Access数据库
driver="sun.jdbc.odbc.JdbcOdbcDriver";
url="jdbc:odbc:"+strServerName;
break;
default:
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
url="jdbc:microsoft:sqlserver://"+strServerName+":1433;DataBaseName="+strDBName+";User="+strUserName+";Password="+strPassword;
break;
}
try
{
Class.forName(driver);//建立桥接器
Connection con=DriverManager.getConnection(url,strUserName,strPassword);//url是数据库的驱动(有sql和access之分)
return con;
}catch(ClassNotFoundException cnf)
{
System.out.println("driver not find:"+cnf);
return null;
}
catch(SQLException sqle)
{
System.out.println("can't connection db:"+sqle);
return null;
}
catch(Exception e)
{
System.out.println("Failed to load JDBC/ODBC driver.");
return null;
}
}
/*
执行有影响行的数据库操作,主要是添加,修改,删除,
如果成功返回大于0的整数,否则返回-1
*/
public int sqlCommand(String cmd)
{ Connection conn=connection(); //访问数据库的连接对象
if (conn!=null)
{
try
{
stmt=conn.createStatement();//创建一个sql命令
return stmt.executeUpdate(cmd);
}
catch (Exception ex)
{ex.printStackTrace();
return -1;
}
finally
{
try{
stmt.close();
conn.close();
}catch (java.sql.SQLException ex1)
{
ex1.printStackTrace();
}
}
}
else //数据库连接失败
return -1;
}
public int sp_sqlCommand(CallableStatement cs) //带存储过程的命令
{ //DatabaseMetaData dm=null;
try {
// if (dm.supportsStoredProcedures() == false) return -1; //判断是否支持存储过程
return cs.executeUpdate();
}
catch (SQLException ex) {
System.out.println(ex.toString());
return -1;
}
catch(Exception ex1)
{return 0;}
finally
{
//cs.close();
}
}
/*
批量执行有影响行的数据库操作,主要是添加,修改,删除,
如果成功返回1,否则返回-1
*/
public int sqlCommand(String cmd[])
{ Connection conn=connection(); //访问数据库的连接对象
if (conn==null)
return 0;
try {
conn.setAutoCommit(false); //禁止自动提交,设置会滚点
stmt = conn.createStatement();
int i = 0;
for (i = 0; i < cmd.length; i++) {
stmt.execute(cmd[i]);
}
conn.commit();
return 1;
}
catch (Exception ex) {
ex.printStackTrace();
try {
conn.rollback();
return -1;
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}finally {
try {
stmt.close();
conn.close();
}
catch (java.sql.SQLException ex1) {
ex1.printStackTrace();
}
}
}
/*
根据指定命令获取数据库表中的数据,
成功值返回在结果集中,否则返回在空对象
*/
public ResultSet getData(String cmd)
{ Connection con=connection();
if (con==null)
return null;
Statement sts=null;
try {
sts = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = sts.executeQuery(cmd);
return rs;
}catch(Exception ex)
{
return null;
}finally {
try {
//sts.close();
//con.close();
}
catch (Exception ex1) {
ex1.printStackTrace();
}
}
}
public byte[] readFileToStream(String strPath) //读入指定文件,通过tmpByte转换为字节数组
{
try
{
File file=new File(strPath);
FileInputStream st=new FileInputStream(file);
byte[] buffer=new byte[st.available()];
st.read(buffer);
st.close();
return buffer;
}
catch(Exception ex)
{return null;}
}
public int restoreFile(String strCmd,String fileName,String fileType,String filePath,String fileField)
//恢复数据库中的文件,期中FilePath为恢复制定路径,FileField表示存储文件的字段名
{
try
{
ResultSet rs;
if (fileType.length()<=0) return 0; //文件扩展名不正确,无法还原
rs=getData(strCmd);
byte[] b;
rs.next();
b=rs.getBytes(fileField);
if(b.length>0)
{
File file=new File(filePath+fileName+"."+fileType);
FileOutputStream out=new FileOutputStream(file);
out.write(b);
out.close();
return 1;
}
else
{
return 0;
}
}
catch(Exception ex)
{System.out.println(ex.toString());
return -1;}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -