@Test
public void test1(){
//简单查询HQL
Session session = HibernateUtil.openSession();
Query query = session.createQuery("from User");
List list = query.list();
for (User user : list) {
System.out.println(list);
}
}
(2)别名查询
public void test2(){
//别名询HQL
Session session = HibernateUtil.openSession();
Query query = session.createQuery("select u from User u");
List list = query.list();
for (User user : list) {
System.out.println(list);
}
}
(3)排序查询
public void test3(){
//排序查询
Session session = HibernateUtil.openSession();
Query query = session.createQuery("from User order by user_id desc");
List list = query.list();
for (User user : list) {
System.out.println(list);
}
}
(4)条件查询
起别名的条件查询 需求:查询user_code为1 且user_name为李四的客户
public void test4(){
//起别名的条件查询查询
Session session = HibernateUtil.openSession();
Query query = session.createQuery("from User where user_code=:aaa and user_name=:bbb");
query.setParameter("aaa","1");
query.setParameter("bbb","李四");
List list = query.list();
for (User user : list) {
System.out.println(list);
}
}
(5)投影查询
查询单个或部分字段
public void test5(){
//投影查询 查询单个属性
Session session = HibernateUtil.openSession();
Query query = session.createQuery("select u.user_name from User u");
List
(6)分页查询
public void test6(){
Session session = HibernateUtil.openSession();
Query query = session.createQuery("from User");
//从第几条开始查 默认第一个角标是从0开始
query.setFirstResult(1);
//查多少条
query.setMaxResults(3);
List list = query.list();
for (User user : list) {
System.out.println(user);
}
}
(7)统计查询
查询所有的记录数
public void test7(){
Session session = HibernateUtil.openSession();
Query query = session.createQuery("select count(*) from User");
Long o = (Long)query.uniqueResult();
System.out.println(o);
}
分组查询
public void test8(){
Session session = HibernateUtil.openSession();
Query query = session.createQuery("select user_code, count(*) from User group by user_code");
List list = query.list();
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}
}
(8)多表查询
普通内连接
public void test9(){
//普通内连接查询
Session session = HibernateUtil.openSession();
Query query = session.createQuery("from User u inner join u.roles");
List list = query.list();
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}
}
查询出的list集合,里面装的是Object类型的数组
迫切内连接
public void test10(){
//迫切内连接查询
Session session = HibernateUtil.openSession();
Query query = session.createQuery("from User u inner join fetch u.roles");
List list = query.list();
for (User user : list) {
System.out.println(user);
}
}
如果在使用JAXB把xml文件unmarshal成vo(XSD自动生成的vo)时碰到如下错误:
org.xml.sax.saxparseexception : premature end of file
很有可能时你直接读取文件为inputstream,然后将inputstream作为构建unmarshal需要的source参数。InputSource inputSource = new In
servlet 搞java web开发的人一定不会陌生,而且大家还会时常用到它。
下面是java官方网站上对servlet的介绍: java官网对于servlet的解释 写道
Java Servlet Technology Overview Servlets are the Java platform technology of choice for extending and enha
这两天学到事务管理这一块,结合到之前的terasoluna框架,觉得书本上讲的还是简单阿。我就把我从书本上学到的再结合实际的项目以及网上看到的一些内容,对声明式事务管理做个整理吧。我看得Spring in Action第二版中只提到了用TransactionProxyFactoryBean和<tx:advice/>,定义注释驱动这三种,我承认后两种的内容很好,很强大。但是实际的项目当中
1)nosql数据库主要由以下特点:非关系型的、分布式的、开源的、水平可扩展的。
1,处理超大量的数据
2,运行在便宜的PC服务器集群上,
3,击碎了性能瓶颈。
1)对数据高并发读写。
2)对海量数据的高效率存储和访问。
3)对数据的高扩展性和高可用性。
redis支持的类型:
Sring 类型
set name lijie
get name lijie
set na
在多节点的系统中,如何实现分布式锁机制,其中用redis来实现是很好的方法之一,我们先来看一下jedis包中,有个类名BinaryJedis,它有个方法如下:
public Long setnx(final byte[] key, final byte[] value) {
checkIsInMulti();
client.setnx(key, value);
ret