java数据类型转换!(50分)

D

dhyzf

Unregistered / Unconfirmed
GUEST, unregistred user!
java中类型转换:
String转换为int,datetime,float。。
最好能有一个实际的例子,现在正在做毕业设计。。
有好多问题不懂。
我从一个日志文件中读出一些记录,后存入数据库。。
从文本文件中读出来的为String,而在数据库中则有其它类型的数据存在。
请问应如何解决!
谢谢!
 
//字符串与其它数据类型的转换
Boolean getBoolean(String str) // 将字符串str转成布尔值
Byte.parseByte(String str)
Short.parseShort(String str)
Integer.parseInt(String str)
Long.parseLong(String str)
Float.parseFloat(String str)
Double.parseDouble(String str)
String.valueOf(Value) // 将各种数据类型的value转换成字符串
//例如
int value=100;
str2 = String.valueOf(value);
// 将 value 的数据类型转换成字符串 str2
int i=Integer.parseInt(str2);
// 将 字符串 str2转换成 int
 
我在连接数据库的时候,传递中文会出现乱码!!
只有中文会,其余则不会,请问这是什么问题,以下是我的源码。
select.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java" %>
<HTML>
<head>
<title>欢迎来到数据库查询页面</title>
</head>
<body>
<form action=selecdb.jsp method=post>
<input type="text" name="U_Name">
<input type="submit" value="发送">
</form>
</body>
selecdb.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>欢迎来到JSP数据库插入页面</title>
<META http-equiv="Content-Type" content="text/html;
charset=GB2312">
</head>
<%!
String DriverName,DBName,query,Name,Pwd;
Connection conn;
Statement stmt;
ResultSet rs;
%>
<% DriverName="sun.jdbc.odbc.JdbcOdbcDriver";
DBName="jdbc:eek:dbc:userdb";
Class.forName(DriverName);
conn=DriverManager.getConnection(DBName,"","");
stmt=conn.createStatement();
Name=request.getParameter("U_Name");
out.println(Name+"<BR>");
query="select * from User where UserName='"+Name.trim()+"'";
out.println(query);
rs=stmt.executeQuery(query);
%>
<br>
<%
out.println("一切都好!"+"<BR>");
if(rs!=null){
while(rs.next())
{
String UserName=rs.getString("UserName");
String Pwd=rs.getString("UserPwd");
out.println("用户名:"+UserName+"<BR>");
out.println(" 密码:"+Pwd+"<BR>");
}
}
rs.close();
stmt.close();
conn.close();
%>
<body>
</body>
</html>
在IE中出现:
??????
select * from User where UserName='??????'
一切都好!a
 
selecdb.jsp的开头加入下面的试试:
<%@ page language="java" contentType="text/html;charset=GB2312" %>
<% request.setCharacterEncoding("gb2312");
%>
 
谢谢,我试试
我还有些问题:
我想向数据库中添加一些记录,后看看是否已正确添加,请问应该怎么做?
ResultSet rs=(Statement)stmt.executeQuery("insert into
User(U_Name,U_Pwd) values('lover','123456')");
就出现如下错误码:
Internal Servlet Error:
javax.servlet.ServletException: No ResultSet was produced
Root cause:
java.sql.SQLException: No ResultSet was produced
请问接着可以这样写吗?
rs.close;
rs=stmt.execute("select U_Name,U_Pwd from User");
if(rs!=null){
while(rs.next()){
out.println("用户名:"+rs.getString(U_Name)+"<BR>");
out.println("用户密码:"+rs.getString(U_Pwd)+"<BR>");
}
rs.close();
}
能帮我看看吗?顺便问一下,NullPointException是什么意思呢?
 
顺便再问一下,我机器配置:c466,m384。。
win2000 advance server+tomcat+apache
为什么连接数一多,就会出现严重资源不足,cpu的使用率都是100%其中java
就占了90%以上,请问如何可以调整性能 呢?
谢谢!
 
没办法调整性能,JAVA就是这样。
我是p4,128M还慢得要死呢!
 
1、你光executeQuery就可以了,不要赋值给rs
2、NullPointException一般是对象没用创建,或者是空值
 
另外非select命令也可以使用 executeUpdate ,而不必用 executeQuery
 
谢谢大家
请问有没有把这种格式的String转换为日期类型的呢。。。
String:Fri Mar 1 08:23:01 2002
String:2002-2-12, 0:00:30
以上两种格式都要转换为日期型。。
挺急的。大家指教!
 
下面可以解决第一个格式
java.util.Date d=new java.util.Date(java.util.Date.parse("Fri Mar 1 08:23:01 2002"));
java.lang.System.out.println(d.toString());
 
第二种有谁知道呢?
 
写个函数取出各个部分,组合起来
 
第2种也有了:
import java.text.*;
import java.util.*;
try
{
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-M-d,H:m:s");
Date d = formatter.parse("2002-2-12, 0:00:30");
java.lang.System.out.println(d.toString());
}
catch(Exception e)
{
java.lang.System.out.println(e.toString());
}
 
Pipi.简直是太酷了,现学现卖:)
 
等米下锅,快给分
第2种方法可以推广到转换所有格式
 
中文问题跟你的数据库驱动有关.
 
ok怎么还不给分呀,等得花儿也谢了
 
第一种类型转成日期型后,日期型需要插入数据库中,却出现了:
驱动程序语法错误,丢失操作符在表达式Fri Mar 1 08:23:01 CST 2002
我想应该是这个CST的问题吧!
是不是我的插入数据库语句有问题呢。。。
insert into p_log(p_date) values(new Date.parse(String))
第二种类型PiPi你提供的方法都不能使用。是怎么一回事呢
我看了一下Date的定义函数,发现Date有四种类型的定义函数,其中Date(int,int,int,int,int,int),我想第二个倒不难解决,可是提示说现在已经不提倡使用这种构造方法了!并且还会出现那个CST,提供源代码如下date.java:(用个循环会比较简单些)
import java.util.Date;
public class date
{
public static void main(String[] args)
{
Sting t_time="2002-1-1,12:12:12";
int index=t_time.indexOf("-");
int year=Integer.parseInt(t_time.substring(0,index).trim());
t_time=t_time.substring(index+1);
index=t_time.indexOf("-");
int month=Integer.parseInt(t_time.substring(0,index).trim());
t_time=t_time.substring(index+1);
index=t_time.indexOf(",");
int day=Integer.parseInt(t_time.substring(0,index).trim());
t_time=t_time.substring(index+1);
index=t_time.indexOf(":");
int hour=Integer.parseInt(t_time.substring(0,index).trim());
t_time=t_time.substring(index+1);
index=t_time.indexOf(":");
int min=Integer.parseInt(t_time.substring(0,index).trim());
t_time=t_time.substring(index+1);
int sec=Integer.parseInt(t_time.trim());
Date d_date=new Date(year,month,day,hour,min,sec);
System.out.println("Date:"+d_date);
}
}

请问遇见这种情况应该如何解决呢。。。
还得麻烦你老人家!怎样可以把分给你我还能问你问题呢。。。
用QQ好吗。。我的:9956404
 
顶部