为两个问题烦恼中,1个50分哈~

fellow99 2004-08-30 10:08:09
1.jdbc中
添加一个记录后,我想马上取得新增记录中的某些字段值,例如ID、即时生成的日期等等
怎么办呢,hibernate是可以的,那么jdbc也应该可以阿

2.有没有字符集编码转换的类呢,原因是这样子的:
如果一个页面的字符集是gbk,那么提交的form的东西也是gbk的,那在utf-8的页面中就看不到东西了,反过来也一样。而且同一个中文字gbk跟utf-8编码是不同的,也就是说数据库中用gbk“我们”的查找,是查不出其他编码的“我们”的
当然用统一的编码是最好的,但是现在我就是有这个需求,有什么解决方案呢
...全文
93 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mor 2004-08-30
"SELECT @@IDENTITY" 用来取得上一次INSERT中最后一个(如果是批量的插入)生成的ID
M$ SQL Server
  • 打赏
  • 举报
回复
shangqiao 2004-08-30
假如你的JDBC驱动是3.0的话,那么在Statement里面有方法;getGenerateKeys可以返回自动生成的主键
  • 打赏
  • 举报
回复
HITZXL 2004-08-30
这里是处理乱码问题的一篇文章,希望对你有帮助:
java中文乱码的解决

文章类别:jsp加入时间:2003-7-22 人气指数:3700

在基于JAVA的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号。
这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题。以前我也经常为这个问题而苦恼,后来经查了些资料,终于解决了,我知道一定有很多朋友也会碰到这个问题,所以特就总结了一下,来拿出来让大家一起分享了。
1、在网页中输出中文。
JAVA在网络传输中使用的编码是"ISO-8859-1",故在输出时需要进行转化,如:
String str="中文";
str=new String(str.getBytes("GB2312"),"8859_1");
但如果在编译程序时,使用的编码是“GB2312”,且在中文平台上运行此程序,不会出现此问题,一定要注意。
2、从参数中读取中文
这正好与在网页中输出相反如:
str=new String(str.getBytes("8859_1"),"GB2312");
3、操作DB中的中文问题
一个较简单的方法是:在“控制面扳”中,把“区域”设置为“英语(美国)”。如果还会出现乱码,还可进行如下设置:
取中文时:str=new String(str.getBytes("GB2312"));
向DB中输入中文:str=new String(str.getBytes("ISO-8859-1"));

4、在JSP中的中文解决:

在“控制面扳”中,把“区域”设置为“英语(美国)”.
在JSP页面中加入:
如果还不行正常显示,则还要进行下面的转换:
如:name=new String(name.getBytes("ISO-8859-1"),"GBK");
就不会出现中文问题了。
  • 打赏
  • 举报
回复
HITZXL 2004-08-30
1.新增完数据后,马上提交(commit),就可以取得新增记录中任何字段的值;
2.统一编码的话,可以去百度去搜索,编码 过滤器
字符集转换有方法,等我给你找找
  • 打赏
  • 举报
回复
hbzyduwu 2004-08-30
1.这个问题,我的解决办法是:
String sql= "SELECT ID FROM companyusr ORDER BY ID DESC LIMIT";//这里的sql语句可以根据数据库来写,比如mssql,SELECT Top 1 ID FROM table ORDER BY ID DESC
ResultSet rs = stmt.executeQuery(sql); 然后返回这个rs.
我用过php(my.lastInsertid()和asp几乎也都有相应的功能来应付这个问题。我相信有更好的办法来解决,可能还不知道~:(
不过现在我已经把它封装成内固定的方法,用起来也很简单了。

2.Tomcat 4.0以上的版本
在4.0以后的版本,已经不需要象3.23版本中使用字符转换函数:

(1)编译javabean时 javac 命令行加上-encoding ISO8859_1

(2)在Jsp头部中加入<%@ page contentType="text/html;charset=ISO8859_1" %>

是不是很简单? 使用本办法基本可以对付实际应用,推荐!

但也有一个缺点是,通过form表单get参数;或在url后附带中文,这个办法就失效,我相信应该有办法解决.

该办法原理就是在java的各个环节统一编码为:ISO8859_1.

修改tomcat
该办法是一位网友在论坛贴出的,我没有试验,转载于此:

只要修改一个地方就行了,文件为:
tomcat4/src/catalina/src/share/org/apache/catalina/connector/HttpReque
stBase.java
找到protected void parseParameters()方法,把
if (encoding == null)
encoding = "ISO-8859-1";
改为
if (encoding == null)
encoding = "GBK";
编译:
解开jakarta-servletapi-4的原码包,找到servlet.jar文件设置到CLASSPATH
找到tomcat4.0.1的bin包将catalina.jar设置到CLASSPATH.
因为编译时要使用这些api.
然后javac HttpRequestBase.java生成两个class文件.
解开catalina.jar jar xvf catalina.jar(tomcat bin包中的)
覆盖调原来的两个class文件:
jar cvf catalina.jar org
即可
  • 打赏
  • 举报
回复
fellow99 2004-08-30
冲得太快了吧
up一个
  • 打赏
  • 举报
回复
fellow99 2004-08-30
问题基本知道出在什么地方了,谢谢哈
  • 打赏
  • 举报
回复
yangzuyu12 2004-08-30
select max(id)
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-08-30 10:08
社区公告
暂无公告