对hibernate的入门理解!

 一、hibernate是属于ORM(Object Relational Mapping)框架的一员,它代替的是JavaEE中dao层,以操作实体类来代替操作数据库的操作,也就是CRUD操作。其底层就是对JDBC的封装。

二、说一下hibernate的使用步骤吧

  1. 首先导入jar包
  2. 编写实体类
  3. 编写实体类的映射文件
  4. 编写核心配置文件(主配置文件)
  5. 最后就是对数据库的操作了

三、详细介绍一下使用步骤

  • 1.导入jar包
  • 这个是hibernate的jar包,此外我们还需要导入一个mysql的jar包
  • 这里记得要添加“小奶瓶哦!”
  • 2.编写实体类就是简单的一个Java类了,并生成其属性的get和set方法
  • 3.编写实体类的映射文件
  • 此处推荐将实体类的映射文件就放在实体类的包中,并且名字和实体类的名字保持一致,其后缀名必须是.hbn.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是我们的实体类的类路径,而table就是实体类在数据库中的表名 -->
        	<class name="com.czw.domain.Monkey" table="monkey">
        		<!-- 设置主键,name是实体类中的自己设置的属性值,而column是数据库中表的字段名,可以不写,不写默认就是实体类中的属性名 -->
        		<id name="m_id" column="mm_id">
        			<!-- 设置主键的增长方式,有多种算法,我们选择nayive,它是identity、hilo和sequence的集合,会从这三种算法中自动选择 -->
        			<generator class="native"></generator>
        		</id>
        		<!-- 设置字段,property中也可以将 写column, -->
        		<property name="m_name" column="mm_name"></property>
        		<property name="m_age"></property>
        		<property name="m_sex"></property>
        	</class>
        
        </hibernate-mapping>

    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
        <hibernate-mapping>可以在我们导入的jar包中寻找

  • 这是其位置,找到后直接复制放到,实体类的映射文件中即可

  • 接着我们就可以按照上面的代码进行配置了。

  • 4.编写核心配置文件

  • 这里需注意的一点就是是这个主配置文件必须放在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:///coding</property>
    			<property name="hibernate.connection.username">root</property>
    			<property name="hibernate.connection.password">root</property>
    			<!-- 对hibernate的配置 -->
    			<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.MySQL5InnoDBDialect</property>	
    			<!-- 将Monkey.hbm.xml与hibernate.cfg.xml相连接 -->
    			<mapping resource="com/czw/domain/Monkey.hbm.xml"/>
    		</session-factory>
    	</hibernate-configuration>

     

  • <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">这个和实体类的映射文件配置一样,下面的是其位置,直接复制并放在我们的配置文件中即可。

  • 5.对数据库的操作

  • 这个我们可以在一个测试类中写,其代码如下:

  • import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import org.junit.Test;
    
    import com.czw.domain.Monkey;
    
    public class MonkeyTest {
    	
    	@Test
    	public void add(){
    		//1.获取配置文件对象
    		Configuration config=new Configuration().configure();
    		//2.构建sessionFactory
    		SessionFactory factory = config.buildSessionFactory();
    		//3.生产session -->可以理解为jdbc里的Connection
    		Session session=factory.openSession();
    		//4.开启事务
    		Transaction beginTransaction = session.beginTransaction();
    		//5.进行数据库操作
    		Monkey monkey=new Monkey();
    		monkey.setM_name("jack");
    		monkey.setM_age(6);
    		monkey.setM_sex("雄性");
    		//将对象的状态从瞬时态转变为持久态
    		session.save(monkey);
    		//6.事务提交或回滚
    		beginTransaction.commit();
    		//	beginTransaction.rollback();		
    		//7.释放资源
    		session.close();
    		factory.close();
    	}
    
    }

    其运行结果为

  • 其他的操作也是可以的

  • @Test
    	public void update(){
    		//1.获取配置文件对象
    		Configuration configure = new Configuration().configure();
    		//2.获取session工厂
    		SessionFactory factory = configure.buildSessionFactory();
    		//3.生产session
    		Session session = factory.openSession();
    		//4.开始事务
    		Transaction transaction = session.beginTransaction();
    		//5.对数据库的操作
    		Monkey monkey=session.get(Monkey.class, 1);
    		monkey.setM_name("Alice");
    		monkey.setM_sex("女");
    		session.saveOrUpdate(monkey);
    		//6.事务提交或回滚
    		transaction.commit();
    		//7.关闭资源
    		session.close();
    		factory.close();
    	}

    还有

好了,这个简单的hibernate 的入门介绍就差不多了,看完的同学是否觉得测试类中的某些代码写的很冗余呢,是否可以写一个工具类进行简化代码呢?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值