`
文章列表
最近在基于SQL做营销分析,随手记录几个以前用的不太熟的SQL脚本:    1、查询结果格式化程百分比 select a.wh,a.age,a.count1,round((a.count1/b.count2),2)*100||'%' from (select wh ,avg(age) age , count(wh) count1 from employee group by wh) a, (select count(*) count2 from employee) b   2、提取各个分类下的Top N select * from ( select id,name,cou ...
    虽然之前做过了一些项目,零零散散也做过些管理工作,但大多项目都是上面还有这个老大顶着,自己搞好开发就好了,对项目没太大的责任。而且目前为止,开发的团队都是小规模的,成员总是也差不多都维持在个位数水平,没怎么感觉到压力。可能跟一直都在学校或者研究机构里,没在企业做过开发有关系吧。这种学校型的开发往往都具备几个特点,开发团队松散,规模小,不规范,流动性大,人为因素较大。当然这仅是就我周围的情况而言,不过相信大多数国内学校的情况也都差不了多少,所以这样从学校出来的项目往往都跟所谓的“科研”挂上点儿边,很难出得了可大规模使用的企业应用或者互联网产品,没有专门的QA和测试人员来保证项目的执行和代码 ...

转变后

    有N久没有更新技术博客了,因为这段时间也没怎么搞技术,一直都在忙一些杂七杂八的事儿。上课、考试、找工作、申项目、尝试项目管理....     大学四年,做了好多尝试,很多技术也就或多或少有那么一丁点儿了解,有 ...
回想一下,数据库已经学过两三年左右了,期间虽然也会断断续续的使用不同的数据库系统,但具体用的时候都直接通过是否冗余直接对设计的结果进行判断了,所以对数据库范式的具体规定似乎忘的差不多了,正好借着这两天有空重新复习了一下。   1NF: 数据库表中的字段都是单一属性的,不可再分。单一属性由基本类型构成,包括整形、实数、字符型、逻辑性、日期型等。例如电话的字段就有可能不符合1NF,因为每个人可能拥有一个以上的电话记录,如家庭电话、办公电话等等。 2NF: 在符合1NF的基础上,没有部分主键功能决定其他属性的现象,也就是说主键之外的其他属性都完全功能依赖于主键。如关系(学号,姓名,年龄,课程名 ...
  读取内存信息的函数 Runtime.getRuntime().maxMemory(): 获得虚拟机可控制的最大内存数 Runtime.getRuntime().totalMemory():得到虚拟机当前已经使用的内存数 虚拟机参数 -Xms:设置初始堆内存大小,如java -Xms1024m ... -Xmx:设置最大对内存大小 -Xss:设置JVM栈内存大小 二维数组比一维数组占用更多的内存空间。二维数组占用的内存空间远远大于开辟的数组元素数,所以能不用二维数组的地方尽量用一维数组。 用HashMap提高内存查询速度。HashMap在初始化以及内存占用方面都高于 ...
String -> byte[]: byte[] bytes = s.getBytes();  byte[] -> String: String str = new String(bytes); 

Linux学习笔记

这几天又看了一点儿Linux相关的知识,准备在自己的机器上模拟个局域网供自己的学习和实验之用,可在学习过程中遇到不少的问题,索性记下来以供将来之用。   l 静态IP设置。 修改 /etc/sysconfig/network-scripts/ifcfg-eth0配置文件,加入如下内容
    之前一直在用Java,也学过一点儿Ruby,而且用Rails也做过小的项目,算是见识到了RoR强大的地方。不过一直都没试过Python,虽然很久以前也看过Python的书籍,对python的基本语法和编程思想有了一点表层的了解,但是一直都没 ...
首先,想要明白hashCode的作用,你必须要先知道Java中的集合。  总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元 ...
struts2中action的默认拓展名是".action",而之前的拓展名一直为".do",工作中需要要把struts2的action拓展名改为".do"的形式,查了一下,找到两种方法:   在struts.xml中进行如下配置 <constant name="struts.action.extension" value="do" />   在web.xml的filter中进行配置<init-param> <param-name>struts.act ...
很多时候程序需要读取工程中的一些文件(如xml、properties等等),而文件的路径指定往往会困扰我们的开发工作,尤其在web程序的开发中路径问题尤为突出,下面就简单介绍一下java中相对路径的获得方法。 getRealPath():仅限使用在servlet中,可以动态获得文件的绝对路径,部署在服务器上的工程通常要查看部署后服务器中的路径。 this.getServletContext().getRealPath("WEB-INF/classes/com.demo/config.xml")   getResource/getResourceAsStream: ...
  有时候需要对float的小数位数进行限制,通常最简单的两种方法如下: 使用DecimalFormat: float fv = 1234.56789f ; DecimalFormat df = new DecimalFormat("####.##"); System.out(df.format(fv));   可以先将float变量乘以100转成整数,之后再除以100: float f = 1.23456f; f = Math.round(f*100)/100f;      
一直都在用iBatis来完成数据的持久化操作,可是一直都不知道如何才能把insert后的id返回回来,在网上找了好久终于试成了,与大家分享一下。具体方法是在定义insert 语句的时候在原有的语句后面加上selectKey标签,例如   <insert id="user.insert" parameterClass="user"> insert into user set COL1=#col1:VARCHAR#, COL2=#col2:VARCHAR# <selectKey resultCla ...
Mate的ListenerInjector实现的视图中的监听器动态注入,可以在EventMap中动态定义视图层的监听器。简单的使用方法如下: 在EventMap中添加如下定义 <Injectors target="{MyTarget}"> <ListenerInjector eventType="{MyEvent.SELECT_ITEM}" method="doHandle" /> </Injectors>   在MyTarget.mxml中定义public的doHandle方法,该 ...
最近的项目中使用Flex来实现前端的界面显示,那么不同Flex组件间的数据通信便是一个重要的问题。我使用了Mate实现不同组件之间的数据通信。具体方法如下: 新建Flex项目,在src中建立以下四个包:business、comp、event、map。 在 Mate官网 上下载mate的swc包,并添加到Flex工程的库中。 在events包中新建一个自定义事件类MyEvent.as package events{ public class MyEvent extends Event { public static const CLICK ...
Global site tag (gtag.js) - Google Analytics