mysql书写格式:

字符串进行拼接:

例如:

1
2
3
4
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]");
if(StrKit.notBlank(Keywords)){
sql.append(and name like '%"+Keywords+"%'")
}

原则 :遇到变量直接进行拼接

使用jfinal引擎进行字符串的拼接

  1. 例如:
1
2
3
4
5
6
7
#namespace("wz.firm")//注册nameSpace
#include("wz/firm.sql")
详情请见文件:
GoodService
mall_goodsqls
使用json 解析 Record 为自己指定的对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   
public Page<KjjProjects> paginateAdminData(Integer pageNumber,Integer pageSize,Integer useId,String keywords,String project_current,String project_type){
Kv kv =Kv.by("table",table());
kv.setIfNotBlank("keywords",keywords);
kv.setIfNotBlank("project_current",project_current);
kv.setIfNotNull("project_type",project_type);
kv.setIfNotNull("useId",useId);
Db.getSqlPara("kjj.firm.paginateAdminList",kv));
}
List<Record> list = firmService.paginateAdminDataExcel(getSessionAdminUserId(), getKeywords(), get(
"project_current"), get("project_type"));
List<Excel_domain> list_excel = new ArrayList<>();
list.forEach(lists -> {
JSONObject jsonObject = JSONObject.parseObject(lists.toJson());
});
List<Record> list = Db.template("kjj.firm.paginateAdminList", kv).find();

纯service底层调用

  1. ``` 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);
    // 增加开始
  2. ``` java
    // 增加一个分页查询
    public Page getLists4(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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
   QueryRunner queryRunner = new QueryRunner();
List<Map<String, Object>> query1 = queryRunner.query(connection, sql, new MapListHandler(), params);
JSONObject transition;
// 下面两个字段会出现空值需要遍历拿出对应的值
for(Map<String,Object> map : query1){
Iterator<String> it = map.keySet().iterator();
transition = new JSONObject();
while(it.hasNext()){
String key = it.next();//迭代器取出key值
// 需要对时间进行转换
if (key.equals("STOP_DATE_TIME")||key.equals("START_DATE_TIME")){
try {
transition.put(key, DateUtil.me.formatString(map.get(key),"yyyy-MM-dd HH:mm:ss"));
} catch (ParseException e) {
e.printStackTrace();
}
} else
transition.put(key, map.get(key));
}
res.add(transition);
}