hibernate数据库操作有:
QBC (标准查询,查询全部语句)
HQL (执行hql语句)
SQL (使用sql操作数据库,返回数据是表,需要使用addEntity()方法进行数据封装))
CURD
具体映射见 https://blog.youkuaiyun.com/Yuan52007298/article/details/81160734
Junit测试类
package org.hibernate.entity;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.junit.After;
import org.junit.Before;
public class Test {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@org.junit.Test
public void test() {
fail("Not yet implemented");
}
@org.junit.Test
public void test_QBC() {
Session session = HibernateUtil.getSession();
try {
String sql = "select * from User";
//获取数据为数组,使用addEntity()方法封装
List<User> list = session.createCriteria(User.class).list();
for(User user : list) {
System.out.println(user.toString());
}
}catch(Exception e) {
e.printStackTrace();
}
}
@org.junit.Test
public void test_SQL() {
Session session = HibernateUtil.getSession();
try {
String sql = "select * from User";
//获取数据为数组,使用addEntity()方法封装
List<User> list = session.createSQLQuery(sql).addEntity(User.class).list();
for(User user : list) {
System.out.println(user.toString());
}
}catch(Exception e) {
e.printStackTrace();
}
}
@org.junit.Test
public void test_HQL() {
Session session = HibernateUtil.getSession();
try {
//HQL查询
//String hql = "from User where name = :name";
//Query query = session.createQuery(hql);
//query.setString("name", "enrico");
String hql = "from User where name = ?";
Query query = session.createQuery(hql);
query.setString(0, "enrico");
List<User> HQL_Query_user = new ArrayList<>();
HQL_Query_user = query.list();
for(User user : HQL_Query_user) {
System.out.println(user.toString());
}
}catch(Exception e) {
e.printStackTrace();
}finally {
session.close();
}
}
@org.junit.Test
public void test_CURD() {
Session session = HibernateUtil.getSession();
//开启事务
session.beginTransaction();
try {
//增加
User insertuser = new User("zhangsan","mail",20,"zhangsan@qq.com","15823455678");
session.save(insertuser);
//删除
User deleteuser = (User)session.get(User.class, 10);
session.delete(deleteuser);
session.flush();//刷新session
//修改
User updateuser = (User) session.get(User.class,2);
updateuser.setMail("jack@163.com");
session.update(updateuser);
//查询
User queryuser = (User)session.get(User.class,3);
System.out.println(queryuser.getId()+" "+queryuser.getName()+" "+queryuser.getSex());
//提交事务
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
//回滚事务
session.getTransaction().rollback();
}finally {
session.close();
}
}
}