EXTJS小系统

   接到任务,要写一个项目协作系统,任务不急,嘿嘿,用extjs试试看
这个系统是部门间用来扯皮用的,md又被当枪头了
自学了1个礼拜,就开始操刀了,代码很简单,模块化,希望对学习extjs的朋友有帮助,也帮俺的blog增加点人气(这样说话,不会扣分吧 ) 嘿嘿 。

献上源码,供大家参考

 

json格式化很方便,把取出来的数据,传给json格式化的类,就可以了。

 

这个类是处理sql语句,返回数据,和格式化json

 

Java代码 复制代码
  1. package com.soa.userbean;   
  2.   
  3. import java.sql.Connection;   
  4. import java.sql.ResultSet;   
  5. import java.sql.ResultSetMetaData;   
  6. import java.sql.SQLException;   
  7. import java.sql.Statement;   
  8. import java.util.ArrayList;   
  9. import java.util.HashMap;   
  10. import java.util.Iterator;   
  11. import java.util.Map;   
  12. import java.util.Set;   
  13.   
  14. import javax.naming.Context;   
  15. import javax.naming.InitialContext;   
  16. import javax.sql.DataSource;   
  17.   
  18. import org.apache.log4j.Logger;   
  19.   
  20. /**  
  21.  * @author Julycn  
  22.  *   
  23.  */  
  24. public class InitDB {   
  25.      Connection conn=null;   
  26.      Statement stmt=null;   
  27.      ResultSet rs=null;   
  28.      ResultSetMetaData rsmd=null;   
  29.      static Logger logger=Logger.getLogger(InitDB.class);   
  30.        
  31.     //初始化数据库连接   
  32.     public static Connection InitDB(String jndiName) {   
  33.         Connection conn=null;   
  34.         try{   
  35.         Context initContext=(Context) new InitialContext().lookup("java:/comp/env");   
  36.         DataSource ds=(DataSource) initContext.lookup(jndiName);   
  37.         conn=ds.getConnection();   
  38.         }catch(Exception e){   
  39.             logger.error("链接数据库失败:"+e);   
  40.         }   
  41.         return conn;   
  42.     }   
  43.        
  44.   
  45.     //直接执行sql,用于更新,删除,添加   
  46.     public boolean execute(String sql,String jndiName){   
  47.            
  48.         conn=InitDB.InitDB(jndiName);   
  49.         try{   
  50.             if(conn!=null){   
  51.                 stmt=conn.createStatement();   
  52.                 stmt.execute(sql);   
  53.                    
  54.                 return true;   
  55.             }   
  56.         }catch(Exception e){   
  57.             logger.error("操作数据库失败:"+e);   
  58.         }finally{   
  59.             try {   
  60.                 stmt.close();   
  61.                 conn.close();   
  62.             } catch (SQLException e) {   
  63.                 logger.error("关闭数据库失败:"+e);   
  64.             }   
  65.         }   
  66.         return false;   
  67.     }   
  68.        
  69.        
  70.     //获取记录数   
  71.     public int findCount(String sql,String jndiName){   
  72.         conn=InitDB.InitDB(jndiName);   
  73.         int rowCount=0;   
  74.         try {   
  75.             stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);   
  76.             rs=stmt.executeQuery(sql);   
  77.             rs.last();   
  78.             rowCount=rs.getRow();   
  79.         } catch (SQLException e) {   
  80.             e.printStackTrace();   
  81.         }finally{   
  82.             try {   
  83.                 rs.close();   
  84.                 stmt.close();   
  85.                 conn.close();   
  86.             } catch (SQLException e) {   
  87.                 e.printStackTrace();   
  88.             }   
  89.         }   
  90.         return rowCount;   
  91.     }   
  92.        
  93.     //通过sql语句获取记录数,返回List   
  94.     public ArrayList<Object> findBySql(String sql,String jndiName){   
  95.            
  96.         ArrayList<Object> list=new ArrayList<Object>();   
  97.            
  98.         try{   
  99.             conn=InitDB.InitDB(jndiName);   
  100.             stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);   
  101.             rs=stmt.executeQuery(sql);   
  102.             rsmd=rs.getMetaData();   
  103.                
  104.             String columnName="";   
  105.             Object columnValue=null;   
  106.   
  107.             while(rs.next()){   
  108.                 String array="";   
  109.                 array+="{";   
  110.                 for(int j=1;j<=rsmd.getColumnCount();j++){   
  111.                     columnName=rsmd.getColumnName(j);   
  112.                     columnValue=rs.getObject(columnName);   
  113.                     array+="\""+columnName+"\"";   
  114.                     array+=":";   
  115.                     array+="\""+columnValue+"\"";   
  116.                     if(j<rsmd.getColumnCount()){   
  117.                         array+=",";   
  118.                     }else{   
  119.                         array+="";   
  120.                     }   
  121.                 }   
  122.                 array+="}";   
  123.                    
  124.                 list.add(array);   
  125.             }   
  126.                
  127.         }catch(Exception e){   
  128.             e.printStackTrace();   
  129.         }finally{   
  130.             try {   
  131.                 rs.close();   
  132.                 stmt.close();   
  133.                 conn.close();   
  134.             } catch (SQLException e) {   
  135.                 e.printStackTrace();   
  136.             }   
  137.         }   
  138.         return list;   
  139.     }   
  140.        
  141.     //把数据集处理成Ext可以接受的格式   
  142.     public String toExtJson(String table,String sqlContent,int start,int limit,Object cons,String jndiName){   
  143.         String sql=generateSql(table,sqlContent, cons);   
  144.         System.out.println(sql);   
  145.         int totalNum=findCount(sql, jndiName);   
  146.         ArrayList<Object> list=findBySql(sql+" LIMIT "+limit+" OFFSET "+start, jndiName);   
  147.         int resultNum=list.size();   
  148.         String str="";   
  149.         str+="";   
  150.         str+="{";   
  151.         str+="'totalCount':'"+totalNum+"',";   
  152.         str+="'rows':";   
  153.         str+="[";   
  154.         for(int i=0;i<resultNum;i++){   
  155.             str+="";   
  156.             str+=list.get(i);   
  157.             if(i<resultNum-1){   
  158.                 str+=",";                  
  159.             }else{   
  160.                 str+="";   
  161.             }   
  162.         }   
  163.         str+="]";   
  164.         str+="}";   
  165.         return str;   
  166.     }   
  167.        
  168.        
  169.     // 通过条件生存sql语句   
  170.     @SuppressWarnings("unchecked")   
  171.     public String generateSql(String table, String sqlContent,Object cons) {   
  172.         String sql = "";   
  173.         if(sqlContent==null){   
  174.             sqlContent="*";   
  175.         }   
  176.         sql = "select "+sqlContent+" from " + table;   
  177.         HashMap hashMap=null;   
  178.         if (cons != null) {   
  179.             if(cons instanceof HashMap){   
  180.                 hashMap=(HashMap) cons;   
  181.                 Set set=hashMap.entrySet();   
  182.                 Iterator it=set.iterator();   
  183.                 int k=0;   
  184.                 while(it.hasNext()){   
  185.                     Map.Entry me=(Map.Entry) it.next();   
  186.                     if(k==0){   
  187.                         sql+=" where ";   
  188.                         sql+=me.getKey();   
  189.                         sql+="=";   
  190.                         sql+=me.getValue();   
  191.                     }else{   
  192.                         sql+=" and ";   
  193.                         sql+=me.getKey();   
  194.                         sql+="=";   
  195.                         sql+=me.getValue();   
  196.                     }   
  197.                     k++;                       
  198.                 }   
  199.             }else{   
  200.                 sql+=" where "+cons;   
  201.             }   
  202.         }   
  203.   
  204.         return sql;   
  205.   
  206.     }   
  207. }  
package com.soa.userbean;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

import org.apache.log4j.Logger;

/**
 * @author Julycn
 * 
 */
public class InitDB {
	 Connection conn=null;
	 Statement stmt=null;
	 ResultSet rs=null;
	 ResultSetMetaData rsmd=null;
	 static Logger logger=Logger.getLogger(InitDB.class);
	
	//初始化数据库连接
	public static Connection InitDB(String jndiName) {
		Connection conn=null;
		try{
		Context initContext=(Context) new InitialContext().lookup("java:/comp/env");
		DataSource ds=(DataSource) initContext.lookup(jndiName);
		conn=ds.getConnection();
		}catch(Exception e){
			logger.error("链接数据库失败:"+e);
		}
		return conn;
	}
	

	//直接执行sql,用于更新,删除,添加
	public boolean execute(String sql,String jndiName){
		
		conn=InitDB.InitDB(jndiName);
		try{
			if(conn!=null){
				stmt=conn.createStatement();
				stmt.execute(sql);
				
				return true;
			}
		}catch(Exception e){
			logger.error("操作数据库失败:"+e);
		}finally{
			try {
				stmt.close();
				conn.close();
			} catch (SQLException e) {
				logger.error("关闭数据库失败:"+e);
			}
		}
		return false;
	}
	
	
	//获取记录数
	public int findCount(String sql,String jndiName){
		conn=InitDB.InitDB(jndiName);
		int rowCount=0;
		try {
			stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
			rs=stmt.executeQuery(sql);
			rs.last();
			rowCount=rs.getRow();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try {
				rs.close();
				stmt.close();
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return rowCount;
	}
	
	//通过sql语句获取记录数,返回List
	public ArrayList<Object> findBySql(String sql,String jndiName){
		
		ArrayList<Object> list=new ArrayList<Object>();
		
		try{
			conn=InitDB.InitDB(jndiName);
			stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
			rs=stmt.executeQuery(sql);
			rsmd=rs.getMetaData();
			
			String columnName="";
			Object columnValue=null;

			while(rs.next()){
				String array="";
				array+="{";
				for(int j=1;j<=rsmd.getColumnCount();j++){
					columnName=rsmd.getColumnName(j);
					columnValue=rs.getObject(columnName);
					array+="\""+columnName+"\"";
					array+=":";
					array+="\""+columnValue+"\"";
					if(j<rsmd.getColumnCount()){
						array+=",";
					}else{
						array+="";
					}
				}
				array+="}";
				
				list.add(array);
			}
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				rs.close();
				stmt.close();
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return list;
	}
	
	//把数据集处理成Ext可以接受的格式
	public String toExtJson(String table,String sqlContent,int start,int limit,Object cons,String jndiName){
		String sql=generateSql(table,sqlContent, cons);
		System.out.println(sql);
		int totalNum=findCount(sql, jndiName);
		ArrayList<Object> list=findBySql(sql+" LIMIT "+limit+" OFFSET "+start, jndiName);
		int resultNum=list.size();
		String str="";
		str+="";
		str+="{";
		str+="'totalCount':'"+totalNum+"',";
		str+="'rows':";
		str+="[";
		for(int i=0;i<resultNum;i++){
			str+="";
			str+=list.get(i);
			if(i<resultNum-1){
				str+=",";				
			}else{
				str+="";
			}
		}
		str+="]";
		str+="}";
		return str;
	}
	
	
	// 通过条件生存sql语句
	@SuppressWarnings("unchecked")
	public String generateSql(String table, String sqlContent,Object cons) {
		String sql = "";
		if(sqlContent==null){
			sqlContent="*";
		}
		sql = "select "+sqlContent+" from " + table;
		HashMap hashMap=null;
		if (cons != null) {
			if(cons instanceof HashMap){
				hashMap=(HashMap) cons;
				Set set=hashMap.entrySet();
				Iterator it=set.iterator();
				int k=0;
				while(it.hasNext()){
					Map.Entry me=(Map.Entry) it.next();
					if(k==0){
						sql+=" where ";
						sql+=me.getKey();
						sql+="=";
						sql+=me.getValue();
					}else{
						sql+=" and ";
						sql+=me.getKey();
						sql+="=";
						sql+=me.getValue();
					}
					k++;					
				}
			}else{
				sql+=" where "+cons;
			}
		}

		return sql;

	}
}

 

  • D0b9c019-13a1-38df-964b-4f93a32b7215-thumb
  • 大小: 55.7 KB
  • 084aae9f-49b4-3db1-ad2c-78475bc407e8-thumb
  • 大小: 31.2 KB
  • 3d472955-6f25-35a6-b603-e5e7c1d62138-thumb
  • 大小: 40.8 KB
  • 3d13e73d-379f-3296-8b06-24552abd3a6a-thumb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值