haoxiaolan 2022-07-12 14:04 采纳率: 35.9%
浏览 19
已结题

jdbc java 字段类型


con = myutil.utilDbc();
     String sql = "insert into dept values(?,?,?)";
     pre = con.prepareStatement(sql);
     pre.setString(1,no);
    pre.setString(2,name);
    pre.setString(3,loc);
    int c = pre.executeUpdate();
数据库中的字段为 no(int) ,name(字符串),loc(字符串)

在java中写sql语句时 第一个?传入的值 是 字符串类型为什么也可以?

  • 写回答

2条回答 默认 最新

  • 於黾 2022-07-12 14:24
    关注

    别说在java中这样写可以
    你就是直接拼接一个sql,这样写
    insert into dept values('1','name','loc')也是没问题的
    到了数据库中,只要这个字符串能够转成int,就会自动转了
    sql是弱类型的语言,是解释性的,不提前编译,随时执行,各种类型之间自动隐式转换
    但是如果你字符串里放的不是个数字,比如放个'a',那就要报错了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月12日
  • 已采纳回答 7月12日
  • 创建了问题 7月12日

悬赏问题

  • ¥20 Windows 驱动开发版本疑问相关
  • ¥15 MAC 未能打开磁盘映像
  • ¥15 fastcap使用,二维导体输入问题
  • ¥15 hosts修改后不能访问
  • ¥15 关于化学反应速率C++编译问题/FLUENT
  • ¥20 Yolov5训练报错
  • ¥15 Unity发布gzip压缩的webgl之后让浏览器可以正常显示画面
  • ¥15 ASP.net Gridview插件数据更新失败问题
  • ¥15 有没有人知道这种提示怎么关?现在不做ts项目了不知道咋关了,求解,现在我以前的js项目都是这种提示了
  • ¥15 为什么mysql做了碎片化处理data_free还是很高