利用Hibernate框架将类与表映射

本文介绍了如何创建与数据库表映射的PO类,并通过Hibernate框架进行配置,实现Java对象与数据库之间的交互。

编写PO类

什么是PO类?
PO:Persistent Object即持久对象,它们是由一组属性和属性的get和set方法组成。可以看成是与数据库中的表相映射的java对象
既然是与数据库中的表相映射的java对象,那么类中的属性就需要和表相互对应,
在之前的文章中,我们创建了T_STUDENT表,里面分别有STUNO,STUNAME,STUSEX三个字段
那么我们创建的PO类就需要有对应的属性来映射
创建一个po包,在里面创建Student类
属性如下:

package po;

public class Student {
    private String stuno;
    private String stuname;
    private String stusex;
    public String getStuno() {
        return stuno;
    }
    public void setStuno(String stuno) {
        this.stuno = stuno;
    }
    public String getStuname() {
        return stuname;
    }
    public void setStuname(String stuname) {
        this.stuname = stuname;
    }
    public String getStusex() {
        return stusex;
    }
    public void setStusex(String stusex) {
        this.stusex = stusex;
    }
}

编写并配置映射文件

编写完这个PO类,系统还是无法识别类和数据库表的关系。所以,我们还需要编写配置文件,配置文件一般和PO类放在同一个包下,名字可以随意,但是为了规范,此处我们将其命名为Student.hbm.xml。
代码如下:

<?xml version="1.0"?>  
<!DOCTYPE hibernate-mapping PUBLIC   
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  

<hibernate-mapping>  
    <class name="po.Student" table="T_STUDENT">
        <id name="stuno" column="STUNO">
            <generator class="assigned"></generator>
        </id>
        <property name="stuname" column="STUNAME"/>
        <property name="stusex" column="STUSEX"/>
    </class>
</hibernate-mapping> 

注意,映射文件的头和Hibernate配置文件是不一样,所以不要直接复制Hibernate配置文件中的代码
一般映射文件编写格式如下:
(1)将编写的PO类与表对应
(2)id name=”属性” column=”对应字段名”>填写主键,即使表内没有主键,映射文件中也要配置一个唯一标识
(3)主键生成策略
(4)将属性和字段对应起来
映射文件编写完成后,表就和类进行了映射。不过配置到这里 系统还是无法识别,还需将此文件在hibernate.cfg.xml中进行注册。方法为直接将加到hibernate.cfg.xml中,添加完后代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!--mysql配置驱动  -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <!--mysql数据库url地址   -->
        <property name="hibernate.connection.url">
        jdbc:mysql://localhost:3306/school?useUnicode=true&amp;characterEncoding=utf8
        </property>
        <!--mysql数据库 适配器,不同数据库 适配器不同  -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  
        <!--mysql数据库登录账户  -->
        <property name="hibernate.connection.username">root</property> 
        <!--mysql数据库账户密码  --> 
         <property name="hibernate.connection.password"></property>  
         <mapping resource="po/Student.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值