java常识问题----------------------
两个字符串不能用 == 这个运算符来表示两个字符串是相等的
而是 字符串1.equal(字符串2) 才能用来判断
过滤器常识问题----------------------
1*
Web容器加载的顺序:web.xml文件中配置的Filter的倒序
拦截执行顺序:web.xml文件中配置的Filter的正序
销毁顺序:web.xml文件中配置的Filter的倒序
2*
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse resp = (HttpServletResponse)response;
StringBuffer aa= req.getRequestURL();
String url = req.getRequestURI();
System.out.println(aa);
System.out.println(url);
第一个是url的 第二个是 uri的
3*
endsWith()?/判断字段的最后一个是否包含
startsWith(): if(a.startsWith(b)) //判断字符串a 是不是以字符串b开头。
hibernate 今日学习5种查询功能----------------------
No.1 对象导航查询
User user = session.get(User.class, 1);
Set<Role> setUser = user.getSetRole();
System.out.println(setUser.size());
No.2 OID查询
User user = session.get(User.class, 1);
System.out.println(user.toString());
No.3 HQL查询
//全部查询
// Query query = session.createQuery("from Customer");
// List<Customer> list = query.list();
//
// for(Customer customer : list) {
// System.out.println(customer.toString());
// }
//条件查询
// Query query = session.createQuery("from Customer where cid=? and name=?");
// query.setParameter(0,2);
// query.setParameter(1, "蓝源公司");
// List<Customer> list = query.list();
// for(Customer customer: list) {
// System.out.println(customer.toString());
// }
//模糊查询
// Query query = session.createQuery("from Customer where name like ?");
// query.setParameter(0,"%蓝%");
// List<Customer> list = query.list();
// for(Customer c : list) {
// System.out.println(c.toString());
// }
//排序查询
// Query query = session.createQuery("from Customer order by cid desc");
// List<Customer> list = query.list();
// for(Customer c : list) {
// System.out.println(c.toString());
// }
//分页查询
// Query query = session.createQuery("from Role");
// query.setFirstResult(0);
// query.setMaxResults(3);
//
// List<Role> list = query.list();
// for(Role c : list) {
// System.out.println(c.toString());
// }
//投影查询
// Query query = session.createQuery("select role_pro from Role");
//
// List<Object> list = query.list();
// for(Object c : list) {
// System.out.println(c);
// }
//聚集函数的方法
// Query query = session.createQuery("select count(*) from Customer");
// Object obj = query.uniqueResult();
// Long objl = (Long)obj;
// int i = objl.intValue();
// System.out.println(obj);
*聚集函数的使用count、sum、avg、max、min
- select count() from 实体类名称
No.4 QBC查询
//查询所有
// Criteria cr = session.createCriteria(Role.class);
// List<Role> list = cr.list();
// for (Role role : list) {
// System.out.println(role.toString());
// }
//条件查询
// Criteria cr = session.createCriteria(Role.class);
// cr.add(Restrictions.eq("r_id", 1));
// cr.add(Restrictions.eq("role_pro", "战士"));
// cr.add(Restrictions.ilike("role_name", "%生%"));
//
// List<Role> list = cr.list();
// for (Role role : list) {
// System.out.println(role.toString());
// }
//排序查询
// Criteria cr = session.createCriteria(Role.class);
// cr.addOrder(Order.asc("r_id"));
// cr.addOrder(Order.desc("r_id"));
// List<Role> list = cr.list();
// for (Role role : list) {
// System.out.println(role.toString());
// }
//分页查询
// Criteria cr = session.createCriteria(Role.class);
// cr.setFirstResult(0);
// cr.setMaxResults(3);
// List<Role> list = cr.list();
// for (Role role : list) {
// System.out.println(role.toString());
// }
//统计查询
// Criteria cr = session.createCriteria(Role.class);
// cr.setProjection(Projections.rowCount());
// Object obj = cr.uniqueResult();
// System.out.println(obj);
//离线查询
// DetachedCriteria dc = DetachedCriteria.forClass(Role.class);
// Criteria cr = dc.getExecutableCriteria(session);
//
// List<Role> list = cr.list();
// for (Role role : list) {
// System.out.println(role.toString());
// }
离线查询的意思
条件查询的离线查询有DetachedCriteria来代表,DetachedCriteria类允许在一个session范围外创建一个 查询,并且可以使用任意Session来执行它。
No.5HQL多表查询
(1)内连接:from Customer c inner join c.setLinkMan
(2)左外连接:from Customer c left outer join c.setLinkMan
(3)右外连接:from Customer c right outer join c.setLinkMan
(4)迫切内连接: from Customer c inner join fetch c.setLinkMan
(5)迫切左外连接:from Customer c left outer join fetch c.setLinkMan
!!! 左外连接返回list中每部分是数组,迫切左外连接返回list每部分是对象
hibernate 今天出现了的错误----------------------
1、
Exception in thread "main" java.lang.StackOverflowError
at java.util.AbstractCollection.toString(AbstractCollection.java:454)
at org.hibernate.collection.internal.PersistentSet.toString(PersistentSet.java:300)
at java.lang.String.valueOf(String.java:2994)
....................................................以下省略了10000个错误
这个错误的意思是堆栈溢出
解决的方法就是
把这段红字删掉,因为这段红字要显示的是User里面 一对多的数组对象 toString会让它溢出