package edu.taru.common.base;
import java.util.ArrayList;
import java.util.List;
import org.nutz.castor.Castors;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Condition;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.entity.Entity;
import org.nutz.dao.entity.MappingField;
import org.nutz.dao.entity.Record;
import org.nutz.dao.pager.Pager;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpression;
import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
@IocBean
public class BasicDao {
@Inject
protected Dao dao;
public <T> Entity<T> getEntity(Class<T> c){
Entity<T> entity = dao.getEntity(c);
return entity;
}
/**
* 根据Id删除数据
* @param <T>
* @param id 持久化Id
* @return true 成功删除一条数据,false删除失败
*/
public <T> boolean delById(int id,Class<T> c){
return dao.delete(c, id)==1;
}
/**
* 根据条件删除
* @param c
* @param condition
* @return
*/
public <T> int delByCnd(Class<T> c, Condition condition){
return dao.clear(c, condition);
}
/**
* 根据ID查询一个对象
* @param <T>
* @param id 持久化Id
* @param c 要查询的表
* @return 查询到的对象
*/
public <T> T find(Class<T> c,int id){
return dao.fetch(c, id);
}
public <T> T find(Class<T> c,String id){
return dao.fetch(c, id);
}
/**
* 查询数据库中的全部数据
* @param <T>
* @param c 查询的表
* @param orderby desc 排序的条件
* @return List
*/
public <T> List<T> search(Class<T> c,String orderby){
return dao.query(c, Cnd.orderBy().desc(orderby), null);
}
/**
* 根据条件查询数据库中满足条件的数据
* @param <T>
* @param c
* @param condition
* @return
*/
public <T> List<T> search(Class<T> c,Condition condition){
return dao.query(c, condition, null);
}
/**
* 分页查询表中所有数据
* @param <T>
* @param c 查询的表
* @param currentPage 当前页数
* @param pageSize 每页显示数量
* @param orderby desc排序的条件
* @return List
*/
public <T> List<T> searchByPage(Class<T> c,int currentPage,int pageSize,String orderby){
Pager pager = dao.createPager(currentPage, pageSize);
return dao.query(c, Cnd.orderBy().desc(orderby), pager);
}
/**
* 分页带条件查询所有数据
* @param <T>
* @param c 查询的表
* @param condition 查询条件,用Cnd的静态方法构造
* @param currentPage 当前页码
* @param pageSize 每页显示的数据量
* @return List
*/
public <T> List<T> searchByPage(Class<T> c,Condition condition,int currentPage,int pageSize){
Pager pager = dao.createPager(currentPage, pageSize);
return dao.query(c, condition, pager);
}
/**
* 修改一条数据
* @param <T>
* @param t 修改数据库中的数据
* @return true 修改成功,false 修改失败
*/
public <T> boolean update(T t){
return dao.updateIgnoreNull(t) == 1;
}
/**
* 根据条件修改指定数据
* @param <T>
* @param c 数据库表
* @param chain 修改的内容
* @param condition 选择条件
* @return true 成功,false失败
*/
public <T> boolean update(Class<T> c,Chain chain,Condition condition){
return dao.update(c, chain, condition)>0;
}
/**
* 增加一条数据
* @param <T>
* @param t
* @return 返回增加到数据库的这条数据
*/
public <T> T save(T t){
return dao.insert(t);
}
public void save(String table,Chain chain){
dao.insert(table, chain);
}
/**
* 查询数据库中的数据条数
* @param <T>
* @param c 查询的数据库表
* @return int
*/
public <T> int searchCount(Class<T> c){
return dao.count(c);
}
/**
* 根据条件查询数据库中的数据条数
* @param <T>
* @param c 查询的数据库表
* @param condition 条件,用Cnd的静态方法构造
* @return int
*/
public <T> int searchCount(Class<T> c,Condition condition){
return dao.count(c,condition);
}
/**
* 计算最大分页数
* @param count 记录总数
* @param pageSize 每页显示多少数据
* @return int
*/
public int maxPageSize(int count,int pageSize){
if(pageSize>0){
if((count%pageSize)!=0){
return (count/pageSize)+1;
}else{
return (count/pageSize);
}
}
return 0;
}
/**
* 根据多个id 查询数据
* @param <T>
* @param ids 要查询的id,多个用","(逗号)分隔
* @param c 要查询的表信息
* @return List
*/
public <T> List<T> searchByIds(Class<T> c,String ids,String orderby){
Entity<T> entity = dao.getEntity(c);
String id = entity.getIdField().getColumnName();
String sql = " "+id +" in ("+ids+") order by "+orderby+" desc";
return dao.query(c, Cnd.wrap(sql), null);
}
/**
* 根据多个id 查询数据
* @param <T>
* @param ids 整形的id数组
* @param c 要查询的表信息
* @return List
*/
public <T> List<T> searchByIds(Class<T> c,int[] ids,String orderby){
Entity<T> entity = dao.getEntity(c);
String id = entity.getIdField().getColumnName();
return dao.query(c,Cnd.where(id, "in", ids).desc(orderby), null);
}
/**
* 根据多个id删除数据
* @param <T>
* @param c 要操作的表信息
* @param ids 要删除的id,多个用","(逗号)分隔
* @return true 成功,false 失败
*/
public <T> void deleteByIds(Class<T> c,String ids){
Entity<T> entity = dao.getEntity(c);
String table = entity.getTableName();
String id = entity.getIdField().getColumnName();
Sql sql = Sqls.create("delete from "+table+" where "+id+" in("+ids+")");
dao.execute(sql);
}
/**
* 根据条件返回一个对象
* @param <T>
* @param condition 查询条件用Cnd构造
* @return T
*/
public <T> T findByCondition(Class<T> c,Condition condition){
return dao.fetch(c, condition);
}
/**
* 模糊分页查询数据
* @param <T>
* @param c 查询的数据库表
* @param value 查询的字段
* @param orderby 排序条件
* @param currentPage 当前页面
* @param pageSize 页面大小
* @return List
*/
public <T> List<T> searchPageByLike(Class<T> c,String value,String orderby,int currentPage,int pageSize){
Entity<T> entity = dao.getEntity(c);
List<MappingField> fields = entity.getMappingFields();
SqlExpressionGroup group = null;
for(MappingField f:fields){
if(!f.isId()){
SqlExpression e = Cnd.exp(f.getColumnName(), "LIKE", "%"+value+"%");
if(group==null){
group = Cnd.exps(e);
}else{
group.or(e);
}
}
}
Pager pager = dao.createPager(currentPage, pageSize);
return dao.query(c,Cnd.where(group).desc(orderby), pager);
}
/**
* 模糊分页查询数据记录总数
* @param <T>
* @param c 查询的数据库表
* @param value 查询的字段
* @param orderby 排序条件
* @param currentPage 当前页面
* @param pageSize 页面大小
* @return List
*/
public <T> int searchPageByLike(Class<T> c,String value){
Entity<T> entity = dao.getEntity(c);
List<MappingField> fields = entity.getMappingFields();
SqlExpressionGroup group = null;
for(MappingField f:fields){
if(!f.isId()){
SqlExpression e = Cnd.exp(f.getColumnName(), "LIKE", "%"+value+"%");
if(group==null){
group = Cnd.exps(e);
}else{
group.or(e);
}
}
}
return dao.count(c,Cnd.where(group));
}
/**
* 根据指定的字段模糊分页查询数据
* @param <T>
* @param c 查询的表
* @param fieldName 字段名称
* @param va
没有合适的资源?快使用搜索试试~ 我知道了~
“淘学网” 本科毕业设计.zip
共567个文件
js:117个
png:102个
java:96个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 94 浏览量
2023-10-05
00:49:10
上传
评论
收藏 16.9MB ZIP 举报
温馨提示
本科毕业设计
资源推荐
资源详情
资源评论
收起资源包目录
“淘学网” 本科毕业设计.zip (567个子文件)
.classpath 2KB
org.eclipse.wst.common.component 539B
org.eclipse.wst.jsdt.ui.superType.container 49B
bootstrap.min.css 97KB
bootstrap3.0.3.min.css 97KB
font-awesome-ie7.css 40KB
font-awesome-ie7.min.css 37KB
jquery-ui.min.css 29KB
style.css 29KB
font-awesome.css 27KB
productviewgallery.css 24KB
font-awesome.min.css 22KB
slider.css 20KB
summernote.css 13KB
bootstrap-datetimepicker.min.css 11KB
jBox.css 10KB
owl.carousel.css 10KB
metroStyle.css 7KB
metro.css 6KB
zTreeStyle.css 6KB
demo.css 2KB
treeTable.css 979B
upload_btn.css 950B
treeTable.min.css 931B
signin.css 883B
pager.css 873B
treeTable.css 705B
treeTable.min.css 677B
Thumbs.db 962KB
Thumbs.db 55KB
Thumbs.db 41KB
fontawesome-webfont.eot 37KB
glyphicons-halflings-regular.eot 20KB
summernote.eot 13KB
zTreeStandard.gif 5KB
metro.gif 5KB
metro.gif 5KB
allbgs.gif 1KB
loading.gif 381B
loading.gif 381B
allbgs.gif 239B
left_menuForOutLook.gif 216B
line_conn.gif 45B
line_conn.gif 45B
.gitignore 6B
details.html 19KB
index.html 14KB
sale.html 14KB
service.html 10KB
contact.html 8KB
handbags.html 8KB
wallets.html 8KB
shoes.html 8KB
accessories.html 8KB
favicon-logo.ico 5KB
favicon-admin.ico 247B
favicon-front.ico 120B
simplecaptcha-1.2.2.jar 2.15MB
druid-1.0.1.jar 1.71MB
guava-11.0.2.jar 1.57MB
nutz-1.r.55.jar 1.39MB
nutz-1.r.55-sources.jar 972KB
nutz-1.b.52-sources.jar 865KB
mysql-connector-java-5.1.13.jar 750KB
quartz-2.2.2.jar 645KB
javax.mail.jar 558KB
jedis-2.8.1.jar 526KB
log4j-1.2.8.jar 344KB
commons-lang3-3.1.jar 308KB
commons-codec-1.9.jar 258KB
taglibs-standard-impl-1.2.5.jar 202KB
taglibs-standard-jstlel-1.2.5.jar 159KB
commons-pool2-2.4.2.jar 109KB
taglibs-standard-compat-1.2.5.jar 52KB
commons-email-1.3.3.jar 49KB
taglibs-standard-spec-1.2.5.jar 39KB
quartz-jobs-2.2.2.jar 33KB
slf4j-api-1.7.5.jar 25KB
nutz-integration-quartz-1.b.53.r3.jar 8KB
BasicDao.java 15KB
DateUtils.java 13KB
Reflections.java 11KB
MyCenterController.java 10KB
PublishController.java 9KB
SafeCenterController.java 9KB
NavController.java 7KB
GoodsListController.java 6KB
LoginController.java 6KB
Toolkit.java 5KB
ClassificationController.java 5KB
MenuController.java 5KB
AdminController.java 5KB
MyCollectionController.java 4KB
IndexController.java 4KB
UserController.java 4KB
Constants.java 4KB
RoleController.java 4KB
HelpController.java 4KB
StringUtils.java 4KB
UserAuthController.java 4KB
共 567 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
学术菜鸟小晨
- 粉丝: 1w+
- 资源: 4929
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Anaconda3-2024.02-1-Windows-x86-64.exe
- stm32cubemx can通信 一个板子负责传感器采集 一个板子负责wifi传递到网页 网页可控制传感器板子.zip
- k8s集群搭建1.27.1版本(来源于图灵k8s笔记)
- 树莓派连接 DS18B20 温度传感器读取温度时监控客户端,服务器端连接状况,实现断线重连机制
- 小游戏-坦克大战,你认为的小游戏
- 最好用的富文本编辑器wangeditor
- jQuery 3.7.1
- 校园失物招领小程序源码可作毕业设计
- SAP客户端GUI740安装包(JAVA版本)
- winlibs-x86-64-posix-seh-gcc-13.2.0-llvm-16.0.6-mingw-w64msvcrt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功