前端时间在.NetCore项目中使用SqlSugar ORM框架(引用sqlSugarCore依赖包)的时候遇到了一个奇葩问题:对表进行数据更新操作的时候,报错 “ You cannot have no primary key and no conditions ”,即没有主键和条件的报错. 由于当时采用的更新方式是UpdateColumns()+WhereColumns(),所以排除了没有条件的问题,定位问题:缺少主键. SqlSugar框架在初始化DB对象时,为我们提供了两种获取主键的方式:
一个自增长ID的对象被save或者persist后,会返回其主键ID: Department department = new Department(); department.setName("xxxxxxx"); session.persist(department); System.out.println("id = " + department2.getId()); Department department2 = new Department(); dep
网上搜了好多文章照着弄都返回不了主键给map, 实践证明要在传入的map参数里写回插入的主键,要这样写 <selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="col.id"> // keyProperty要指定为map参数的 名称.写回的键名 才行 SELECT SEQ_LOG.nextval AS id FROM DUA
public class Demo { public static void main(String[] args) { try { String sql="insert into person values(?,?)"; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn=DriverManager.getConnection("jdbc:sqlse