2021-04-25 09:47
1:是根据sql的select来确定对象里面有什么属性,和model中的setget没有关系。这个是JF的特性,一般用于连表查询,字段就会多出来的。所以是正常的。
2:返回的user只保留model中的那些字段,这个model中有方法的:
keep(String attr) //保留
keep(String... attrs)//保留多个
remove(String attr)//移出不要的
remove(String... attrs)//移出多个不要的
List需要遍历处理。可自建一个小工具类,进行批量处理。
3:batchSave时报错,这个是业务代码中有错误用法了,batchSave前肯定操作了model,
对本次返回的model操作时不能全部用set,因为你这里有部分字段并非user表的,
需要使用setOrPut(String attrOrNot, Object value),这个里面会自动判断是否需要写库。同时要注意batchSave会取第一条的set过的字段作为拼接SQL的字段,所以本次list中的model都需要是同样字段的操作,不然执行结果并非你想象的样子。
2021-04-23 10:53
@张先生的jfinal DataSource是用来获取getConnection()的,至于内部是不是实现了连接池功能或是临时创建的Connection对象,这个是MyDataSource自己的事情。
看反馈内容:既然JF自带的DruidPlugin + Sqlite3Dialect不能连接,想自己创建Connection,那自然是自定义 DataSource了,可以先看看源码。
另外是不是可以先解密sqlite文件,再DruidPlugin + Sqlite3Dialect连接了?
我对sqlite操作不熟悉,不知道是不是有成熟的访问加密sqlite文件的工具了?
PS:附上一段伪代码:)
MyDataSource implements DataSource{
static {Class.forName("org.sqlite.JDBC");}
public Connection getConnection() throws SQLException {
return DriverManager.getConnection("jdbc:sqlite:test.db");
}
}
2021-04-22 11:14
@Moonights 纠正一下,HTTP请求也是后端的哦!
https://www.runoob.com/http/http-messages.html
2021-04-10 14:50
PS:构造器有:
RedisPlugin(String cacheName, String host)
RedisPlugin(String cacheName, String host, String password)
RedisPlugin(String cacheName, String host, int port)
RedisPlugin(String cacheName, String host, int port, String password)
RedisPlugin(String cacheName, String host, int port, int timeout)
RedisPlugin(String cacheName, String host, int port, int timeout, String password)
RedisPlugin(String cacheName, String host, int port, int timeout, String password, int database)
RedisPlugin(String cacheName, String host, int port, int timeout, String password, int database, String clientName)