2016-07-19 10:01
@JFinal
List userList = new ArrayList();
userList.add(new User().set("userid","seq_user_id.nextval").set("username","jfinal"));
userList.add(new User().set("userid","seq_user_id.nextval").set("username","redis"));
Db.batchSave(userList ,2);试了一样的错。User类我没有用javaBean的set get(不喜欢,就是烦用那些get,set才用JFINAL的,但现在jfinal,又开始加入了baseBean,哎)
再有如你所说。要是DAO.set共享了。那只有一个User对象了。那也不会报错的。只会对数据库产生两个username=redis的记录。但我这个举例确实不该这么用
2016-07-19 09:36
例如:oracle表名:t_user pk:userid 自增序列名:seq_user_id 对应model:User
字段有:userid username
List userList = new ArrayList();
userList.add(User.DAO.set("userid","seq_user_id.nextval").set("username","jfinal"));
userList.add(User.DAO.set("userid","seq_user_id.nextval").set("username","redis"));
Db.batchSave(userList ,2);
////////////////////////
public class User extends Model {
private static final long serialVersionUID = 4827606126715970198L;
public static final User DAO = new User();
}
报错:
INFO - Sql: insert into t_user(username, userid) values(?, seq_user_id.nextval)
ERROR - com.jfinal.plugin.activerecord.ActiveRecordException: java.sql.SQLException: 无效的列索引
at com.jfinal.plugin.activerecord.DbPro.batch(DbPro.java:981)
at com.jfinal.plugin.activerecord.DbPro.batchSave(DbPro.java:1068)
at com.jfinal.plugin.activerecord.Db.batchSave(Db.java:546)
Sql语句只有一个问号。但batchSave(DbPro.java:1068)中columns="userid,username"
有两个字段,最终
pst.setObject(j + 1, value);两次。
是我哪里用法不对?
@JFinal