hibernate 对实体类的crud操作
来源:互联网 发布:expressVPN软件 编辑:程序博客网 时间:2024/06/05 18:34
一 添加数据
public void addTest()
{
//创建SessionFactory 对象,读取hibernate核心配置文件,
//过程后,在配置数据库里面创建表
Configuration cfg = new Configuration();
cfg.configure();
//得到 SessionFactory 对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
//SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
//使用SessionFactory对象创建session对象
//类似于连接connection
Session session = sessionFactory.openSession();
//开启事物
Transaction ts = session.beginTransaction();
//写具体逻辑crud
User user = new User();
user.setUsername("GRL");
user.setPassword("344");
user.setAddress("japan");
//调用session方法保存
session.save(user);
//提交事物
ts.commit();
//关闭资源
session.close();
sessionFactory.close();
}
二 修改数据
@Test
public void upDate()
{
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
Session session = sessionFactory.openSession();
Transaction ts = session.beginTransaction();
User user = session.get(User.class, 1);
System.out.println(user);
user.setUsername("东方不败");
session.update(user);
ts.commit();
System.out.println(user);
session.close();
sessionFactory.close();
}
三 删除操作(建议使用方式一)
方式一 先根据id查询出来User,再调用session.delete(user);代码如下:
public void delTest()
{
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
Session session = sessionFactory.openSession();
Transaction ts = session.beginTransaction();
User user = session.get(User.class,1);
session.delete(user);
ts.commit();
}
方式二 先new出一个新的对象,为对象赋值ID,再调用session.delete(user);
@Test
public void delTest()
{
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
Session session = sessionFactory.openSession();
Transaction ts = session.beginTransaction();
User user = new User();
user.setUid(2);
//User user = session.get(User.class,1);
session.delete(user);
ts.commit();
}
四 查询数据库书所有内容
(1)Query 对象 :使用该对象查询数据不需要写SQL语句,但是需要些hql(hibernate query language)
@Test
public void queryTest()
{
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
Session session = sessionFactory.openSession();
Query query = session.createQuery("from User");
List<User> list = query.list();
for(User user :list)
System.out.println(user);
session.close();
}
(2)Criteria 对象,使用该对象,不需要语句,直接调用list方法即可。
@Test
public void criteriaTest()
{
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
Session session = sessionFactory.openSession();
List<User> list = session.createCriteria(User.class).list();
for(User user:list)
System.out.println(user);
session.close();
}
(3)SQLQuery 对象:使用hibernate 时,也可以调用底层sql,使用该对象就可以实现。
方式一:缺点就返回的list是Object[],而不是对象的list
@Test
public void SQLQueryTest()
{
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
Session session = sessionFactory.openSession();
SQLQuery sqlquery = session.createSQLQuery("select * from t_User");
List<Object[]> list = sqlquery.list();
for(Object[] obj :list)
System.out.println(Arrays.toString(obj));
}
方式二 返回的是对象的list
@Test
public void SQlQuery2()
{
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
Session session = sessionFactory.openSession();
SQLQuery sqlquery = session.createSQLQuery("select * from t_User");
sqlquery.addEntity(User.class);
List<User> list = sqlquery.list();
for(User obj :list)
System.out.println(obj);
}
- hibernate 对实体类的crud操作
- 对实体类的CRUD操作
- 对实体类的CRUD操作
- Hibernate对单表的CRUD操作
- jpa对单个实体bean的crud操作
- hibernate的crud操作
- hibernate的CRUD操作
- hibernate的CRUD操作
- Hibernate的CRUD操作
- hibernate的crud操作
- 解决Hibernate 实体类之间CRUD的代码冗余
- Hibernate实体类的操作
- maven hibernate 实现对mysql简单的CRUD操作
- EJB+JPA演示实体类基本操作CRUD的实现
- EJB+JPA演示实体类基本操作CRUD的实现
- 传智播客--JPA的CRUD操作,映射实体
- JPA的CRUD操作,映射实体
- hibernate对数据库进行CRUD操作
- Linux查看和剔除当前登录用户
- centos 7.2 mysql 安装
- 虚拟化技术kvm,xen,vmware比较
- Spring+SpringMVC+MAVEN+EasyUi 整合
- js 执行完一个函数之后再执行另外一个函数
- hibernate 对实体类的crud操作
- g++和gcc的比较
- 欢迎使用CSDN-markdown编辑器
- linux traceroute
- winform最小化到托盘
- 怎样和虐死人的老项目谈恋爱
- Linux CentOS7自定义安装Python和Python3
- hdu 5899 oasis in desert
- 有关于时间的模糊查询