1、在学习一些新东西后者写一些新东西的的时候,要写一段,运行一段,再判断一段
2、动态方法(无static)与静态方法的区别:
动态方法有一个好处:
在一个类中的方法声明为动态的,则这个类中可以保留一个成员变量,当有人调用其中的一个方法时,可以把这个成员变量初始化,若初始化好了以后,再有人来用这个方法时,不用再从DB中取了!从这个成员变量直接拿出来(即内存中),前提是这个方法没有变化就可以了!也就是说这个包含动态方法的类做了一件事情——缓存!即缓存别人搜索过的对象!这样效率就快很多了,但是这样做消耗内存!这就是用空间换时间!
3、在SQL语句中如果where后跟了很多的过滤条件,则这些过滤条件的前后顺序对于效率有没有影响!
有一点影响!应该将过滤粒度大的放在前面!(这个仅代表个人意见!)
因为在DB中有对SQL语句的优化策略,具体怎样优化,不好意思不是很了解!没有研究过!
4、在项目汇总涉及到的复杂查询的代码:
/**
* 这个方法提供了可以根据产品的id来查询
* 根据名字查询
* 根据描述查询
* 根据一般价格段查询
* 根据会员价格段查询
* 根据日期段查询
* 而且这个查询支持分页
*
* @param categoryId
* @param name
* @param descr
* @param lowNormalPrice
* @param highNormalPrice
* @param lowMemberPrice
* @param highMemberPrice
* @param startDate
* @param endDate
* @param pageNo
* @param pageSize
* @return
*/
public List<Product> findProducts(int[] categoryId,
String keyWord,
double lowNormalPrice,
double highNormalPrice,
double lowMemberPrice,
double highMemberPrice,
Date startDate,
Date endDate,
int pageNo,
int pageSize) {
Connection conn = null ;
ResultSet rs = null ;
List<Product> list = new ArrayList<Product>() ;
try {
conn = DB.getConn() ;
String sql = "select * from product where 1=1 " ;
String strId = "" ;
//(2,3) (2,3,4)
if(categoryId != null && categoryId.length > 0) {
strId += "(" ;
for(int i = 0 ; i < categoryId.length ; i ++) {
if(i < categoryId.length - 1) {
strId += categoryId[i] + "," ;
}else {
strId += categoryId[i] ;
}
}
strId += ")" ;
sql += " and categoryid in " + strId ;
}
if(keyWord != null && !keyWord.trim().equals("")) {
sql += " and name like '%" + keyWord + "%' or descr like '%" + keyWord + "%'" ;
}
if(lowNormalPrice >= 0) {
sql += " and normalprice > " + lowNormalPrice ;
}
if(highNormalPrice > 0) {
sql += " and normalprice < " + highNormalPrice ;
}
if(lowMemberPrice >= 0) {
sql += " and memberprice > " + lowMemberPrice ;
}
if(highMemberPrice > 0) {
sql += " and memberprice < " + highMemberPrice ;
}
if(startDate != null) {
sql += " and pdate >= '" + new SimpleDateFormat("yyyy-MM-dd").format(startDate) + "'";
}
if(endDate != null) {
sql += " and pdate <= '" + new SimpleDateFormat("yyyy-MM-dd").format(endDate) + "'";
}
sql += " limit " + (pageNo - 1) * pageSize + " , " + pageSize ;
System.out.println(sql);
//String sql = "select * from product limit " + (pageNo - 1) * pageSize + " , " + pageSize ;
rs = DB.executeQuery(conn, sql) ;
while(rs.next()) {
Product p = new Product() ;
p.setId(rs.getInt("id")) ;
p.setName(rs.getString("name")) ;
p.setDescr(rs.getString("descr")) ;
p.setNormalprice(rs.getDouble("normalprice")) ;
p.setMemberprice(rs.getDouble("memberprice")) ;
p.setPdate(rs.getTimestamp("pdate")) ;
p.setCategoryId(rs.getInt("categoryid")) ;
list.add(p) ;
}
}catch(SQLException e) {
e.printStackTrace() ;
}finally {
DB.closeRs(rs) ;
DB.closeConn(conn) ;
}
return list;
}
页面如图:
分享到:
相关推荐
PDF文件包含了学习札记的序言和五个章节,分别是“一(上)、一(下)、二、三(上)、三(下)”。这些章节可能涵盖了LabView的基础知识,如G语言基础、界面设计、数据处理、控制流与结构以及可能深入到的高级主题...
本学习札记的第二卷,将深入介绍LabVIEW的基本概念和核心功能,旨在帮助初学者快速入门。以下是可能涵盖的知识点: 1. **G语言**:LabVIEW的核心编程语言称为G语言,通过拖拽和连接不同的函数框图来实现代码编写。G...
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化编程环境,主要用于开发虚拟...希望这个学习札记能帮助你在虚拟仪器的学习道路上找到方向,不断进步,最终在LabVIEW的世界里游刃有余。
这个“LabVIEW学习札记”显然是一份关于掌握LabVIEW核心概念和技术的详细资料。下面我们将深入探讨LabVIEW的一些关键知识点。 1. **G语言**: LabVIEW的核心编程语言称为G,它是一种基于图形的编程语言。通过连接...
Simulink代码生成学习札记[汇编].pdf
虚拟仪器LabVIEW 教程PPT资料 学习札记 应用设计等学习资料: LabVIEW 学习札记 - 序.pdf LabVIEW 学习札记 - 第三卷 上.pdf LabVIEW 学习札记 - 第三卷 下.pdf LabVIEW_学习札记_-_第一卷_上.pdf LabVIEW_学习札记_...
本札记“LabVIEW学习札记 - 第一卷 上”将带你逐步走进LabVIEW的世界,揭示其核心概念和常见问题。 首先,LabVIEW的核心在于它的G图形化编程语言。与传统的文本编程语言不同,LabVIEW使用的是图标和连线来表示程序...
这个“Simulink代码生成学习札记”可能包含了关于如何使用Simulink从模型直接生成可执行代码的重要知识,这对于工程师和开发者来说是一个极其有用的资源,特别是对于初学者。 Simulink的主要功能之一就是代码生成,...
公司法学习札记.pdf
"LabVIEW 学习札记 - 第二卷"是针对LabVIEW进阶学习的一份珍贵资料,包含了丰富的实践案例和深入的技术解析。 在这一卷中,你可能会学习到以下几个关键知识点: 1. **G语言与程序结构**:LabVIEW的核心是G语言,一...
【Nios II 学习札记】 Nios II 是由 Altera 公司开发的一种软核处理器,广泛应用于 FPGA(Field-Programmable Gate Array)设计中,它提供了高效的嵌入式处理解决方案。Nios II 提供了三种不同的内核类型,分别是 ...
《微机操作札记十五篇》是一份详细记录了操作系统及办公软件日常技巧的文档集,旨在帮助用户提升计算机操作的效率和技能。这个CHM格式的文件包含了十五篇文章,每一篇都专注于一个特定的主题,涵盖了从基础到进阶的...
"labview 学习札记3a"显然是一个关于LabVIEW的教程资源,旨在帮助初学者掌握这个平台的基础知识,并通过实际工程实例加深理解。 在LabVIEW的学习过程中,有几个关键的知识点是必须掌握的: 1. **基本概念**:理解...
这份"mysql学习札记.zip"文件显然包含了作者在学习MySQL过程中积累的知识和经验,可能是笔记、示例代码或者教程。虽然没有具体的标签来细化主题,但我们可以根据常见的MySQL学习路径来探讨一些关键知识点。 首先,...
学习札记快速整理软件是一款专为学习者设计的高效笔记管理工具,旨在帮助用户快速整理、记录和检索学习内容。本文将详细介绍该软件的各个功能、运行环境以及使用方法,以便用户更好地利用这款软件提升学习效率。 **...
在"LabVIEW学习札记1b"中,我们可以预期会涵盖以下几个关键知识点: 1. **基本概念**:LabVIEW的基本结构包括前面板和程序框图。前面板是用户与VI(Virtual Instrument)交互的界面,包含各种控件(Controls)如...
EXT学习札记 ExtJs学习--京华志 京华志出品 必数精华
《复变函数札记》是作者梁昌洪继《矢算场论札记》(科学出版社,2007)之后的第二本工程...《复变函数札记》适合理工科的本科生和硕士、博士研究生学习使用,也可作为相关专业的广大科技和工程人员的入门读物和工具书。
《学习札记快速整理软件——打造高效笔记新体验》 学习札记快速整理软件,是一款专为学生群体及需要频繁记录信息的用户设计的APP,旨在解决信息快速记录、整理和分类的难题。这款软件以创新的功能和贴心的设计,...