当前位置:编程学习 > JAVA >>

java 整型

我在mysql数据库里建了个表tb_article,有7栏,分别是TypeId,title,content,sdtime,create,info,count,出了typeid是整形,其他都是char型,我用语句 String sql="insert into tb_article values ( '-1','java.','java1,'2011年05月13日 18:45:27','原创','java2',0)"; db.executeUpdate(sql); 显示typeid的值不合法,我改成正数或0就可以了,为什么负值不能赋给typeid? } }
补充:Out of range value for column 'TypeId' at row 1
这是出错信息
追问:改了也没用啊,而且如果是引号的原因,那改成整数也不该有用
答案:可能是数据库中表中typeid的类型问题,你改为number行,再试一试。 
2楼说的也很有道理,我编程的时候,都没有这么写SQL,最好这样写insert into tb_article values(?,?,?....);// 有几个参数就有几个?;然后用PreparedStatement类得setInt(1,"value1");setString(2,"value2")...这样对很多数据就很好操作。
其他:你的SQL应该这么写
String sql="insert into tb_article values (
-1,'java.','java1,'2011年05月13日 18:45:27','原创','java2',0)";

把-1前后的单引号去了,就代表是数值了
加上引号代表是字符串,所以出错了 给你简单说一下char和varchar的区别,当给char赋值时,所添加的值小于你指定的长度,那么数据库会自动补齐剩余的长度,比如你设置的长度是10,而你赋值的长度只有5,那么剩下的5个数据库会自动填上空格来补齐;varchar就不一样了,你填什么值就是什么值,数据库不会补齐差值。你看看是不是这个原因造成的。 
把char换成varchar 关注。 楼上的你问题太多了,通不过编译。你想要的功能很简单,用不了那么复杂啊。
错误我就不给你指出了。
我给你写了一个,满足你的要求,而且考虑了健壮性
import java.io.*;
import java.util.Scanner;

public class zeng {
 public static void main(String args[]) {
  Scanner scanner = new Scanner(System.in);
  String numbers;
  System.out.println("请任意输入数字,以整型输出\t\n");
  while (true) {
   numbers = scanner.nextLine();
   try {
    long i=Integer.parseInt(numbers);
    System.out.println(numbers);
   } catch (NumberFormatException e) {
    // TODO 自动生成 catch 块
    System.out.println("你输入的不是一个整数,无法转换!");
   }
  }

 }

}

上一个:做java干什么的
下一个:Java问题,紧急!看图~

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,