关于orm框架的hibernate简易案例

1.引入相关jar包:

233356_JVuI_3850623.png

2.创建主配置文件:

233937_ztb1_3850623.png

<?xml version="1.0" encoding="UTF-8"?>
<hibernate-configuration>
    <session-factory>
        <!-- 数据库用户 -->
        <property name="hibernate.connection.username">root</property>
        <!-- 数据库密码 -->
        <property name="hibernate.connection.password">tianzhang123456</property>
        <!-- 数据库链接 -->
        <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate_demo?user=root&amp;password=tianzhang123456&amp;unicode=true&amp;characterEncodeing=utf-8</property>
        <!-- 数据库驱动 -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- 数据库方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        
        <!-- 在控制台中输出sql -->
        <property name="show_sql">true</property>
        <!-- 格式化控制台中的sql -->
        <property name="format_sql">true</property>
        
        <!-- 
            hbm2ddl.auto的作用为:自动创建/更新/验证数据库表结构 
            有以下值:
            create:      表示启动的时候先drop,再create
            create-drop: 也表示创建,只不过再系统关闭前执行一下drop
            update:      这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新
            validate:    启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新
        -->
        <property name="hbm2ddl.auto">create</property>
        
        <!-- 引入对象-关系映射文件 -->
        <mapping resource="com/cbt/bean/Student.hbm.xml" />
    </session-factory>
</hibernate-configuration>

3.创建持久化类:

233514_7Mnh_3850623.png

package orm;

import java.util.Date;

public class Student {
     private int sid;       //学号
        private String sname;  //姓名
        private String gender; //性别
        private Date birthday; //出生日期
        private String address;//地址
        
        public Student(){}
        public Student(int sid, String sname, String gender, Date birthday,
                String address) {
            this.sid = sid;
            this.sname = sname;
            this.gender = gender;
            this.birthday = birthday;
            this.address = address;
        }
        
        public int getSid() {
            return sid;
        }
        public void setSid(int sid) {
            this.sid = sid;
        }
        public String getSname() {
            return sname;
        }
        public void setSname(String sname) {
            this.sname = sname;
        }
        public String getGender() {
            return gender;
        }
        public void setGender(String gender) {
            this.gender = gender;
        }
        public Date getBirthday() {
            return birthday;
        }
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }

}

 

4.创建对象-关系映射文件

234026_8XN2_3850623.png

<?xml version="1.0" encoding="UTF-8"?>
<hibernate-mapping>
    <!-- JavaBean与对应的表名 -->
    <class name="com.cbt.bean.Student" table="STUDENT">
        <!-- 主键 -->
        <id name="sid" type="int">
            <column name="SID" />
            <generator class="assigned" />
        </id>
        <!-- 字段 -->
        <property name="sname" type="java.lang.String">
            <column name="SNAME" />
        </property>
        <!-- 字段 -->
        <property name="gender" type="java.lang.String">
            <column name="GENDER" />
        </property>
        <!-- 字段 -->
        <property name="birthday" type="java.util.Date">
            <column name="BIRTHDAY" />
        </property>
        <!-- 字段 -->
        <property name="address" type="java.lang.String">
            <column name="ADDRESS" />
        </property>
    </class>
</hibernate-mapping>

 

5.编写测试类:

234154_ow4v_3850623.png

package orm;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

public class test {
     private SessionFactory sessionFactory; 
        private Session session;
        private Transaction transaction;
        
        @Before
        public void before(){
            //创建配置对象
            Configuration config = new Configuration().configure();
            //创建服务注册对象
            ServiceRegistry service = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
            //创建会话工厂对象
            sessionFactory = config.buildSessionFactory(service);
            //创建会话对象
            session = sessionFactory.openSession();
            //开启事务
            transaction = session.beginTransaction();
        }

        @After
        public void after(){
            transaction.commit();    //提交事务
            session.close();        //关闭会话
            sessionFactory.close(); //关闭会话工厂
        }
        
        @Test
        public void testSaveStudent() {
            //创建学生对象
            Student s = new Student(1,"张三","男",new Date(),"武当山");
            /*
             * 由于hibernate.cfg.xml中配置的hbm2ddl.auto值为'Create',所以执行save
             * 方法会检查数据库中是否有student表,没有的话会创建此表,并将s对象保存进去
             */
            session.save(s);
        }
}

6.总结:

至此,hibernate的简易demo配置完成。但是在过程中碰到了许多问题,有的问题还没有解决,将会在以后的博客中更新。

 

转载于:https://my.oschina.net/u/3850623/blog/1808551

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值