码农往事
我的代码为什么这么丑?一定是因为我长的不好看
posts - 29,comments - 86,trackbacks - 0

--启用Ad Hoc Distributed Queries 
--
(使用以下两句代码的原因:下面的sql中,其中有几个从其他数据库导入数据的语句,所以必须得先启用Ad Hoc Distributed Queries,使用结束后,最好关闭它 )
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

 

GO
delete from syscode
insert into syscode 
select type,code,name,note,value1,value2 FROM opendatasource('SQLOLEDB','Data Source=192.168.1.101;User ID=sa; Password=***').[DATABASE_NAME].dbo.syscode


--使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
posted @ 2013-02-03 11:27 Jimi 阅读(2763) | 评论 (0)编辑 收藏
import java.util.ArrayList;
import java.util.Calendar;

public class CAL {
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Calendar start = Calendar.getInstance();
        System.out.println(start.getTimeInMillis());
        ArrayList<Integer> number = new ArrayList<Integer>();
        number.add(1);number.add(1);
        for (int i = 2; i <= 100000; i++) {
            number.add(number.get(i - 1) + number.get(i - 2));
        }
        Calendar end = Calendar.getInstance();
        System.out.println(end.getTimeInMillis());
        System.out.println("时间:" + (end.getTimeInMillis()-start.getTimeInMillis() ));
        System.out.println("last:"+number.get(100000));
    }

}
posted @ 2013-01-25 11:15 Jimi 阅读(1903) | 评论 (0)编辑 收藏
项目上有一个这样的需求:登录的时候选择一个单位名称,然后输入账号完成登录,下次登录的时候,“单位选择”框里自动显示为上次登录的页面。
具体实现如下:

            {
xtype : 'combo',                              //这里是选择单位的Combo
id:'orgname',
store : orgStore,
name:'orgname',
emptyText : '请选择单位',
displayField : 'orgname',
valueField : 'dbname',
editable : false,
forceSelection : true,
triggerAction : 'all',
shadow : 'frame',
hiddenName : 'dbname',
listeners:{
    select:function(){                                                          //增加1个select函数,当选择的时候,将选择结果保存入cookie
    savedbname= Ext.getCmp('orgname').getValue();
                                 Ext.util.Cookies.set('savedbname',savedbname);
}
    }
}



 
var orgStore = new Ext.data.JsonStore( {                                 //这是单位选择Combo的数据源
url : 'test/LoginOrgSelectServlet',
root : 'orgselect',
fields : [ 'orgname', 'dbname' ],
autoLoad : true,
listeners:{load:function(){                                                  //给store添加一个load监听器
  var cookiedata = Ext.util.Cookies.get("savedbname");
  if (cookiedata!=null){Ext.getCmp('orgname').setValue(cookiedata);}   //当cookie中的数据不为空的时候,设置combo的值
}}
});
posted @ 2012-09-12 17:23 Jimi 阅读(5174) | 评论 (1)编辑 收藏
public List queryDeviceName(String where) {
Session session =  this.getSession();
List list = session.createSQLQuery("select number, name from devrepair " + where).list();
return list;
}

List deviceList = this.getDevrepairService().queryDeviceName(where);
StringBuilder sb = new StringBuilder();
sb.append("{devices:[");
for(Object nameinfo:deviceList){                                                            //查询的结果为Object
sb.append("{number:'").append(((Object[])nameinfo)[0]).append("',");          //将查询结果转化为Object的集合,取值
sb.append("name:'").append(((Object[])nameinfo)[1]).append("'}");              
sb.append(",");
}
posted @ 2012-09-03 17:25 Jimi 阅读(611) | 评论 (0)编辑 收藏

总体方案:从sql server 中导出建立数据库的sql文件,在powerdesigner中生成PDM,再将PDM转化为MySql的版本,然后生成数据库的sql,在MySql中导入sql文件生成数据库。将sql server 表中已存在的数据导出为CSV文件,将CSV文件导入MySql中实现数据迁移。
用到的工具:Excel,PowerDesigner,SQLyog,记事本
1.在sql server 2005中,右键点击数据库→任务→生成脚本  按提示点击下一步,最后将脚本保存到文件xxx.sql



2.打开powerdesigner,点击文件→reverse engineer→database

选择数据库类型为sql server 2005

选择第一步中生成的sql文件
点击确定,生成sql server 2005版本的PDM文件
3.powerdesigner中,点击工具→generate physical data model
选择类型为mysql 5.0,点击确定生成mysql 5.0版本的pdm,如果出现如下错误

将detail选项卡中的check model的打钩去掉
4.powerdesigner中选择 数据库→generate database

点击确定生成Mysql 5.0版本的数据库脚本文件
5.mysql 中,用source命令从sql文件创建相关的表 “source d:/xxx.sql”检查上一步骤中生成的脚本文件,由于是从sql server中生成,数据库名称可能是dbo,将dbo改为你打算创建的数据库名称
6.sql server中,,右键点击数据库→任务→导出数据 按提示导出为excel文件,如:xx.xls
7.excel中打开,选择文件→另存为csv文件  毋须保留列名,方式选择utf-8,否则可能出现乱码的问题
8.再将csv文件导入mysql,有多种方式,图形化界面SQLyog中,直接右键表→从CSV中导入数据 即可
posted @ 2012-08-31 10:34 Jimi 阅读(9130) | 评论 (3)编辑 收藏
删除了A项目,运行B项目的时候总是有A项目的启动信息,甚至物理删除A项目后都无法解决,猜测是A项目的项目文件被保存在myeclipse自带的tomcat中,网上查了查,没有找到相关的解决办法,凭感觉找到以下目录:
\Workspaces\MyEclipse 8.5\.metadata\.me_tcat\webapps
发现原来删除的A项目的文件都保存在该目录下,此外该目录还包括当前运行的项目,删除相关A项目的文件即可解决。
看来 \Workspaces\MyEclipse 8.5\.metadata\.me_tcat\webapps 就是Myeclipse的发布目录
posted @ 2012-08-27 11:51 Jimi 阅读(1930) | 评论 (0)编辑 收藏
你必须学会翻##墙,感谢领导!
posted @ 2012-08-07 10:39 Jimi 阅读(1412) | 评论 (2)编辑 收藏
小明和小强都是王老师的学生,老师的生日是M月N日,他们都知道老师的生日是以下十组中的一个,老师把M告诉了小明,把N告诉了小强,然后问他们是否知道自己的生日,小明说“如果我不知道小强也不知道”,小强说“本来我不知道,你说了这话我就知道了”,小明说“那我也知道了 ”。问老师的生日是以下的哪个。

3,4
3,5
3,8
6,4
6,7
9,1
9,5
12,1
12,2
12,8

正在上班 orz..,偶然看到一个题目,就动动脑子吧。
按月份排:
3,4 3,5 3,8
6,4 6,7
9,1 9,5
12,1 12,2 12,8
按日期排:
9,1 12,1
12,2
3,4 6,4
3,5 9,5
6,7
3,8 12,8

小明说“如果我不知道小强也不知道”  按月份排,小明一定不知道,小明知道月份以后肯定小强不知道,由于12,2 6,7的日期是唯一的,可见月份不是6月或12月,生日可能是以下5个:
按月份排:
3,4 3,5 3,8 
9,1 9,5 
小强说“本来我不知道,你说了这话我就知道了”,除去6,7 12,2,小强原本的选择如下,
按日期排:
9,1 12,1
3,4 6,4
3,5 9,5
3,8 12,8
现在听完小明说的话,剔除6月和12月的数据,老师的生日可能的日期如下:
按日期排:
9,1
3,4
3,5 9,5
3,8
现在小强知道了,由于3,5 9,5日期重复,所以日期一定不是5,生日的可能的集合为:3,4 3,8 9,1

小明说“那我也知道了 ” 小明原本可能的选择如下,
按月份排:
3,4 3,5 3,8 
9,1 9,5 
现在小明以小强的逻辑推断,也可推知日期一定不是5,而小明自己知道月份,如果为3月,那么小明自己也无法知道老师的生日,所以只能是9月,
老师的生日为9,1。



posted @ 2012-07-25 12:48 Jimi 阅读(1760) | 评论 (4)编辑 收藏
JSP页面定义了如下几个作用域:
页面作用域(page scope)、请求作用域(request scope)、会话作用域(session scope)、应用程序作用域(application scope)
页面作用域中的对象仅在当前页面可用;请求作用域中的对象在所有处理同一请求的页面中都可用;会话作用域中的对象用于同一浏览器发出的所有请求;应用程序作用域中的对象被应用程序的所有用户共享。
通过设置<jsp:useBean>行为的scope属性,制定bean应该放在哪个作用域中,例如:
<jsp:useBean id="test" scope="request"  class="com.testBean" />
会话跟踪过程解释:由于HTTP是一种无状态协议,即服务器处理完浏览器的请求后将忘掉所发生的事务,当浏览器再次发出请求时,Web服务器并不知道新的请求与之前的请求有何关系。解决这个问题主要有两种方法:
1、服务器在应答中返回与该用户有关的所有信息,并让浏览器将其作为下一个请求的一部分发回去
2、在服务器的任何位置保存状态信息,并且发回一个标识符,浏览器在下一请求中返回该标识符,然后借由该标识符定位服务器上的状态信息
在这两种情况下,可以用以下三种方式将状态信息发送给浏览器:
1、作为cookie    
2、嵌入HTML表单作为隐藏字段
3、进行编码,编入应答主体的URL中,一般作为连接到其它应用程序的链接(也称作URL复写,URL rewriting)

在浏览器和服务器间来回发送所有状态信息的效率是极低的,所以大多数现代服务器都将信息保留在服务器上,只在浏览器和服务器间传递标识符,这就是会话跟踪(session tracking),JSP隐藏了cookie会话跟踪的所以细节,并实现了对URL复写的支持,此外,JSP规范允许使用安全套接字协议层(Secure Socket Layer,SSL)内置的会话机制。在会话的生命周期中,保存在会话作用域中的信息可被同一浏览器的所有页面所用。
在线购物(P179):
内存使用策略:
1、只把那些真正需要被每个会话单独拥有的对象放在会话作用域中
2、将会话的有效期设成比默认值更短
3、提供一种显示的结束会话的方法。一个好的示例就是注销功能,或者是当某件事务完成时,使会话失效。在servlet和其他自定义代码中,可以使用HttpSession invalidate()方法。
posted @ 2012-05-21 00:35 Jimi 阅读(1841) | 评论 (1)编辑 收藏
JSP有三种类型的元素:指令元素(directive element)、行为元素(action element)、和脚本元素(script element)。
指令元素:
<%@ page...%>  定义了独立于页面的属性,例如会话跟踪、错误处理页面、对缓存的要求等
<%@ include...>  在翻译阶段引入文件
<%@ taglib...>    声明一个在页面中使用的包含自定义行为的标记库
标准行为元素:
<jsp:usebean>  使一个JavaBeans在当前页面可用    
<jsp:getProperty>  从JavaBeans中获得某个属性值,并将其添加到应答中
<jsp:setProperty>  设置JavaBeans的属性值
<jsp:include>  在请求处理阶段引入来自一个servlet或页面的应答结果
<jsp:forward>  将对请求的处理转交给一个servlet或JSP页面
<jsp:param>  使用<jsp:forward> 或<jsp:include> 时,向这个请求添加参数
<jsp:plugin>
自定义行为元素和标准标记库:JSTL,JSP标准标记库(JSP Standard Tag Library),可以用扩展API开发自定义行为
脚本元素:
<%...%>  小脚本,用于嵌入脚本代码
<%=...%>  用于嵌入JAVA表达式
<%!...%>  声明变量和方法
posted @ 2012-05-20 03:47 Jimi 阅读(268) | 评论 (0)编辑 收藏
仅列出标题
共4页: 上一页 1 2 3 4 下一页