今天早上出来,发现自行车又没气了,我狂晕,这是怎么回事,刚换的新胎啊,疯了,今天本来就吃来晚了,没办法,去坐公交吧,还好,车在还可以接受的时间里来了,上车,还好,人还不多,站了一会儿还有座了,还好,路上还不是很堵,看着那些乱加塞儿的小p车,真生气,他一个加塞儿,让后面的好多车以及车上我们这么多等车上班的人等他把塞儿加进去,素质,素质,还好,8点55分下了车,奔向电梯,"还好",等电梯的超人多,爬楼梯,狂喘着爬上了12层,打卡,看时间,还好,8点59分,接着喘...
花了半天的时间把上周没完成的弄好了,学到javascript一招,哈哈,验证用户是否输入的是数字,text/1==text,如果返回true说明是数字,否则不是数字,哈哈,妙哉。完成了去找头儿,第一次休息呢,第二次不见了,呜呜。
台湾达美公司招聘
以3.8妇女节为主题,设计一个产品展示。
产品图用以下网站:
www.beautybank.com.cn
www.Delie.com.cn
www.crystalcosmetic.com
提交时需提交一张psd图片和其静态页面。
上午没什么事,下午一个什么CMMI的培训,狂晕,差点没睡着了,好多术语不知道是啥玩意儿,中途休息发现头儿给发了个邮件要加个功能,好,哈哈,申请不去了,干活,呵呵,眼睛不带眨的一直到下班,还有一点没弄完,算了周一再弄吧,反正头头也没催。
下午异常的紧张,因为说好周末要给家打电话的,家里总说为了我们他们怎么不愿意怎么委屈都没事,可是,说这话的时候,儿女又是怎么想呢,我们长大了,是有孝的,听着父母为了我们怎么样而如何难受,心里也真得是难受啊。
缺少沟通...
昨天新员工培训,"考试".好像又回到了大学上课,哦,不对,应该是中学,一个后来才知道是个总监的家伙照着员工手册念了半天,然后发试卷考试,呵呵,开卷,在员工手册上找,哈哈,有点在学校里开卷考马哲得意思,哈哈,然后总监从名单上念名字让其来回答每一题,真是无聊,感觉这个总监去做某校某班的某班主任还挺合适的.
头儿交给得活儿因为昨天培训没弄完,上午弄完了加了个页面,在想一个问题,那些有类似word功能得编辑框是怎么弄得?
复习一下基础知识,呵呵
java中switch的使用
关于java中switch使用的一些说明
switch(表达式)
{
case 常量表达式1:语句1;
....
case 常量表达式2:语句2;
default:语句;
}
default就是如果没有符合的case就执行它,default并不是必须的.
case后的语句可以不用大括号.
switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行同一语句.
==============Fucai.java====================
import java.util.Arrays;
public class Fucai {
private Integer[] redBall;
public Fucai()
{
redBall = new Integer[33];
for(int i = 0;i < 33;i++)
{
redBall[i] = i+1;
}
}
public int[] getRedBallArray()
{
int[] redBallArray = new int[6];
for(int i = 0;i < 6;i++)
{
int temp;
int index = (int)(Math.random()*(33-1-i));
redBallArray[i] = redBall[index];
temp = redBall[index];
redBall[index] = redBall[33-1-i];
redBall[33-1-i] = temp;
//System.out.println(index);
}
return redBallArray;
}
public int getBlueBall()
{
return (int)(Math.random()*(16));
}
public static void main(String[] args)
{
Fucai fucai = new Fucai();
int[] redBallArray = fucai.getRedBallArray();
Arrays.sort(redBallArray);
System.out.print("红球:");
for(int i = 0;i < redBallArray.length;i++)
{
String numStr = redBallArray[i] + "";
if(redBallArray[i]<10)
numStr = "0" + redBallArray[i];
System.out.print(numStr+",");
}
System.out.print("篮球:"+ fucai.getBlueBall());
System.out.println();
System.out.println("祝你好运!!!");
}
}
================Fucai.cs===================
using System;
using System.Collections.Generic;
using System.Text;
namespace FucaiApp
{
class Fucai
{
private int[] redBall;
public Fucai()
{
redBall = new int[33];
for (int i = 0; i < 33; i++)
{
redBall[i] = i + 1;
}
}
public String[] getRedBallArray()
{
int[] redBallArray = new int[6];
for (int i = 0; i < 6; i++)
{
int temp;
int index = new System.Random().Next(33 - 1 - i);
redBallArray[i] = redBall[index];
temp = redBall[index];
redBall[index] = redBall[33 - 1 - i];
redBall[33 - 1 - i] = temp;
}
System.Array.Sort(redBallArray);
String[] redStr = new String[6];
for (int i = 0; i < redBallArray.Length; i++)
{
String numStr = redBallArray[i] + "";
if (redBallArray[i] < 10)
numStr = "0" + redBallArray[i];
redStr[i] = numStr;
}
return redStr;
}
public String getBlueBall()
{
int blue = new System.Random().Next(1,16);
if (blue < 10)
return "0" + blue.ToString();
else
return blue.ToString();
}
}
}
装了个vs.net2005好些天了,今天做了个登录页面的练习,捣鼓了半天,又问人又查帮助的,呵呵,
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLogin_Click(object sender, EventArgs e)
{
string userName = this.tbUserName.Text;
string pwd = this.tbPwd.Text;
string sql = "select * from tb_user where id='" + userName + "' and passwd='" + pwd + "'";
String url = ConfigurationManager.ConnectionStrings["csConnectionString"].ConnectionString;
DataSet dataSet = new DataSet("user");
using (SqlConnection connection = new SqlConnection(url))
{
connection.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, connection);
da.Fill(dataSet);
connection.Close();
}
if (dataSet.Tables[0].Rows.Count > 0)
{
Response.Write("<script>alert('login success');</script>");
}
else
{
Response.Write("<script>alert('login failed');</script>");
}
}
}
.net中数据适配器SqlDataAdapter 和数据集DataSet都不用关闭么?java中jdbc的Statement和ResultSet可都是要关的
终于捣鼓出来了
今帮一朋友做了个读取txt文件的代码,掌握不扎实啊,写这些还要多次查api帮助文档,呵呵呵
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test
{
public String readFile(String file)
{
String doc = null;
StringBuffer fileText = new StringBuffer();
FileInputStream infile;
try {
infile = new FileInputStream(file);
InputStreamReader in = new InputStreamReader(infile);
java.io.BufferedReader reader =new java.io.BufferedReader(in);
while((doc=reader.readLine()) !=null)
{
if(!doc.equals("") && !doc.substring(0,1).equals("#"))
fileText.append(doc+"\n");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch(IOException ie)
{
ie.printStackTrace();
}
return fileText.toString();
}
public static void main(String[] args)
{
String fileText = new Test().readFile("C://1.txt");
System.out.println("fileText:\n");
System.out.println(fileText);
}
}
1.txt文件
#Line1
J2SE
#cOMMENTS
J2EE
J2ME
输出
J2SE
J2EE
J2ME
从周五就开始捣鼓书生表单,今天有捣鼓了一天,想弄个练习出来,就是没出来,呵呵呵
总结一下遇到的异常
java.lang.IllegalArgumentException: Document base C:\Tomcat 5.5\webapps\应用名 does not exist or is not a readable directory
这样的错误应在是在tomcat的Tomcat 5.5\conf\Catalina\localhost目录下配置的针对该应用的连接池的xml文件,而在webapps中没有这个应用
org.apache.commons.configuration用来读取配置文件的jar包commons-configuration-1.1.jar
Castor是一种将Java对象和XML自动绑定的开源软件. 它可以在Java对象,XML文本,SQL数据表以及LDAP目录之间绑定.castor-0.9.5.jar
org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
安装字面意思是没有设置方言
<property name="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
org.hibernate.HibernateException: No CurrentSessionContext configured
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
tomcat不加,要在程序里写
总结一点错误,从google的搜索历史里摘出来的,呵呵,初感觉到搜索历史还是有用的哦。
培训,今天讲了一些润乾的api,哈哈,看出了一个用了命令模式,呵呵,感觉有点像.net里的一些名词,开发的工程师是不是以前搞.net的?!哈哈,下午老师把我讲的睡了又睡,结果旁边的同事忍不住了,哈哈,大家都出来了。
终于结束了两天的培训,坐公车真难受,让我纳闷的是两次回来坐的656空调车都刷了我4毛钱,而去坐的656不是空调车却刷了我6毛,难道空调车还要便宜一些?!哈哈,路上有人下车还说,坐这样的车真舒服。
明天
今天比较幸运,到了公司开始下雨了,呵呵,本打算坐公交的,想想公交那么挤又堵,还是骑车吧,就不信就这么倒霉半道上还下起来,哈哈,这次决策成功。
装了个vs.net2005,一年没弄过了,好陌生啊,好像跟2003还是有区别的,竟然找不到后台代码,郁闷。
培训
一大早跑去培训,中间堵车,堵死我了,一动不动,还好,才迟到了几分钟,中吃丽华快餐,基本知道了这个报表是怎么闹出来的了。
生憋,费劲,不写了。
a 14:12:16
啥叫泛型 听以前老师说过
b 14:11:48
List里面能装什么类型?
a 14:13:07
一个集合啊
b 14:14:56
是 ,集合里面可以装Object,Object是所有类的基类,所以可以往里装热河类型,你可以第一个元素装一个String,而第二个就放Integer,这是没问题的,而如果写成List<String> list = new ArrayList<String>();你就只能往list装入String,装入别的编译不过
a 14:17:09
是不是 泛型 的作用 就是要向 List里放一组 不同类型的数啊?
b 14:18:55
泛型就是一个限制作用,减少程序的错误,还可以提高性能,就好比你有个箱子,以前乱七八糟任何东西都可以放,现在你把他专门来装一种东西了
b 14:22:11
比如你传给我了个List参数,我从里面取值的时候,我不知道你里面放的什么,你告诉我放的String,我就按String做转换,而如果你偏偏有一个放了Integer,将来我这边就会报错,如果你用了泛型,你如果往里装Integer编译时就会报错,减少了运行错误,而我取出来的时候也不用转换了直接就是String ,提高了性能
a 14:23:58
明白了
今天,该hezhi和junzhuan的错误,总算是改完了
其中一个有趣的问题,就是用户要输入趋于2000个汉字,汉字啊,据说utf8编码一个汉字要3个字符,我说报的错误说我的字符数跟我输入的汉字数怎么也对不上关系呢,郁闷了我老半天
用的是oracle数据库
用普通的方法行不通
PreparedStatement pst = conn.prepareStatement("insert into table(name,book) values(?,?)");
pst.setString(1, "spring");
pst.setString(2,s);
pst.execute();
这么写报错: java.sql.SQLException: 数据大小超出此类型的最大值: 5606
5606是oracle判断的字符数
在网上查了以下,有高手说可能是oracle jdbc实现setString方法的原因
用字符流插入就行了
PreparedStatement pst = conn.prepareStatement("insert into table(name,book) values(?,?)");
pst.setString(1, "spring");
pst.setCharacterStream(2, new InputStreamReader(new ByteArrayInputStream(s.getBytes())), s.length());
pst.execute();
这样可以正常插入。
高兴...
可是好景不长,修改也用如此方法改之,记过又报错: java.sql.SQLException: ORA-01483: DATE 或 NUMBER 赋值变量的长度无效
我晕,在我本地机子上tomcat环境下运行是没有这种错误的,而部署到服务器上,服务器上是weblogic,就报这样的错误,修改失败,而 insert就没有错误,而且如果修改字符数较小的就能修改成功,如果修改较大的就会报错,之后不管修改什么样的,都会报错,闹鬼了,纳闷了,这是什么错 误啊,接着在网上查,高手建议把一个字符拆成两个代入
改成下面这样子
int length=book.length();
String s1="";
String s2="";
if(length>1000){
s1=book.substring(0,1000);
s2=book.substring(1000,length);
}else{
s1=book;
}
pstmt = conn.prepareStatement("update table set book=?||? "+
"where name=?");
pstmt.setString(1, s1);
pstmt.setString(2, s2);
pstmt.setInt(3, “spring”);
结果就成功了,嘿嘿,原来还有这种方法,这是oracle特有的么?呵呵对oracle不熟悉
而让人纳闷的是为什么在我的tomact下就没有这种错误呢,而insert的时候也没有错误啊。纳闷
昨天,昨天晚上回去不想写日志就没上来,一天半,基本上把junzhuan的四个页面的功能弄出来了,这都是自己写的,比hezhi改别人的东西顺唐多了,哈哈
研究了一下oracle的分页,早就听说oracle可以支持分页的查询,而sqlserver好像就没有这种功能,但一直也不知道oracle是怎么分页的,这次的做的这个功能有机会看到老系统人家是怎么实现了,研究了研究终于明白了
原来oracle每个表都有一个伪字段rownum,所谓伪字段,我的理解就是不是用户建的,也不用用户维护,还有个伪字段
rowid。
rownum是oracle在查询结果集的时候为每个记录顺序分配的,这样我们可以利用他来实现分页
但不能这样写select * from table where rownum > 1 and rownum < 5
因为已rownum做条件只能>0或者>负数
因为oracle在比较的时候,第一条记录rownum=1,1>1不成立,丢弃,下一条记录rownum=1,1>1不成立,以此类推,没有符合条件的记录
利用子查询实现分页
select * from (select rownum r,td.* from (select * from table) td) where r > 10 and r < 20
在这里rownum变成了一个结果集中的字段,根普通字段没什么两样,这样我们只要传入起至记录就可以分页啦,哈哈
呵呵,原来oracle分页是这么搞的,刚知道,嘿嘿,学习啦。