⑴ 写入数据为空
rs.open sql,conn,1,3
rs.addnew
rs("adpicurl")=adpicurl
rs("adtype")=adtype
rs("httpurl")=httpurl
rs.update
rs.close
就这段来看,没有错.
从你描述的操作来看,有两个可能:
1.是你的后面的代码有删除的操作.试想,你先加入了,又删除了,你的ID字段值不是就会变了吗?
2.你的那么变量没有值,也就是这些:
adpicurl
adtype
httpurl
都是空值来的.
找下其它地方的代码吧.
⑵ JPA枚举比较不等于失败问题,怎么解决
Enumerated提供了两种持久化枚举的方式,EnumType.ORDINAL和EnumType.STRING,但都有很大的局限性,让人很难选择,经常不能满足需求
EnumType.ORDINAL:按枚举的顺序保存数字
有一些我项目不能容忍的局限性,比如
1、顺序性 - java枚举的顺序从0开始递增,没法自己指定,我有些枚举并不是从0开始的,或者不是+1递增的,比如一些行业的标准代码。
2、旧数据可能不兼容,比如-1代表删除,映射不了
3、不健壮 - 项目那么多人开发,保不准一个猪队友往枚举中间加了一个值,那完了,数据库里的记录就要对不上了。数据错误没有异常,发现和排查比较困难
EnumType.STRING:保存枚举的值,也就是toString()的值
同样有局限性:
1、String类型,数据库定义的是int,即使override toString方法返回数字的String,JPA也保存不了
2、同样不适用旧数据,旧数据是int
3、不能改名,改了后数据库的记录映射不了
我对枚举需求其实很简单,1是保存int型,2是值可以自己指定,可惜默认的那两种都实现不了。
没办法,只能考虑在保存和取出的时候自己转换了,然后很容易就找到实体转换器AttributeConverter,可以自定义保存好取出时的数据转换,Yeah!(似乎)完美解决问题!
⑶ 插入mysql数据库,sql语句没错,每个字段都有值,但到插入到数据库后值为空。为什么
第一,在你的程序内SQL语句执行之前,把变量输出到控制台看看是否正确接收。
第二,如果正确接收变量,把SQL在dos界面运行下,到表里看看在不在。
⑷ jsp向mysql中插入数据 数据库中的记录为null
int
temp=stmt.executeUpdate("insert
into
db_need(textfield,region,field,textarea)
values('"+textfield+"','"+region+"','"+field+"','"+textarea+"')");
在这个之前
定义一个String
sql
=
("insert
into
db_need(textfield,region,field,textarea)
values('"+textfield+"','"+region+"','"+field+"','"+textarea+"')";
system.out.println(sql);
把打印出来的sql
直接去数据库上执行一次看看是否可以执行
如果可以
就说明是你在get
connection的时候出错
就在获取connectiion和statement这两个地方找错
如果sql不能执行的话
就是sql语句错误
⑸ jpa id为空 为什么还有对象
即使数据库表中的记录为空,jpa查询的结果也不是null,而是一个List列表对象数为空的列表。 你之所以查询结果为空,是因为使用hibernate(如果你是用hibernate作为jpa的实现框架的话)创建的service对象没有创建的缘故。
⑹ 能插入数据(验证过),但是select的结果为空,这是为什么啊数据库中有数据!!!
selec语句错了 没写form哪个表
select 【字段名】 form 【表名】 where 【限制条件】--where可省
⑺ c# 中,数据库取到的值,在枚举里为空怎么处理
两种处理方式。
1、在写sql的时候
select isnull([字段名],'') from ...
这样就会把null的变成“”
2、在给枚举赋值的时候,判断一下是不是为空,若为空填充默认值
⑻ 数据库字段设置可以为空,插入数据就会有"null”,怎么设置让它不为"null"
建表的时候,字段 not null default '';
记得采纳啊