1.增加:session.save(对象); 具体如下:
public static void main(String[] args){
//读取总的配置文件
Configuration configuration = new Configuration().configure();
//创建SessionFactory对象(session工厂就相当于是一个生产session的地方)
SessionFactory sessionFactory = configuration.buildSessionFactory();
//得到Session对象(Session就是对JDBC中Connection对象的封装)
Session session = sessionFactory.openSession();
//开启事务
Transaction transaction = session.beginTransaction();
//持久化存储数据(也就是将相关对象存在数据库中的过程)
User user = new User();
user.setUserName("张文哲");
user.setPassword("zwz123456");
session.save(user);
//提交事务
transaction.commit();
//关闭session(就好比Connection对象,与数据库的连接都不是可以无限连接的)
session.close();
}
以上就可以把数据加入数据库。其中:
1)User类是pojo中的类,它与数据库中存储用户信息的表相对应;
2)必须把User类的.hbm.xml文件配置好,而且在总的hibernate.cfg.xml文件配置好之后才可以使用上面的语句向数据库加入数据
2.查询:session.get(Class.clazz,id)或者session.load(Class.clazz,id) 具体如下:
【注】:这两个方法具有局限性,其只能根据主键的信息进行查询
public static void main(String[] args){
//读取总的配置文件
Configuration configuration = new Configuration().configure();
//创建session工厂
SessionFactory sessionFactory = configuration.buildSessionFactory();
//得到Session对象
Session session = sessionFactory.openSession();
//执行查询开不开启事务都是可以的,这里就不开启了
User user = (User)session.get(User.class,1);//在数据库中的用户表查询出主键id为1的数据并返回User对象
//关闭session
session.close();
}
User user = (User)session.get(User.class,1);//在数据库中的用户表查询出主键id为1的数据并返回User对象
如果使用load(Class.clazz,id)的话,就将上面这行代码换成下面这行:
User user = (User)session.load(User.class,1);//在数据库中的用户表查询出主键id为1的数据并返回User对象
关于两者的区别:博主专门有一篇博客(在此不多加赘述):https://blog.csdn.net/My_name_is_ZwZ/article/details/82843360
3.修改:session.update(对象); 具体如下:
public static void main(String[] args){
//读取总的配置文件
Configuration configuration = new Configuration().configure();
//创建session工厂
SessionFactory sessionFactory = configuraion.buildSessionFactory();
//得到session
Session session = sessionFactory.openSession();
//开启事务
Transaction transaction = session.beginTransaction();
//持久化数据(将主键id为1的数据的密码修改成zwz)
User user = (User) session.load(User.class, 1);
user.setPassword("zwz");
session.update(user);
transaction.commit();//提交事务
session.close();//关闭session会话
}
4.删除:session.delete(对象); 具体如下:
public static void main(String[] args){
//读取配置文件
Configuration configuration = new Configuration().configure();
//创建sessionFactory(用于生产session)
SessionFactory sessionFactory = configuration.buildSessionFactory();
//得到Session对象
Session session = sessionFactory.openSession();
//开启事务
Transaction transaction = session.beginTransaction();
User user =(User) session.get(User.class, 1);
session.delete(user);//删除主键id为1的数据所对应的对象所对应对的数据库中的数据
transaction.commit();//提交事务
session.close();//关闭session
}