2021-02-07 13:59

根据不同的数据源连接的数据库,去系统表里查指定的表是否存在就行了。波总给的demo是mysql怎么写,其他数据库按这个方法走就行了。

2021-02-04 16:23

image.png
这部分代码就是集成了shiro的。

2021-02-04 16:21

@molidaima 给你推荐看看jboot这个项目,海哥的开源项目,里面集成了这个气蛋玩意儿。看看他是咋玩的。

2021-02-04 13:06

换个说法,就是想拿现成的!

2021-01-30 13:45

应该是JDK版本太高。

2021-01-21 12:22

@SuperEric 有道理,没有最好的,只有最适合的。

2021-01-21 01:44

@JFinal,你说的有道理。因为我几乎很少依赖数据库的默认值,我一般设计库表结构的时候,如果有默认值,我会在数据字典里明确表明该字段有默认值,会要求程序员在写代码的时候,必须给该字段一个值,显示写到代码里,这样后期在换人接代码的时候,会比较容易理解,这只是个人习惯问题,所以就忽略你说的这种情况了。那么我这里的情况应该不是普遍情况,只是特例,所以,我这里就需要batchSave的时候,自己拼接sql语句和columns,然后调用batch方法了。就这么决定了。感谢波总的回复。不过,这个batchSave方法坑太大,估计不少人可能都会踩坑。按波总说的情况,如果batchSave方法里list参数的第一个元素的model字段是完整的,也就是设置了所有字段的值,但如果第二个model元素却有一个字段没设置值,并且这个字段也是有默认值的,那第二个元素保存到数据库里后该字段是不是也会被填充成null呢。
疑问是疑问,不过还是决定使用batch方法了。感谢波总会的关注和回复!

2021-01-20 13:57

方法可行,但没啥意义!既然一个进程可以崩,那其他进程同样可以崩。这种做法没啥意义。还是找三台实体机器吧。当然,如果你非要这么做,完全可以的。只是需要考虑的是web登录的session放在某个地方,例如redis里。

2021-01-20 13:54

@JFinal 生成的sql语句只是insert into table_x(id, x, y) values(?,?,?),然后后面具体跟什么数据,是根据list里的Model里的值决定的,如果list里某一个model里y没给值,那就放个null,给值了,就是用给的值。如果某个model里没给x值,但x字段又是必填的,那肯定是报错的,这就是写代码的人的问题了。其实我的想法就是在batchSave里自动拼接public int[] batch(String sql, String columns, List modelOrRecordList, int batchSize)这个函数的sql和columns这两个参数,然后调batch这个方法。不用每次都自己手动去写batch这个函数的前两个参数。

2021-01-19 18:39

这应该是jdbc驱动的问题吧。把date类型字段映射成java.time.LocalDateTime了,但生成的Model使用的是java.util.Date

2021-01-16 11:15

最简单的方法,就是用Record获取查询结果,然后使用record.getxxxx("字段名或则select的别名")获得查询结果值。

2021-01-15 16:48

删掉编译过的class,然后在开发环境下重新编译一次就行了。哪有那么麻烦

2021-01-12 18:54

@JFinal,我跟着追问一个问题,Db.each方法,如果提供的sql语句可能会命中几千万行数据,不会因为命中数据太多,而导致内存占用过多,或则引起OOM吧。如果是流的方式,那我正好可以把这个用法用在把数据库表里的数据导入到ignite里。