`
chenxueyong
  • 浏览: 342119 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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
  • sql.rar (1.2 KB)
  • 下载次数: 211
  • SOA.rar (4.3 MB)
  • 下载次数: 1090
分享到:
评论
3 楼 xiaogu2008 2010-07-14  
数据库是什么
能用mysql吗
2 楼 littleJava 2010-05-07  
对于初学者很有帮助!
1 楼 sywan3596 2009-03-18  
谢谢!

相关推荐

    extjs信息系统extjs信息系统

    EXTJS信息系统显然是利用EXTJS框架构建的一个信息管理系统。 在描述中提到了“登陆名字23 密码a”,这可能是指系统有一个预设的用户名和密码,供测试或演示使用。在实际部署中,这样的硬编码凭证是不安全的,应当...

    ExtJs教学管理系统

    "ExtJs教学管理系统"是一个基于ExtJs框架和.Net后端技术构建的应用程序,旨在提供一套教育机构或学校使用的教学管理解决方案。此系统可能包括学生管理、课程管理、成绩管理、教师管理等多个模块,以帮助教育工作者...

    Extjs酒店管理系统

    《Extjs酒店管理系统详解》 在信息技术日新月异的时代,高效的管理软件是提升业务效率的关键。"Extjs酒店管理系统"就是这样一款集成了先进技术和强大功能的管理工具,专为酒店行业的运营而设计。该系统由Visual ...

    Extjs4.1 小例子(适合extjs初学者学习使用)

    通过这些小例子,你可以了解如何使用ExtJS 4.1来创建用户界面,包括布局管理、组件系统、数据绑定、事件处理等核心概念。 描述中提到的".直接导入myeclipse即可",意味着这些示例代码是用Eclipse的MyEclipse插件...

    ExtJs管理系统

    ExtJs管理系统是一个基于JavaScript的前端开发框架,用于构建企业级的Web应用程序,尤其适用于创建复杂的、数据驱动的用户界面。这个系统充分利用了ExtJs提供的组件化、可重用的UI元素,以及强大的数据绑定和远程...

    ExtJS 物流管理系统源代码

    ExtJS物流管理系统是一款基于Web的物流管理解决方案,利用先进的前端技术ExtJS和后端框架SSH(Struts2、Spring、Hibernate)实现。该系统旨在提供高效、便捷的物流业务流程管理,包括货物跟踪、订单处理、仓储管理等...

    extjs仿桌面系统

    在"EXTJS仿桌面系统"这个项目中,我们将探讨EXTJS如何实现类似桌面系统的功能和界面效果。 首先,EXTJS的组件库包含了各种各样的UI元素,如窗口(Window)、面板(Panel)、菜单(Menu)、按钮(Button)等,这些都...

    Extjs应用案例--<酒店管理系统>

    Extjs应用案例: 本酒店管理系统采用三层架构,SQL Server数据库。最主要的是采用了Extjs框架。 酒店系统实现了部分功能。aspx后台页面几乎无代码。业务逻辑处理全部采用Extjs自带的函数。对于学习Extjs的框架的...

    extjs小例子

    通过研究示例代码,你可以加深对EXTJS布局系统、组件通信以及整个EXTJS架构的理解。 总之,EXTJS小例子提供了学习EXTJS框架的好机会,无论是对于初学者还是有一定经验的开发者,都可以从中获取到实际操作的经验,...

    EXTJS桌面系统-完整实例

    EXTJS桌面系统-完整实例 数据库可以根据映射文件自己简历 这里只是为大家展示一下

    asp.net+extjs租车系统管理

    【ASP.NET + ExtJS 租车系统管理】 ASP.NET 是微软公司推出的一种Web应用程序开发框架,它基于.NET Framework,提供了一种高效、易用且功能强大的工具,用于构建动态网站、Web应用程序和服务。ASP.NET 提供了丰富的...

    extjs的登录系统

    extjs的登录系统...............................

    extjs做的图书管理系统

    《基于ExtJS的图书管理系统详解》 图书管理系统是IT领域中的常见应用场景,它涉及到前端用户界面、后端数据处理以及数据库管理等多个技术层面。本文将详细介绍一个使用ExtJS开发的图书管理系统,该系统同时结合了...

    extjs得单页系统实例

    OPOAdemo.rar extjs得单页系统实例

    extjs easyui小图标

    ExtJS图标系统允许开发者为按钮、菜单项和其他UI元素添加视觉效果,增强其可识别性和美观性。这些图标通常通过CSS类名引用,可以是矢量图形,以确保在不同分辨率下都能清晰显示。 EasyUI则是一个基于jQuery的轻量级...

    合同管理系统 extjs开发的 让大家一起学习

    《合同管理系统基于EXTJS的开发详解》 在信息化飞速发展的今天,合同管理系统的构建对于企业来说至关重要。它能够高效地处理合同的起草、审批、执行、归档等环节,提高工作效率,降低风险。本系统采用EXTJS进行前端...

    Extjs(图书管理系统)

    在“图书管理系统”这个项目中,Extjs被用来实现用户界面的交互和展示,提供了丰富的组件库,如表格、面板、窗口、菜单等,使得前端界面既美观又功能强大。配合后端的数据处理,可以提供高效的用户交互体验。 项目...

    EXTJS图书管理系统页面(JAVA)

    在"EXTJS图书管理系统页面(JAVA)"这个项目中,我们主要关注的是EXTJS在图书管理系统中的应用,以及它与Java后端的交互。 EXTJS提供了一套完整的组件库,包括表格、表单、面板、窗口、菜单等,使得开发者可以方便...

Global site tag (gtag.js) - Google Analytics