分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

hibernate入门-基本配置及简单的crud操作

发布时间:2023-09-06 01:16责任编辑:郭大石关键词:配置

框架来说主要是需要写大量的配置文件,hibernate相比mybatis来说更强大,移植性更好;

1.类和数据库的映射配置:配置文件命名一般——类名.hbm.xml (user.hbm.xml),与实体类放在同一目录下,配置成员变量和数据库字段的映射:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC ???"-//Hibernate/Hibernate Mapping DTD 3.0//EN" ???"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping> ???<class name="ni.jun.yang.bean.User" table="t_user"> ???????<id name="userId" column="userId"><!-- ????????主键自动增长 --> ???????????<generator class="native"></generator> ???????</id> ???????????????<property name="userName" column="userName"></property> ???????<property name="userPsw" column="userPsw"></property> ???</class></hibernate-mapping>

2.主配置文件,放在src目录下,命名一般用hibernate.cfg.xml:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC ???"-//Hibernate/Hibernate Configuration DTD 3.0//EN" ???"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> ???<session-factory> ???????????<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> ???????<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate1</property> ???????<property name="hibernate.connection.username">root</property> ???????<property name="hibernate.connection.password">123</property> ???????<!-- 显示sql语句 --> ???????<property name="hibernate.show_sql">true</property> ???????<property name="hibernate.format_sql">true</property> ???????<!-- 表自动生成,没有此表自动建表 --> ???????<property name="hibernate.hbm2ddl.auto">update</property> ???????<!-- 设置数据库方言 --> ???????????????<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> ???????<!-- 映射类配置文件 --> ???????<mapping resource="ni/jun/yang/bean/user.hbm.xml"></mapping> ???????</session-factory></hibernate-configuration>

3.工具类读取配置文件,获取SessionFactory对象:

package ni.jun.yang.util;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtil { ???private static SessionFactory sessionFactory; ???public HibernateUtil() { ???????????} ???public static SessionFactory getSessionFactory(){ ???????if(sessionFactory == null){ ???????????Configuration cfg =new Configuration(); ???????????cfg.configure();//读取配置文件 ???????????sessionFactory = cfg.buildSessionFactory(); ???????} ???????return sessionFactory; ???} ???}

4.session类中提供了一系列的crud操作:

4.1 添加:

public void Add(User user) { ???????Session session = sessionFactory.openSession(); ???????????????Transaction ts = session.beginTransaction(); //开启事务 ???????session.save(user); ???????ts.commit(); ??//提交事务 ???????session.close(); ???????????}

4.2 删除:

public void delete(User user) { ???????Session session = sessionFactory.openSession(); ???????????????Transaction ts = session.beginTransaction(); //开启事务 ???????session.delete(user); ???????ts.commit(); //提交事务 ???????session.close(); ???}

4.3 修改:

public void update(User user) { ???????Session session = sessionFactory.openSession(); ???????????????Transaction ts = session.beginTransaction();//开启事务 ???????session.update(user); ???????ts.commit(); //提交事务 ???????session.close(); ???}

4.4 查询:

public User select(int id) { ???????Session session = sessionFactory.openSession(); ???????????????Transaction ts = session.beginTransaction(); ???????User user = session.get(User.class, id); ???????????????user.setUserPsw("321"); ???????ts.commit(); ???????session.close(); ???????return user; ???}

4.5 查询所有,结合hql语句

public List<User> selectAll() { ???????Session session = sessionFactory.openSession(); ???????????????Transaction ts = session.beginTransaction(); ???????Query<User> ?q=session.createQuery("from User");// ???????Query<User> ?q=session.createQuery("from User where userName =:userName");//占位符// ???????q.setString("userName", "zhangsan"); //占位符赋值 ???????????????List<User> lists = q.list(); ???????return lists; ???}

hibernate入门-基本配置及简单的crud操作

原文地址:http://www.cnblogs.com/nijunyang/p/7647310.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved