起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3704|回复: 10

[结贴] 用bassdata无法往MySQL数据库添加数据

[复制链接]

3

主题

10

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
QQ
发表于 2017-8-24 10:04:50 | 显示全部楼层 |阅读模式
var name = this.comp("input1").val();
                var psw = this.comp("input2").val();
                var fid = justep.UUID.createUUID();
                var data = this.comp("baasData1");
                data.add({
                                "fID" : fid,
                                "fname" : name,
                                "fpsw" : psw,
                                "fpsws" : psw
                });
                 data.saveData();
                data.refreshData();

88

主题

464

帖子

763

积分

高级会员

Rank: 4

积分
763
QQ
发表于 2017-8-24 10:11:29 | 显示全部楼层
本帖最后由 q2045377 于 2017-8-24 10:12 编辑

报错信息贴出来  不然怎么知道哈
add我没用过    一般都是 newData  看记事本detail案例
回复 支持 反对

使用道具 举报

3

主题

10

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
QQ
 楼主| 发表于 2017-8-24 10:38:08 | 显示全部楼层
q2045377 发表于 2017-8-24 10:11
报错信息贴出来  不然怎么知道哈
add我没用过    一般都是 newData  看记事本detail案例
...

没有报错,但是查数据库,没有添加进去
回复 支持 反对

使用道具 举报

3

主题

10

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
QQ
 楼主| 发表于 2017-8-24 10:43:04 | 显示全部楼层
阿安 发表于 2017-8-24 10:38
没有报错,但是查数据库,没有添加进去

用newdata就会报错,麻烦帮忙看看,com.mysql.jdbc.JDBC4PreparedStatement@c8f9e4: INSERT INTO login (fid,fname,fpsw,fpsws)  VALUES (null,'1','1','1')
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'fid' cannot be null
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:400)
        at com.mysql.jdbc.Util.getInstance(Util.java:383)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2447)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2594)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1901)
        at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1193)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
        at com.justep.baas.data.DataUtils.saveData(Unknown Source)
        at com.justep.baas.data.DataUtils.saveData(Unknown Source)
        at com.justep.baas.action.CRUD.save(Unknown Source)
        at shitang.Shitang__do.saveLogin(Shitang__do.java:75)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
2017-08-24 10:41:03 Action[shitang/shitang/saveLogin]执行失败,SQL执行失败,com.mysql.jdbc.JDBC4PreparedStatement@c8f9e4: INSERT INTO login (fid,fname,fpsw,fpsws)  VALUES (null,'1','1','1')
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
Caused by: com.justep.baas.data.sql.SQLException: SQL执行失败,com.mysql.jdbc.JDBC4PreparedStatement@c8f9e4: INSERT INTO login (fid,fname,fpsw,fpsws)  VALUES (null,'1','1','1')
        at com.justep.baas.data.DataUtils.saveData(Unknown Source)
        at com.justep.baas.data.DataUtils.saveData(Unknown Source)
        at com.justep.baas.action.CRUD.save(Unknown Source)
        at shitang.Shitang__do.saveLogin(Shitang__do.java:75)
        ... 20 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'fid' cannot be null
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:400)
        at com.mysql.jdbc.Util.getInstance(Util.java:383)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2447)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2594)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1901)
        at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1193)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
        ... 24 more
com.justep.baas.action.ActionException: Action[shitang/shitang/saveLogin]执行失败,SQL执行失败,com.mysql.jdbc.JDBC4PreparedStatement@c8f9e4: INSERT INTO login (fid,fname,fpsw,fpsws)  VALUES (null,'1','1','1')


回复 支持 反对

使用道具 举报

88

主题

464

帖子

763

积分

高级会员

Rank: 4

积分
763
QQ
发表于 2017-8-24 14:15:19 | 显示全部楼层
阿安 发表于 2017-8-24 10:43
用newdata就会报错,麻烦帮忙看看,com.mysql.jdbc.JDBC4PreparedStatement@c8f9e4: INSERT INTO login ...

fId为空
回复 支持 反对

使用道具 举报

3

主题

10

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
QQ
 楼主| 发表于 2017-8-24 18:21:31 | 显示全部楼层

断点调试过,fid是有值的,不知道为什么到SQL语句了就为空
回复 支持 反对

使用道具 举报

88

主题

464

帖子

763

积分

高级会员

Rank: 4

积分
763
QQ
发表于 2017-8-24 19:31:37 | 显示全部楼层
阿安 发表于 2017-8-24 18:21
断点调试过,fid是有值的,不知道为什么到SQL语句了就为空

先设置fid=1,,再调试下  看看错误
回复 支持 反对

使用道具 举报

3

主题

10

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
QQ
 楼主| 发表于 2017-8-25 10:27:03 | 显示全部楼层
q2045377 发表于 2017-8-24 19:31
先设置fid=1,,再调试下  看看错误

写死了也是为null,很奇怪
回复 支持 反对

使用道具 举报

15

主题

68

帖子

203

积分

中级会员

Rank: 3Rank: 3

积分
203
QQ
发表于 2017-8-25 11:06:17 | 显示全部楼层
你查看下你的fid跟你的数据库主键ID是否一致,或者有没有在其他地方给主键ID设定了另外的自定义名称。可以考虑试试baasData其他的方式存放数据。例如:        var userData = this.comp("userData"); userData.filters.setVar("username", ''username");
回复 支持 反对

使用道具 举报

3

主题

10

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
QQ
 楼主| 发表于 2017-8-25 11:33:59 | 显示全部楼层
阿安 发表于 2017-8-25 10:27
写死了也是为null,很奇怪

找到原因了,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-26 05:23 , Processed in 0.067988 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表