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

📄 setsql.java

📁 酒店管理系统·可用于一般旅社的营业操作。方便你的酒店管理
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package com.redingsoft.sql;import java.sql.*;import javax.swing.JComboBox;import javax.swing.JList;import javax.swing.JOptionPane;import javax.swing.table.DefaultTableModel;/** * * @author Administrator */public class SetSQL {    //声明理解数据库的对象  static  Connection conn=null;  static   Statement ste=null;      static{   try{      //注册驱动										//JDBCODBC连接方式	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");     }catch(ClassNotFoundException ce){       JOptionPane.showMessageDialog(null, "没有找到数据库驱动");       System.exit(0);     }     //注册驱动     try{   //获得一个连   conn = DriverManager.getConnection ("jdbc:odbc:source" );   //设置自动提交为false   conn.setAutoCommit (false);   //建立高级载体   ste = conn.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);     }catch(SQLException e){              JOptionPane.showMessageDialog(null, "数据源设置错误或者服务器没有启动!");              System.exit(0);     }    }    //构造函数    /**=======================================================================**	 *		[## private sunsql() {} ]:		构造函数	 *			参数   :无	 *			返回值 :无	 *			修饰符 :private	 *			功能   :防止实例化sunsql对象	 **=======================================================================**	 */     public SetSQL(){}     		/**=======================================================================**	 *		[## public static int executeUpdate(String sql) {} ] :		 *			参数   :String 对象, 表示需要执行的sql语句	 *			返回值 :int, 表示此sql语句对数据库影响了几行	 *			修饰符 :public static 可以不实例化对象而直接调用方法	 *			功能   :执行对数据库更改的sql命令,并返回更改所影响的行数	 **=======================================================================**	 */	public static int executeUpdate(String sql) {	//	System.out.println ("Update SQL : " + sql);		int i = 0 ;		try {			i = ste.executeUpdate(sql) ;			conn.commit();		}catch(Exception e) {			e.printStackTrace() ;		}//End try		return i ;	}		/**=======================================================================**	 *		[## public static int runTransaction (String updateCode[],int count) {} ] :		 *			参数   :String[]是字符串数组, 表示需要执行的所有sql语句 count 是执行语句的数量	 *			返回值 :int, 表示sql语句执行的情况, (i==数组长度)为更新成功	 *			修饰符 :public static 可以不实例化对象而直接调用方法	 *			功能   :利用事务的模式以updateCode中的sql语句对数据库进行更新	 **=======================================================================**	 */	public static int runTransaction (String updateCode[],int count) {		int ok = 0, i = 0;		int row = count;		//更新语句的数量                System.out.println(""+ updateCode[0]);		try {			for (i = 0; i < row; i++) {				ok=executeUpdate(updateCode[i]);		//执行SQL语句				if(ok == 0) {				//如果不成功,则跳出循环				//	System.out.println ("sunsql.runTransaction(): updateCode[" + i + "] 失败" + ok);					break;				}				System.out.println ("sunsql.runTransaction(): updateCode[" + i + "] 成功 " + ok);			}			//根据变量 ok 判断上面循环是否正常运行完毕			if(ok == 0) {				conn.rollback ();		//(ok == 0)表示更新过程中出错,回滚数据			//	System.out.println ("sunsql.runTransaction(): Update data false, rollback");			}			else {				conn.commit ();			//(ok != 0)基本上是所有SQL语句运行成功, 则提交给数据库			//	System.out.println ("sunsql.runTransaction(): Update finish");			}		}	    catch (Exception ex) {	    //	System.out.println ("sunsql.runTransaction(): Update false ...");             //   System.out.println(row +"");	    }		return i;	}		/**=======================================================================**	 *		[## public static ResultSet executeQuery(String sql) {} ] :	 *			参数   :String 对象, 表示需要执行的sql语句	 *			返回值 :ResultSet对象, 表示此查询语句返回的结果集	 *			修饰符 :public static 可以不实例化对象而直接调用方法	 *			功能   :执行对数据库的select查询功能,并返回查询所得到的结果	 **=======================================================================**	 */	public static ResultSet executeQuery(String sql) {	  //	System.out.println ("Query SQL : " + sql);		ResultSet rs = null ;		try {			rs = ste.executeQuery(sql) ;		}catch(Exception e) {			e.printStackTrace() ;                    //    JOptionPane.showMessageDialog(null, "数据源设置错误或者服务器没有启动!");		}//End try		return rs ;	}		/**=====================hj==================================================**	 *		[## public static int recCount(ResultSet rs)) {} ] :	 *			参数   :ResultSet 对象, 表示目标结果集	 *			返回值 :int, 表示结果集中的记录个数	 *			修饰符 :public static 可以不实例化对象而直接调用方法	 *			功能   :获得指定结果集的记录数量	 **=======================================================================**	 */	public static int recCount(ResultSet rrs) {		int i = 0;		try {			if(rrs.getRow() != 0)				rrs.beforeFirst();			//while用于计算rs的记录条数			while(rrs.next())				i++;			rrs.beforeFirst();		    }catch(Exception ex) {	    	ex.printStackTrace();	    }//End try		return i;	}		/**=======================================================================**	 *		[## public static long getPrimaryKey() {} ] :	 *			参数   :无	 *			返回值 :long, 表示从服务器获得的主键	 *			修饰符 :public static 可以不实例化对象而直接调用方法	 *			功能   :通过服务器当前的时间获得一个主键	 **=======================================================================**	 */	public static long getPrimaryKey() {		long pk = 0;				try {			//获得服务器时间		ResultSet	rs = executeQuery("select getdate()");			rs.next();			pk = rs.getTimestamp(1).getTime();	    }	    catch (Exception ex) {	    	System.out.println ("sunsql.getPrimaryKey (): false");	    }	    return pk;	}		/**=======================================================================**	 *		[## public static void initJComboBox (JComboBox cb, String sqlCode) {} ] :	 *			参数   :JComboBox表示要加数据的下拉框, String对象表示一条SQL语句	 *			返回值 :JComboBox, 表示返回一个加好Item的JComboBox对象	 *			修饰符 :public static 可以不实例化对象而直接调用方法	 *			功能   :按SQL语句从数据库选出Items加入JComboBox	 **=======================================================================**	 */	public static void initJComboBox (JComboBox cb, String sqlCode) {		cb.removeAllItems();		try {		ResultSet	 rs = executeQuery (sqlCode);			int row = recCount (rs);			rs.beforeFirst ();			//从结果集中取出Item加入JComboBox中			for (int i = 0; i < row; i++) {				rs.next();				cb.addItem (rs.getString (1));		    }	    }	    catch (Exception ex) {	    	System.out.println ("sunsql.initJComboBox (): false");	    }                	}		/**=======================================================================**	 *		[## public static void initJList (JList jt, String sqlCode) {} ] :	 *			参数   :JList表示要加数据的列表框, String对象表示一条SQL语句	 *			返回值 :无	 *			修饰符 :public static 可以不实例化对象而直接调用方法	 *			功能   :按SQL语句从数据库选出数据加入JList	 **=======================================================================**	 */	public static void initJList (JList jt, String sqlCode) {		try {			ResultSet rs = executeQuery (sqlCode);			int row = recCount (rs);			String list[] = new String[row];			//从结果集中取出数据存入数组中			for (int i = 0; i < row; i++) {				rs.next();				list[i] = rs.getString(1);		    }//Endfor		    jt.setListData(list);	//初始化List	    }	    catch (Exception ex) {	    	System.out.println ("sunsql.initJList(): false");	    }//Endtry	}		/**=======================================================================**	 *		[## public static void initDTM (DefaultTableModel fdtm, String sqlCode) {} ] :	 *			参数   :DefaultTableModel对象表示要添充数据的表模式	 *					 String对象表示一条SQL语句	 *			返回值 :无	 *			修饰符 :public static 可以不实例化对象而直接调用方法	 *			功能   :按SQL语句从数据库中获得数据,添加到fdtm中(也可以说JTable中)	 **=======================================================================**	 */	public static void initDTM (DefaultTableModel fdtm, String sqlCode) {		try {			ResultSet rs = executeQuery( sqlCode );	//获得结果集			int row = recCount( rs );				//获得结果集中有几行数据			ResultSetMetaData rsm =rs.getMetaData();	//获得列集			int col = rsm.getColumnCount();		//获得列的个数			String colName[] = new String[col];			//取结果集中的表头名称, 放在colName数组中			for (int i = 0; i < col; i++) {				colName[i] = rsm.getColumnName( i + 1 );			}//End for			rs.beforeFirst();			String data[][] = new String[row][col];			//取结果集中的数据, 放在data数组中			for (int i = 0; i < row; i++) {				rs.next();				for (int j = 0; j < col; j++) {					data[i][j] = rs.getString (j + 1);					//System.out.println (data[i][j]);			    }			}//End for			fdtm.setDataVector (data, colName);	    }	    catch (SQLException ex) {	    	System.out.println ("sunsql.initDTM (): false");                JOptionPane.showMessageDialog(null, "数据源设置错误或者服务器没有启动!");	    }//End try	}}

⌨️ 快捷键说明

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