JFinal、Jbolt学习
mysql书写格式:
字符串进行拼接:
例如:
1 | StringBuffer sql =sql.append(" (select row_number() over(order by ID asc) as rownumber,ID, PATIENT_ID,BED_NO,NAME, SATUS ,PATIENT_CONDITION,NURSING_CLASS,DEPT_CODE from [pyyzyy].[dbo].[VIEW_TDNIS_PATS_IN_HOSPITAL]"); |
原则 :遇到变量直接进行拼接
使用jfinal引擎进行字符串的拼接
- 例如:
1 | #namespace("wz.firm")//注册nameSpace |
1 |
|
纯service底层调用
``` java
//1、自己利用参数条件 拼接完整的sql语句 进行分页查询 调用的是jfinal底层分页方法 //2、写一个完整的sql模板 在这里调用 传入参数即可 //3、使用JBolt平台提供的Sql.java工具类 完成复杂sql Sql sql=selectSql(); //关键词模糊条件查询 like sql.like("name", keywords); //时间段 sql.ge("create_time", toStartTime(startTime)); sql.le("create_time", toEndTime(endTime)); //排序 id desc // sql.orderById(true); // 使用sortColumn和SortType去查询并排序 sql.orderBy(sortColumn, sortType); //执行调用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2. ``` java
// 增加一个分页查询
public List <Demotable> getLists3(String key,boolean enable,String orderColumns,String orderType,Date startTime ,Date endTime){
// kv使用方式一:
// Kv paras =Kv.create();
// paras.set("enable",enable);
// paras.setIfNotBlank("name",columnLike(key));
// 使用方式二:链式他、调用
// Kv.by("enable",enable).setIfNotBlank("name",columnLike(key)).setIfNotNull("create_time>=" ,toStartTime(startTime)).setIfNotNull("create_time<=",toEndTime(endTime));
// 使用字符串的拼接进行调用
// StringBuilder sql = new StringBuilder();
// sql.append("select ").append("from jb_demotable where enable = ?");
// if(StrKit.notBlank(key)){
// sql.append("and name like '% ").append( key).append("%'");
// }
// return getCommonList(paras);
// 模糊查询
// return getCommonList(Kv.by("enable",enable).setIfNotBlank("name",columnLike(key)));
// 增加排序的字段
return getCommonList ("id,name, age ,sex ", Kv.by("enable",enable).setIfNotBlank("name",columnLike(key)).setIfNotNull("create_time>=" ,toStartTime(startTime)).setIfNotNull("create_time<=",toEndTime(endTime))
,orderColumns,orderType,true);
// 增加开始``` java
// 增加一个分页查询
public PagegetLists4(String key,boolean enable,String orderColumns,String orderType,Date startTime ,Date endTime,int pageNumber ,int pageSize){
// kv使用方式一:Kv paras =Kv.create(); paras.set("enable",enable); paras.setIfNotBlank("name",columnLike(key));
// 使用方式二:链式他、调用
// Kv.by(“enable”,enable).setIfNotBlank(“name”,columnLike(key)).setIfNotNull(“create_time>=” ,toStartTime(startTime)).setIfNotNull(“create_time<=”,toEndTime(endTime));// 使用字符串的拼接进行调用
// StringBuilder sql = new StringBuilder();
// sql.append(“select “).append(“from jb_demotable where enable = ?”);
// if(StrKit.notBlank(key)){
// sql.append(“and name like ‘% “).append( key).append(“%’”);
// }
// return getCommonList(paras);
// 模糊查询
// return getCommonList(Kv.by(“enable”,enable).setIfNotBlank(“name”,columnLike(key)));
// 增加排序的字段
// return getCommonList (“id,name, age ,sex “, Kv.by(“enable”,enable).setIfNotBlank(“name”,columnLike(key)).setIfNotNull(“create_time>=” ,toStartTime(startTime)).setIfNotNull(“create_time<=”,toEndTime(endTime))
// ,orderColumns,orderType);
// 增加开始时间与结束时间进行查询return paginate(paras,orderColumns,orderType,pageNumber,pageSize,true);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
## JAVA + Service底层封装
```java
public List<Record> getLists5(String key, boolean enable, String orderColumns, String orderType, int pageNumber, int pageSize) {
Sql sql = ..select("id,name").from("table","xxx").eqQM("enable").likeMulti(key, "name").likeMulti(key, "name ", "remark").page(pageNumber, pageSize);
sql.in("user_id",1,2,3);
sql.leftJoin("jb_user","jbu","jbu.id == xxx.user_ud");
return findRecord(sql.toSql());
// 增加开始时间与结束时间进行查询
}
1 | Sql sql = selectSql().eq("user_id", Integer.valueOf(userId)).and().eq("is_del", 0).and().likeMulti(keyword, "title", "content"); |
jfinal事务管理:
1 | return false或者有异常抛出都会回滚事务,return true才会提交事务,Db.tx()方法是有返回值true/false,可对该返回值作业返回,如果想让run方法中往外层传递变量,可以在外层定义一个final修饰的容器类对象。 |
文件上传:
[(3条消息) JFinal文件上传下载_Hello World 的博客-CSDN博客_jfinal下载文件](https://blog.csdn.net/qq_34450769/article/details/53579302#:~:text=JFinal文件上传与struts有不同之处,struts是将上传的文件先缓存到临时目录中,然后让开发者处理,通常是将文件移动或copy,而JFinal采用更加高效的方式,可以在上传后直接保存到目标目录下。 总结JFinal处理文件上传,只需两件事:一是将cos-26Dec2008.jar包引入,二是在Controller中调用getFile或getFiles方法. 上传上去的文件名在html 页面中的
上传文件路径处理:
(3条消息) jfinal文件上传路径问题的处理_ohaozy的专栏-CSDN博客
[(3条消息) JFinal文件上传下载_Hello World 的博客-CSDN博客_jfinal下载文件](https://blog.csdn.net/qq_34450769/article/details/53579302#:~:text=JFinal文件上传与struts有不同之处,struts是将上传的文件先缓存到临时目录中,然后让开发者处理,通常是将文件移动或copy,而JFinal采用更加高效的方式,可以在上传后直接保存到目标目录下。 总结JFinal处理文件上传,只需两件事:一是将cos-26Dec2008.jar包引入,二是在Controller中调用getFile或getFiles方法. 上传上去的文件名在html 页面中的
文件移动处理:
(3条消息) Java File中renameTo的介绍和使用说明_阿飞云-CSDN博客_file.renameto
QueryRunner使用:
1 | QueryRunner queryRunner = new QueryRunner(); |