java编程经典语录

2016-09-19

1. 文件File是对IO的抽象; 进程是对一个正在运行的程序的抽象; 虚拟机是对整个计算机的抽象(包括操作系统,处理器和程序的抽象)

2.hibernate中,1vs N 一对多的关联中,在1方设置inverse=true;让多方来维护关系有助于性能改善

3.如何解除父子关系?通过置null!
customer.getOrders().remove(order);//1方
order.setCustomer(null);//多方
tx.commit();

4.《设计模式》精髓: 发现变化封装变化;针对接口编程;抽象层次越高,接口的语意越模糊,适用范围越广。

5.下载excel,如何设置excel的长度?先写到字节流中后后把响应写到浏览器
OutputStream buf= new ByteArrayOutputStream();
workbook.write(buff);
response.setContentLength(buf.toByteArray().length);
workbook.write(response.);

 2016-09-21

什么是闭包?
答案:闭包就是负责到底,例如:
user 到A部门去办证,结果发现办这个证需要B,C,D部门盖章。。。

闭包就是
user找到A部门,A部门去找B找C找D去盖章,这就是闭包的负责到底,如果是user自己去A,去B,去C。。。部门敲章就不是闭包

 20166-09-22

jQuery中 $.done 和 $.always 区别?
done:成功时执行,异常时不会执行。
always:不论成功与否都会执行。

jquery中两个重要的方法!!!
1.传递数据到函数

function handlerName(event) 
{
  alert(event.data.msg);
}

$(document).ready(function(){
  $("p").on("click", {msg: "You just clicked me!"}, handlerName)
});

2.适用于未创建的元素

$(document).ready(function(){
  $("div").on("click","p",function(){
    $(this).slideToggle();
  });
  $("button").click(function(){
    $("<p>This is a new paragraph.</p>").insertAfter("button");
  });
});
			/**
			 * 使用类路径的读取方式
			 *  / : 斜杠表示classpath的根目录
			 *     在java项目下,classpath的根目录从bin目录开始
			 *     在web项目下,classpath的根目录从WEB-INF/classes目录开始
			 */
			InputStream in = JdbcUtil.class.getResourceAsStream("/db.properties");

  2016-09-23

//如何让字符串数组通过逗号分隔符组合成字符串? 这个方法相当好! String[] -----> String
String[] keys = {"Z123","Z12345","Z666"};    
String orderId = org.apache.commons.lang3.StringUtils.join(keys, ',');
HQuery query = new HQuery();
query.setQueryString("from OrderDTO where id in (" + orderId + ")");

String ----------> String[]
String[] keys = StringUtils.split(orderId, ',');

 2.通過hibernate的initial方法加載子集

	public String region="selleck.model.order.dto.OrderDTO";
	public  boolean cacheable=true;
@Override
	public OrderDTO find(Integer id) {	
		Session session = null;
		session = this.getSession();
		OrderDTO orderDTO = null;
		String hql = "select orderDTO from OrderDTO orderDTO where orderDTO.id=?";
		Query query = session.createQuery(hql);
		query.setInteger(0, id);
		query.setCacheable(cacheable);
		query.setCacheRegion(region);
		List<OrderDTO> orderDTOs = query.list();
		if (orderDTOs != null && orderDTOs.size() > 0) {
			orderDTO = (OrderDTO) orderDTOs.get(0);
		}
		if(orderDTO != null){//订单不为空 查询订单下的产品
			Hibernate.initialize(orderDTO.getOrderProductDTOs());
			Hibernate.initialize(orderDTO.getUserDTO());
		}
		session.close();
		return orderDTO;
	}
这个简单的,你别用Session记录用户登陆信息,用Application,或者用Cache记录

把用户的登陆信息记录在一个表中,用户登陆表增加一行,用户退出,删除那一行

如果想踢掉某人,人为删除那一行登陆信息就可以了,你可以搜一下单点登陆,实现原理基本一样 
View Code
web 是“无状态”的系统,
也就是说相当于你认为每一次页面请求服务器的时候都可能“重启服务器”
。所以你只能每一次查询数据库(当然可以先查询数据缓存,没有的情况下才查询数据库),
通过查询到的记录的属性来判断某用户最后一次在线时的 SessionID 是不是当前网页请求消息在 cookie 中所提交的 SessionID。
如果不是,那么就告诉客户端“无法继续在线”就行了。
原文地址:https://www.cnblogs.com/bravolove/p/5884224.html