zoukankan      html  css  js  c++  java
  • 10月29日

    今天想做修改字段的功能,

    sql语句修改字段信息是这样的:

    alter table 表名称 change 字段原名称 字段新名称 字段类型 [是否允许非空]

    要实现这个功能需要将旧字段名称也传递过来,于是我需要在js中额外申明一个变量来存储这个旧的字段名称

    var oldname=data.zdname;

    下面是我根据sql语句写的dao层修改函数,
    public void gaizd(String tbname,String zdname,String zdkind,String zdlength,String kong,String zdcn,String oldname)
    {
    if(kong.equals("t")||kong.equals("T")||kong.equals("YES")){
    kong=" NULL";
    }else {
    kong=" NOT NULL";
    }
    String sql="";
    if(zdkind.equals("int")||zdkind.equals("double")){
    //准备sql语句,添加字段
    sql= "alter table "+tbname+" change column "+oldname+" "+zdname+" "+zdkind+kong+" comment '"+zdcn+"'" ;
    }else{
    sql= "alter table "+tbname+" change column "+oldname+" "+zdname+" "+zdkind+" ( "+zdlength+") "+kong+" comment '"+zdcn+"'" ;
    }
    System.out.println(sql);
    //获得链接对象
    Connection connection = Util.getConnection();
    PreparedStatement preparedStatement = null;//定义在try外用于在finally中释放,因为在try中是局部变量
    try {
    //创建语句传输对象
    preparedStatement = connection.prepareStatement(sql);
    preparedStatement.executeUpdate();//执行sql
    // System.out.println("1次");
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally {
    //关闭资源
    Util.close(preparedStatement);
    Util.close(connection);
    }


    在实际使用功能进行修改的时候报了sql错误,一个是Data truncation: Invalid use of NULL value,这个需要注意的是如果表中已经存进去数据,
    再将一个null字段改为Not Null 就是不可以的,会产生矛盾,因为有数据存在,就意味着允许null的字段的值如果是空就会插入NULL,但是当该字段类型
    修改not null 这个已经存在的NULL 就会产生冲突。

    还有一个错误是Data truncated for column,我百度查找的结果是说修改字段的长度要比原来的长度短,但是我后来尝试并没有这个限制,
    在修改了上述的错误之后这个错误也就没有了,所以我认为这是设置空值的关联问题,解决设置为空问题就可以了。

    学习时间:17:54到22:37

     
  • 相关阅读:
    数组作为方法参数时的一些意外情况
    pack://application:,,,/
    WPF 使用WinForm Chart控件
    WPF 后台绑定样式
    在转换为 UTC 时大于 DateTime.MaxValue 或小于 DateTime.MinValue 的 DateTime 值无法系列化为 JSON
    LINQ_to_SQL语法及实例大全
    C#编码好习惯,献给所有热爱c#的同学
    C#中OpenFileDialog的使用
    NET 2.0(C#)调用ffmpeg处理视频的方法
    SQLite Mysql 模糊查找(like)
  • 原文地址:https://www.cnblogs.com/buyaoya-pingdao/p/15487716.html
Copyright © 2011-2022 走看看