当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪Entity Framework底层操作封装(3)      上面谈了几个类的封装,这次我们讲讲使用的方式。 在实际过程中,我们怎么就能说明我们少了代码的编写呢? 例如我们需要一个类实现某个表的操作,我们只需要继承与我们的Base类就能实.........
    ▪HttpClient 发送GET、POST请求           /**      * 发送GET请求      *      * @param url url地址      * @return JSONObject      */     public static String getAjaxDataFro.........
    ▪使用spring框架,应用启动时,加载数据      场景描述:        有时我们需要在应用启动时,加载某些不常变的数据到缓存中,避免每次请求时查询数据库或其它数据源,以提高性能(准备连接,建立连接,关闭连接,减少.........

[1]Entity Framework底层操作封装(3)
    来源: 互联网  发布时间: 2013-11-19

上面谈了几个类的封装,这次我们讲讲使用的方式。

在实际过程中,我们怎么就能说明我们少了代码的编写呢?

例如我们需要一个类实现某个表的操作,我们只需要继承与我们的Base类就能实现了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NOAS.PublicOpinionMonitor.Access.Common;
using NOAS.PublicOpinionMonitor.ENTITY;

namespace NOAS.PublicOpinionMonitor.Access
{
    public class ProxyDAL : AccessBase<t_po_monitor_proxy>
    {

        public ProxyDAL()
            : base(strTableName:"t_po_monitor_proxy",ColumsName:@" [monitorid]
                                                                  ,[monitor_name]
                                                                  ,[tkwid]
                                                                  ,[monitor_stardate]
                                                                  ,[monitor_enddate]
                                                                  ,[monitor_datetype]
                                                                  ,[monitor_interval]
                                                                  ,[data_begindate]
                                                                  ,[data_enddate]
                                                                  ,[exec_datetime]
                                                                  ,[monito_days]
                                                                  ,[updatedate]
                                                                  ,[status]")
        {
        }




        public List<t_po_monitor_proxy> getAllMonitorProxy() 
        {
           return getListByWhere(string.Empty);
        }


        

    }
}
我坚持的东西是,自己的事情自己做。所以一般在做底层的架构涉的时候,每个类只能操作自己对应的表。这样让我们的代码也会更加的清晰。

在业务层的使用过程中,就更加简单了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NOAS.PublicOpinionMonitor.BIZ
{
    public class ProxyBLL
    {
        public int addMonitorProxy(ENTITY.t_po_monitor_proxy proxyEntity) 
        {

            new NOAS.PublicOpinionMonitor.Access.ProxyDAL().addEntity(proxyEntity);
            return proxyEntity.mproxyid;

        }



        public int updateMonitorProxy(ENTITY.t_po_monitor_proxy proxyEntity)
        {

            new NOAS.PublicOpinionMonitor.Access.ProxyDAL().updateEntity(proxyEntity);
            return proxyEntity.mproxyid;
        }
    }
}

从这里也让我更加的喜欢去设计和架构东西。架构让程序编程更美。多想,多做,多看。让我们的代码变得更加清晰。

坚决不做码农,我们是攻城师。

作者:jacky4955 发表于2013-6-20 16:57:02 原文链接
阅读:107 评论:0 查看评论

    
[2]HttpClient 发送GET、POST请求
    来源: 互联网  发布时间: 2013-11-19

     /**
     * 发送GET请求
     *
     * @param url url地址
     * @return JSONObject
     */

    public static String getAjaxDataFromURLForSMS(String url) {
        long begin = System.currentTimeMillis();
        LOG.info("request:" + url);
        String result = null;
        BufferedReader rd = null;

        try {
            URL u = new URL(/blog_article/url/index.html);
            InputStream is = u.openStream();
            rd = new BufferedReader(new InputStreamReader(is, "utf-8"));
            StringBuffer sb = new StringBuffer();

            String line;
            while ((line = rd.readLine()) != null) {
                sb.append(line);
            }

            long end = System.currentTimeMillis();
            LOG.info("response[" + (end - begin) + "]:" + sb.toString());
            result = sb.toString();

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (rd != null) {
                try {
                    rd.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }

        return result;
    }
   


   /**

     * @return XMLData
     */
    public static Document getXMLDataFromURL(/blog_article/String url/index.html) {
        long begin = System.currentTimeMillis();
        LOG.info("request:" + url);
        SAXBuilder saxBuilder = new SAXBuilder();
        Document doc = null;
        try {
            URL u = new URL(/blog_article/url/index.html);
            InputStream in = u.openStream();

            doc = saxBuilder.build(in);

        } catch (Exception e) {
            e.printStackTrace();
        }
        if (LOG.isInfoEnabled()) {
            long end = System.currentTimeMillis();
            XMLOutputter outp = new XMLOutputter();
            LOG.info("response[" + (end - begin) + "]:" + outp.outputString(doc));
        }

        return doc;
    }



   /**

     * 发送GET请求
     *
     * @param url
     *            url地址
     * @return JSONObject
     */

    public static JSONObject getJSONDataFromURL(/blog_article/String url/index.html) {
        long begin = System.currentTimeMillis();
        LOG.info("request:" + url);
        JSONObject jsonObj = null;
        BufferedReader rd = null;

        try {
            URL u = new URL(/blog_article/url/index.html);
            InputStream is = u.openStream();
            rd = new BufferedReader(new InputStreamReader(is, "utf-8"));
            StringBuffer sb = new StringBuffer();

            String line;
            while ((line = rd.readLine()) != null) {
                sb.append(line);
            }

            long end = System.currentTimeMillis();
            LOG.info("response[" + (end - begin) + "]:" + sb.toString());
            jsonObj = new JSONObject(sb.toString());

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        } finally {
            if (rd != null) {
                try {
                    rd.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }

        return jsonObj;
    }







    /**
     * 发送POST请求
     *
     * @param url
     *            url地址 params 参数
     * @return JSONObject
     */

    public static JSONObject getJSONDataFromURL(/blog_article/String url, String params/index.html) {
        long begin = System.currentTimeMillis();
        LOG.info("request:" + url);
        JSONObject jsonObj = null;

        HttpURLConnection huc = null;
        BufferedReader in = null;
        InputStreamReader isr = null;
        InputStream is = null;

        StringBuffer sb = new StringBuffer(333);

        try {

            URL u = new URL(/blog_article/url/index.html);
            huc = (HttpURLConnection) u.openConnection();
            huc.setRequestMethod("POST");
            huc.setDoOutput(true);
            huc.getOutputStream().write(params.getBytes("utf-8"));
            huc.getOutputStream().flush();
            huc.getOutputStream().close();
            is = huc.getInputStream();
            isr = new InputStreamReader(is, "utf-8");
            in = new BufferedReader(isr);
            String line = null;

            while ((line = i

    
[3]使用spring框架,应用启动时,加载数据
    来源: 互联网  发布时间: 2013-11-19

场景描述:

       有时我们需要在应用启动时,加载某些不常变的数据到缓存中,避免每次请求时查询数据库或其它数据源,以提高性能(准备连接,建立连接,关闭连接,减少数据读取的IO数).如果应用中刚好用到spring框架,正好可以用spring的机制实现这个功能


解决方案:

     1:写一个类,实现BeanPostProcessor接口,这个接口有两个方法。


          (1):postProcessBeforeInitialization方法,在spring中定义的bean初始化前调用这个方法

          (2):postProcessAfterInitialization方法,在spring中定义的bean初始化后调用这个方法


         例子代码:

         

public class CacheBeanPostProcessor implements BeanPostProcessor {


	@Override
	public Object postProcessAfterInitialization(Object obj, String arg1) throws BeansException {
		try {
			if(obj instanceof ColumnService) {  
				((ColumnService)obj).getColumnList();//加载栏目数据
	        }else if(obj instanceof TradeServiceImpl){
	        	((TradeServiceImpl)obj).getTradeList();//加载行业数据
	        }
		} catch (Exception e) {
			 e.printStackTrace();
		} 
                return obj;  
	}

	
	@Override
	public Object postProcessBeforeInitialization(Object arg0, String arg1)
			throws BeansException {
		// TODO Auto-generated method stub
		return arg0;
	}

}


             2:在spring的xml文件中,添加

                   <!-- 初始缓存数据,初始化spring中定义的bean的前后都会用此实现类 -->
          <bean id="cacheBeanPostProcessor" class="com.guagua.cache.CacheBeanPostProcessor"/> 


            3:在加载数据后,数据存在什么地方,由你来定,我这个例子是放到了一个“静态变量中”

                     

@Service("columnService")
public class ColumnServiceImpl implements ColumnService {

	public static List<Column> columnList = new ArrayList<Column>();
	@Autowired
	private ColumnDao columnDao;

	public void setColumnDao(ColumnDao columnDao) {
		this.columnDao = columnDao;
	}
	
	@Override
	public List<Column> getColumnList() throws Exception {
		columnList = columnDao.getColumnList();
		return columnList;
	}
}


结束语:

           如有疑问,请提出异议建意。

作者:guoqingcun 发表于2013-6-21 14:37:38 原文链接
阅读:81 评论:0 查看评论

    
最新技术文章:
▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3