j2EE+mysql的一点总结

   最近弄j2ee,有几个问题总结了一下:

1:关于包的问题,我做了个sh的项目,发现就是没效果,出现这样的错误

%%%%?Error?Creating?SessionFactory?%%%%

我想任何一个做j2ee开发的兄弟都会遇到过,我想说的是我发了一天的时间来google,发现这种问题很多都是说下载个最新的包就可以了,那个包commons-collections-xx.jar,结果我下了后发现还是有问题,问题一样的出现,郁闷了,后来发现有的兄弟是说还要下个新的包

Commons-beanutils-xx.jar

奇迹就是这样的产生了,好了!如果你自己觉得你的程序没问题,就把这两个包下了最新版本的,那么你就不会出错了……

 

2:关于mysql的外键映射问题。

外键定义服从下列情况:所有tables必须是InnoDB型,它们不能是临时表。还有我发现那个mysql的辅助工具很不好用,还不如自己写成sql语句后运行还好一点

create table basesite

(

id int not null primary key auto_increment,

introduce varchar(100)

) TYPE=INNODB;

create table othersite

(

id int not null primary key auto_increment,

basesiteid int,

introduce varchar(100),

foreign key(basesiteid) references basesite(id)

 ON DELETE CASCADE

 ON UPDATE CASCADE

) type=innodb;这样两个之间的关系就做好了,然后用Hibernate的时候可以自己自动的生成相应的映射关系哦!

 

3: 如何编译资源文件

native2ascii是sun java sdk提供的一个工具。用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。为什么要进行转码,原因在于程序的国际化。

用法:native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]

-[options]:表示命令开关,有两个选项可供选择

-reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。

-encoding encoding_name:转换为指定编码,encoding_name为编码名称。

[inputfile [outputfile]]

inputfile:表示输入文件全名。

outputfile:输出文件名。如果缺少此参数,将输出到控制台

举例如下

C:program file"java"jdk1.6.0"bin"native2ascii a.properties b.properties

 

4: java.lang.NullPointerException的原因:

在java中虽然号称抛弃了C++中不安全的指针,但其实他所有的东西你都可以理解为指针。这种情况一般发生在你使用了一个对象实例(其实是一个类指针)来调用它的成员函数,但这个实例却为null。

建议先检查一下你的SQL是不是有问题,然后看你的逻辑是不是有问题

主要有以下几种原因:

1、使用了未初始化的变量(虽然已经声明)

2、使用了未初始化的对象(虽然已经声明)

3,使用了关键字或已存在的类名作变量对象方法或类名。

具体如下

1字符串变量未初始化;

2接口类型的对象没有用具体的类初始化,比如:

List lt;会报错

List lt = new ArrayList();则不会报错了

3当一个对象的值为空时,你没有判断为空的情况。

你可以试着把下面的代码前加一行代码:

if(rb!=null && rb!="")

改成:

if(rb==null);

if(rb!==null&&rb!="")

posted on 2008-10-29 10:55  小顾问  阅读(960)  评论(0编辑  收藏  举报