Half-SQL semi-object-oriented notation
- Single data (objects) stored in the database
- Querying a single object
- Update a single object
- Delete Object
- Querying the entire table
- Querying a property of an object
- Querying the specified row data
- query specifies that data is passed back to an entity
- grouping aggregations
- Sort
- Limit
- Using Parameters
- Inch
- Write in config file
In an entry method or test class method, add the
//构建上下文换肩加配置连接池,开启事务Configuration configuration = new Configuration().configure();SessionFactory sessionFactory = configuration.buildSessionFactory();Session session = sessionFactory.openSession();Transaction transaction = session.beginTransaction();//这里填写测试代码//提交事务并关闭各种流transaction.commit();session.close();sessionFactory.close();
The following test code, respectively, is placed in the above code ' 这里填写测试代码 place
Single data store to database
Node node = new Node();; node.setNodeId("testNodeId1"); node.setPid("testPid1"); node.setType((byte)1); node.setLevel((short)1); node.setName("testName1"); session.save(node);
Querying a single object
Node node=(Node)session.get(Node.class,1);System.out.println(node);//Node.class后面的1是数据库中的主键值
Update a single object
Node node=(Node)session.get(Node.class,10);node.setName("updateName");session.update(node);
Delete Object
Node node = (Node) session.get(Node.class, 10);session.delete(node);
Querying the entire table
It is important to note that if your pojo is called MyUser, and the corresponding table in the database is called user, all the places that use CreateQuery are related to the table, it should be filled myuser
Query query = session.createQuery("FROM Node");List list = query.list();System.out.println("list = " + list);
Querying a property of an object
Query query = session.createQuery("SELECT nodeId FROM Node");List list = query.list();System.out.println("list = " + list);
Querying the specified row data
Query query = session.createQuery("FROM Node WHERE type=?");query.setParameter(0,10);List list = query.list();System.out.println("list = " + list);
query specifies that data is passed back to an entity
//需要pojo有相应的构造器Query query = session.createQuery("SELECT new Node(id,name,nodeId) FROM Node");List<Node> list = query.list();System.out.println("list = " + list);
grouping aggregations
Query query = session.createQuery("SELECT type,SUM(id) FROM Node GROUP BY type");List list = query.list();for (Object o : list) { Object[] result = (Object[]) o; System.out.println(Arrays.toString(result));}
Sort
Query query = session.createQuery("FROM Node ORDER BY id DESC");List list = query.list();System.out.println("list = " + list);
Limit
Query query = session.createQuery("FROM Node ORDER BY id DESC");query.setFirstResult(2);query.setMaxResults(3);List list = query.list();System.out.println("list = " + list);
Using Parameters
String colName = "id";String sql = "FROM Node WHERE " + colName + "=?";Query query = session.createQuery(sql);query.setParameter(0,6);Node node = (Node) query.uniqueResult();System.out.println("node = " + node);
or this
Query query = session.createQuery("FROM Node WHERE id:id");query.setParameter("id",7);List list = query.list();System.out.println("list = " + list);
Inch
Query query = session.createQuery("FROM Node WHERE id IN(:ids)");query.setParameterList("ids",new Object[]{4,6,7});List list = query.list();System.out.println("list = " + list);//In 的效率很低
Write in config file
User.hbm.xml
Code section
Query query = session.getNamedQuery("getUserByAge");query.setParameter(0,6);query.setParameter(1,8);List list = query.list();System.out.println("list = " + list);
A complete SQL notation
In the first half-SQL notation, the format changes can be
1. Native SQL notation
SQLQuery query = session.createSQLQuery("SELECT * FROM tree");query.addEntity(Node.class);List list = query.list();System.out.println("list = " + list);
Complete object-oriented notation
In the first half-SQL notation, the format changes can be
Criteria criteria = session.createCriteria(Node.class);criteria.add(Restrictions.eq("id",6));List list = criteria.list();System.out.println("list = " + list);
It's the equivalent of finding out all of them in the criteria.
- Not equal to
- Sort
- Add pagination
- grouping aggregations
Not equal to
Criteria criteria = session.createCriteria(Node.class);criteria.add(Restrictions.ne("id",1));List list = criteria.list();System.out.println("list = " + list);
Sort
Criteria criteria = session.createCriteria(Node.class);criteria.addOrder(Order.desc("id"));List list = criteria.list();System.out.println("list = " + list);
Add pagination
Criteria criteria = session.createCriteria(Node.class);criteria.add(Restrictions.ne("id",1));criteria.setFirstResult(0);criteria.setMaxResults(2);List list = criteria.list();System.out.println("list = " + list);
grouping aggregations
Criteria criteria = session.createCriteria(Node.class);ProjectionList projectionList = Projections.projectionList();projectionList.add(Projections.sum("id"));projectionList.add(Projections.groupProperty("type"));criteria.setProjection(projectionList);List list = criteria.list();for (Object o : list) { Object[] result = (Object[]) o;System.out.println(Arrays.toString(result));}
Hibernate Getting Started Tutorial