hibernate入门案例

最近准备学ssh,今天学了一下hibernate,用的是hibernate4,现在已经出5了;配置文件很容易写错,写配置文件的时候尽量复制。

需要的jar包如下:(jar包我是直接放在项目工程里面了,如果直接是build-path导入jar包,这样当本地的jar包路径变化时,项目工程就上面就会出红色惊叹号,放在工程里就不会出现这个问题了)

 

 

两个配置文件位置如下:

src下需要一个名为:hibernate.cfg.xml的配置文件,因为在hibernate底层代码中,读取的配置文件名字默认是这个。

hibernate.cfg.xml中的内容需要配置数据库的连接信息,以及对象和表关系映射的配置文件。

红色部分是数据库连接的url,其中test数据库需要我们自己在root用户下提前建立好。

<?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="connection.driver_class">com.mysql.jdbc.Driver</property>

     <!-- 数据库连接驱动 --> <property name="connection.url">jdbc:mysql://localhost:3306/test</property>

     <!-- 数据库连接用户名和密码 -->
<property name="connection.username">root</property> <property name="connection.password">qige</property> <!-- 方言 不同数据库有不同的方言 --> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 控制台显示SQL --> <property name="show_sql">true</property> <!-- 自动更新表结构 --> <property name="hbm2ddl.auto">update</property>

     <!--student类下的配置文件--> <mapping resource="com/model/Student.hbm.xml"/> </session-factory> </hibernate-configuration>

 

以下是对象和表的映射配置文件,需要配置对象中属性和数据库表的对应关系。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping 
            PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.model.Student" table="tb_student"><!-- 每个class对应一个持久化对象 -->
        <id name="studentID" type="string"><!-- id元素用来定义主键标识,并指定主键生成策略 -->
            <generator class="assigned"></generator>
        </id>
        <property name="studentName"></property><!-- 映射password属性 -->
        <property name="studentSex"></property><!-- 映射studentName属性 -->
    </class>
</hibernate-mapping>


然后测试一下:
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import com.model.Student; public class Test { public static void main(String[] args) { Configuration configuration=new Configuration().configure(); // 实例化配置文件 ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); //实例化服务登记 SessionFactory sessionFactory=configuration.buildSessionFactory(serviceRegistry); // 获取Session工厂 Session session=sessionFactory.openSession(); // 生成一个session session.beginTransaction(); // 开启事务 由session开启事务,session的事务默认是关闭的,必须要手动开启 Student s=new Student(); s.setStudentID("001"); s.setStudentName("张三"); session.save(s); session.getTransaction().commit(); // 提交事务 session.close(); // 关闭session sessionFactory.close(); // 关闭session工厂 } }

 

 


 如果控制台没有报错的话,可以在控制台看到hibernate为我们执行的操作,已经插入了一条语句到数据库中了

 

 

 

数据库里已经有了一张表,并且插入了一条数据。

 

posted @ 2016-06-26 22:39  Archieyao  阅读(251)  评论(0编辑  收藏  举报