October 20th, 2008

java数据库操作基本流程

No Comments, test, by zay,

1、java数据库操作基本流程 

  2、几个常用的重要技巧: 

  可滚动、更新的记录集 

  批量更新 

  事务处理 

  java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接 

  1、取得数据库连接 

  1)用DriverManager取数据库连接 

  例子: 

String className,url,uid,pwd; 
className = “oracle.jdbc.driver.OracleDriver”; 
url = “jdbc:oracle:thin:@127.0.0.1:1521:orasvr; 
uid = “system”; 
pwd = “manager”; 
Class.forName(className); 
Connection cn = DriverManager.getConnection(url,uid,pwd); 

  2)用jndi(java的命名和目录服务)方式 

  例子 

String jndi = “jdbc/db”; 
Context ctx = (Context) new InitialContext().lookup(”java:comp/env”); 
DataSource ds = (DataSource) ctx.lookup(jndi); 
Connection cn = ds.getConnection(); 

  多用于jsp中 

  2、执行sql语句 

  1)用Statement来执行sql语句 

String sql; 
Statement sm = cn.createStatement(); 
sm.executeQuery(sql); // 执行数据查询语句(select) 
sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)statement.close(); 

  2)用PreparedStatement来执行sql语句 

String sql; 
sql = “insert into user (id,name) values (?,?)”; 
PreparedStatement ps = cn.prepareStatement(sql); 
ps.setInt(1,xxx); 
ps.setString(2,xxx); 
… 
ResultSet rs = ps.executeQuery(); // 查询 
int c = ps.executeUpdate(); // 更新 

  3、处理执行结果 

  查询语句,返回记录集ResultSet。 

  更新语句,返回数字,表示该更新影响的记录数。 

  ResultSet的方法: 

  1、next(),将游标往后移动一行,如果成功返回true;否则返回false。 

  2、getInt(”id”)或getSting(”name”),返回当前游标下某个字段的值。 

  3、释放连接。 

cn.close(); 

  一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection 

  可滚动、更新的记录集 

  1、创建可滚动、更新的Statement 

Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY); 

  该Statement取得的ResultSet就是可滚动的 

  2、创建PreparedStatement时指定参数 

PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 

ResultSet.absolute(9000); 

  批量更新 

  1、Statement 

Statement sm = cn.createStatement(); 
sm.addBatch(sql1); 
sm.addBatch(sql2); 
… 
sm.executeBatch() 

  一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是delete、update、insert等或兼有 

  2、PreparedStatement 

PreparedStatement ps = cn.preparedStatement(sql); 

 ps.setXXX(1,xxx); 
 … 
 ps.addBatch(); 

ps.executeBatch(); 

  一个PreparedStatement,可以把一个sql语句,变换参数多次执行,一次更新。 

  事务的处理 

  1、关闭Connection的自动提交 

cn.setAutoCommit(false); 

  2、执行一系列sql语句 

  要点:执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先close 

Statement sm ; 
sm = cn.createStatement(insert into user…); 
sm.executeUpdate(); 
sm.close(); 

sm = cn.createStatement(”insert into corp…); 
sm.executeUpdate(); 
sm.close(); 

  3、提交 

cn.commit(); 

  4、如果发生异常,那么回滚 

cn.rollback();

October 17th, 2008

笑话一则

No Comments, 笑话, by zay,

老板:万分欢迎,没有你我们的公司肯定大不一样!

职员:如果工作太累,搞不好我会辞职的

老板:放心,我不会让这样的事情发生的!

职员:我双休日可以休息吗?

老板:当然了!这是底线!

职员:平时会天天加班到凌晨吗?

老板:不可能,谁告诉你的?

职员:有餐费补贴吗?

老板:还用说吗,绝对比同行都高!

职员:有没有工作猝死的风险?

老板:不会!你怎么会有这种念头?

职员:公司会定期组织旅游吗?

老板:这是我们的明文规定!

职员:那我需要准时上班吗?

老板:不,看情况吧

职员:工资呢?会准时发吗?

老板:一向如此!

职员:事情全是新员工做吗?

老板:怎么可能,你上头还有很多资深同事!

职员:如果领导职位有空缺,我可以参与竞争吗啊?

老板:毫无疑问,这是我们公司赖以生存的机制!

职员:你不会是在骗我吧?

 

进入公司后看真实的一幕(从后往前读)

October 17th, 2008

igoogle更新了

No Comments, google, by zay,

 

这个页面很有reader的感觉……

就好象把reader整合进来了!

October 7th, 2008

推荐一款壁纸

No Comments, 介绍, by zay,
3d的 ps得不是很好  

同学随便帮我去了些东西

找不到原来的那张,只好用这个顶替着

October 6th, 2008

湛江动漫节

No Comments, 介绍, by zay,


DSCN1227

上传于Yupoo, 由相机Unknown拍摄.
婷婷翻佐湛江睇佐噶湛江动漫节

这个是她拍的角色扮演,服务员……

【内容】
项目进行过程中,经常需要在本地测试后发布要远程,连接到远程内网是采用VPN的方式,但是连上VPN之后就没有办法访问本地的内网了,每次需要两边同时操作的时候就需要断开VPN,然后操作本地网络的东西,然后再连接上VPN访问远程内网,这样的切换有的时候让人比较郁闷。所以就希望找到一种方法,实现可以同时访问远程内网和本地内网的办法。经过一番查找找到如下的方法:
 
方法一:配置VPN。
连接上VPN之后,查看VPN的属性,然后依次点击:
 
网络->Internet协议(Tcp/IP)->属性->高级->常规,去除“在远程网络上使用默认网关”前面的勾。
 
这种方法可以保证远程内网和本地内网的同时方法,但是,如果远程网络中有多个子网,就需要在VPN服务器端进行设置了。有一定的局限性。
 
方法二:设置本地的路由。
使得路由可以保证本地网络地址使用本地的网管进行跳转。具体方法如下:
 
1、在开始菜单的“运行”中输入cmd
2、输入ipconfig /all这个命令。得到的结果可能如下:
 
C:\Documents and Settings\Administrator>ipconfig /all 

Windows IP Configuration Host Name . . . . . . . . . . . . : MyName Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Mixed IP Routing Enabled. . . . . . . . : No

WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter 本地连接: Connection-specific

DNS Suffix . :

Description . . . . . . . . . . . : Broadcom 440x 10/100 Integrated Controller

Physical Address. . . . . . . . . : 00-1A-A0-B1-C2-B8

Dhcp Enabled. . . . . . . . . . . : No

IP Address. . . . . . . . . . . . : 192.168.0.86

Subnet Mask . . . . . . . . . . . : 255.255.0.0

Default Gateway . . . . . . . . . : 192.168.0.1

DNS Servers . . . . . . . . . . . : 192.168.0.1

 

PPP adapter VPN: Connection-specific

DNS Suffix . :

Description . . . . . . . . . . . :

WAN (PPP/SLIP) Interface Physical

Address. . . . . . . . . : 00-53-45-00-00-00

Dhcp Enabled. . . . . . . . . . . : No

IP Address. . . . . . . . . . . . : 14X.3X.6X.110

Subnet Mask . . . . . . . . . . . : 255.255.255.255

Default Gateway . . . . . . . . . : 14X.3X.6X.110

DNS Servers . . . . . . . . . . . : 20X.10X.3X.141

其中本地连接的默认网关是192.168.0.1。现在我们需要将192.168.0.0这个子网段的所有访问通过这个网管来跳转,就可以在cmd这个命令下面继续输入:
route -p add 192.168.0.0 mask 255.255.255.0 192.168.0.1
这样就可以保证这个网段的内网地址仅通过默认的网管进行访问,而不经过VPN了。

因为路由设置重启之后就失效了,所以最好建立一个批处理文件.bat然后将上面新增路由的命令放到里面,添加到开始菜单的启动中,每次开机启动后执行。这样就可以保证VPN连接后仍然可以访问本地的网络了。

October 1st, 2008

可爱的熊猫

No Comments, 生活点滴, by zay,

September 30th, 2008

wut is Demonoid

No Comments, 介绍, by zay,

Demonoid是一个网站和BitTorrent的追踪是来源于一个匿名塞尔维亚只知道的化名火卫二。该网站上传指数山洪其成员。这是第二大,是最受欢迎的私人跟踪了一年多,第四百〇三最流行网站排名在2007年7月根据Alexa的 ,并估计有300万同行2007年9月。 该网站去离线的07年11月9日因被指控的法律威胁来自加拿大唱片工业协会。 4月11日, 2008年,网站被带回线上。

Membership

该网站采用了公开查阅的搜索工具。此前,成员被要求下载超过3山洪每星期或下载torrent文件以上几天。注册是开放定期在资源许可的。用户有能力创造一个数量有限的邀请码传送给他人在封闭的注册时间。
Demonoid轨道,并显示用户的上传/下载的比率,但不采取行动,打击用户的低比率。Demonoid以前被禁止的用户比率低,但没有这样做的原因是比不准确的系统给一些用户的动态IP地址。

Features

demonoid分类下的山洪动画,应用,音频图书,图书,漫画,游戏,杂项,电影, 音乐, 音乐录像,电影,或电视。他们不允许上传色情材料和可能的病毒的文件上传。 许多类别有不同的类别或部门,使搜索更加具体。 
Demonoid功能不同的RSS馈送为每个类别和分类别使用户了解最新的洪流张贴在网站上。这些RSS源链接Demonoid网页,并没有直接的torrent文件。的RSS插件的各种BitTorrent的客户无法直接下载的torrent文件,并开始文件共享。 
该网站拥有超过199629用户提交的索引

Current status

4月10日, 2008年,火卫二辞去管理员Demonoid ,理由有许多原因和“分心与真实世界的问题” [ 23 ]的主要原因。他还指出,他已“的缰绳交给了一个新的管理员-一个亲密朋友的地雷,我相信已经完全的知识和时间来照顾的网站。 ”经过今后几天里, RSS种子的网站回来在线和2008年4月16号大规模电子邮件发送给用户的所有Demonoid通知该网站是“终于重新上线。 ”服务器设在乌克兰。不幸的是,或许是由于改变,该网站已被报告给一贯返回HTTP错误500 (内部服务器错误)的有相当数量的注册用户,有效地防止进入网站(和从而使它的吸引力作为一个跟踪) 。 
目前的网页内容如下: 
几个月前,网站管理员(称为火卫二) ,缺乏必要的时间,以保持本网站。和个人的原因,火卫二决定辞去他的立场的成员网站的工作人员。 

临走时,火卫二选择了一个新的网站管理员从他的朋友。旧的主持人团队保持不变,并将继续帮助网站。在Demonoid的小组会尽力把一切都运行正如它一直。 

黑客和网站似乎是正常运作,并应出现任何问题,他们将得到照顾尽快。如果我们工作的任何问题在未来几天内,该网站可能会和离线。我们事先表示歉意,如果这应该发生。 

欢迎回来,享受! 

-U mlauf 
Demonoid网站管理员
也有一个原因不明的问题,无法获得该网站由荷兰,比利时和巴西 。用户被迫使用代理作为替代方法。

September 3rd, 2008

强烈推荐Google chrome

No Comments, google, by zay,

http://www.google.com/chrome

chrome的bug:彩蛋那个就不说了,对flash的支持不能说很好,偶尔会出现没声音很奇怪!

用了之后速度真的比ie和firefox有明显的提高而且很炫很简洁……上淘宝不会再假死了,现在淘宝真的慢了很多用了ajax技术太多了对浏览器的javascript要求高了很多,别的网站也是这样的情况现在chrome的推出简直是个颠覆性的工具功能集合了众家之长……很多功能大家都会觉得蛮熟悉的很容易上手!

而且在假死方面chrome做得相当不错,这样的技术超喜欢不用再担心所有的窗口都会被关闭掉,现在正在虐待chrome哈哈开了很多窗口在IE7的话就马上崩溃了现在还能处理的很好,很牛的浏览器。

强烈推荐,不知道什么时候推出Linux版本在Linux下面用firefox真的觉得越来越不舒服……

今天肚子又饿很早就醒,算是失眠吧,突然脑海浮现的景象是李竞和梁林步入婚姻的殿堂,偶和下流拽着沉甸甸的红包送给他们做礼金,记得很清楚两人合资999,然后不知道后来进行了很多东西好多人,貌似偶和下流站在一起蛮清晰的。

最后,惊人的一幕出现了,我居然是做那个什么结婚贺词要上台祝贺他们两个新人,然后我讲得很动人他们都哭了,台下的人都被我感动了,貌似当时李竞很激动可能我说出了他的心声,梁林好像变得很漂亮也很模糊,模糊产生了漂亮,嗯……就这样脑子清醒了,后面没了。

现在,我想感叹下,天啊……我脑子进水了,不知道日后他们会怎么样,哈哈哈哈我和下流的999,貌似婚礼现场我肚子很饿没吃到什么东西,可能是肚子饿的缘故,太神奇了,怎么我从来没浮现过自己和某某人呢?