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;
}
页面如图:
分享到:
相关推荐
LabVIEW学习札记 LabVIEW学习札记 LabVIEW学习札记 LabVIEW学习札记 LabVIEW学习札记
labview学习札记,压宿包里含有pdf版学习札记序、一(上)、一(下)、二、三(上)、三(下)。
目前本人正在学习虚拟仪器,感觉岂不很是迷茫。现在正在看这个学习札记,觉得很受用,拿出来和大家一起分享。望大家学业有成!
Simulink代码生成学习札记[汇编].pdf
虚拟仪器LabVIEW 教程PPT资料 学习札记 应用设计等学习资料: LabVIEW 学习札记 - 序.pdf LabVIEW 学习札记 - 第三卷 上.pdf LabVIEW 学习札记 - 第三卷 下.pdf LabVIEW_学习札记_-_第一卷_上.pdf LabVIEW_学习札记_...
Simulink代码生成学习札记, 对于初学者来说有助于对simulink代码生成有个大体的了解
介绍了美国NI公司的labview,从基本概念到工程实例,是入门的好帮手。
mysql学习札记
LabVIEW_学习札记,专业人士学习LabVIEW过程中笔记,具有很好的实用性
找了很久了。。。Nios II 学习札记
LabVIEW 学习札记,详细、高效的学习资料。
labview论坛-LabVIEW 学习札记 - 第二卷,网上搜索的,学习LabView的好资料。
公司法学习札记.pdf
认真讲解了labview的常见问题,希望对大家有帮助,
NI LabVIEW学习札记zip,本资料是关于NI LabVIEW学习札记,更多详细内容请点击下载!
LabVIEW 学习札记,详细、高效的学习资料。
EXT学习札记 ExtJs学习--京华志 京华志出品 必数精华
LabVIEW 学习札记,详细、高效的学习资料。
本资源包包括LabVIEW学习札记、LabVIEW深入探索、数据存储指南、面向对象设计等,帮助您更好掌握LabVIEW编程技巧。