ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Jfinal数据库基本操作(三) 高级查询

2020-08-11 21:31:48  阅读:330  来源: 互联网

标签:name 数据库 parList sex addWhere sql Jfinal 基本操作 append


UserService类

//find类 第一个参数是sql语句,第二个参数是需要查询的关键字
public static UserModel findbyMobile(String mobile) {
String sql = "select * from user where mobile = ?";
return DAO.findFirst(sql, mobile);
}

public static List<UserModel> findbySex(int sex) {
String sql = "select * from user where sex = ?";
return DAO.find(sql,sex);
}

 

public static List<UserModel> find(Integer sex,String name,String address) {
StringBuffer sql = new StringBuffer("select * from user");
boolean addWhere = false;
List<Object> parList = new ArrayList<Object>();
if (sex !=null) {
if(addWhere == false) {
addWhere = true;
sql.append(" WHERE ");
}else {
sql.append(" AND ");
}
sql.append("sex = ? ");
parList.add(sex);

}
if (name !=null) {
if(addWhere == false) {
addWhere = true;
sql.append(" WHERE ");
}else {
sql.append(" AND ");
}
sql.append("name like ? ");
parList.add(name+"%");

}
if (address !=null) {
if(addWhere == false) {
addWhere = true;
sql.append(" WHERE ");
}else {
sql.append(" AND ");
}
sql.append(" address like ? ");
parList.add(address+"%");

}

return DAO.find(sql.toString(), parList.toArray());
}

 //使用封装方法查询

public static List<UserModel> find(Integer sex,String name,String address) {
StringBuffer sql = new StringBuffer("select * from user");
boolean addWhere = false;
List<Object> parList = new ArrayList<Object>();
addWhere = AppendFiled(sex, "sex",sql, addWhere, parList);
addWhere = AppendLike(name, "name",sql, addWhere, parList);
addWhere = AppendLike(address, "address",sql, addWhere, parList);


return DAO.find(sql.toString(), parList.toArray());
}

private static boolean AppendLike(String name, String filed,StringBuffer sql, boolean addWhere, List<Object> parList) {
if (name !=null) {
if(addWhere == false) {
addWhere = true;
sql.append(" WHERE ");
}else {
sql.append(" AND ");
}
sql.append(filed+" like ? ");
parList.add(name+"%");

}
return addWhere;
}

private static boolean AppendFiled(Integer sex,String filed, StringBuffer sql, boolean addWhere, List<Object> parList) {
if (sex !=null) {
if(addWhere == false) {
addWhere = true;
sql.append(" WHERE ");
}else {
sql.append(" AND ");
}
sql.append(filed+" = ? ");
parList.add(sex);

}
return addWhere;
}

 

 

 UserController类

public void action2() {
// UserModel user = UserService.findbyMobile("123456789");
// renderText("name:"+user.getStr("name"));

List<UserModel> user1 = UserService.findbySex(1);
for (UserModel u : user1) {
System.out.println("name:"+ u.getStr("name"));
}
renderText(">>>>OK>>>");
}

 

List<UserModel> user2 = UserService.find(null, "h", "广");

for (UserModel u : user2) {
System.out.println("name:"+ u.getStr("name"));
}
renderText(">>>>OK>>>");

 

标签:name,数据库,parList,sex,addWhere,sql,Jfinal,基本操作,append
来源: https://www.cnblogs.com/Mortty/p/13378604.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有