文档章节

Hibernate正向工程建立数据表 对数据表进行增删改查操作

7_0
 7_0
发布于 2012/12/07 23:04
字数 899
阅读 567
收藏 4

步骤一

         首先在数据库中建立一数据库  Person

步骤二

myEclipse 中建立一普通java工程 HibernateTest

建立一lib文件夹 

拷贝需要的相应hibernate中的jar


其中最后一个是 数据库驱动包 ,然后从hibernate源文件那个解压文件中的project 中的etc(配置文件)文件夹中 拷贝hiberna.cfg.xml

  


hiberna.cfg.xml 拷贝到config中  打开之后 删除<session-Factory name=”foo”中的所有内容> 首先来配置主要的 hiberna.cfg.xml   配置这个的时候我们要参考 hibernate.properties

因为我是用的sqlserver的所以选择这个


 

配置完后如下所示

 <hibernate-configuration>
<session-factory name="foo">
<property name="show_sql">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;databaseName=Person</property>

<property name="hibernate.hbm2ddl.auto">update</property>
<hibernate-configuration>
<session-factory name="foo">
<property name="show_sql">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;databaseName=Person</property>

<property name="hibernate.hbm2ddl.auto">update</property>

<!-- 这个是最后添加建立,配置好的Person.hbm.xml-->
<mapping resource="com/hibernate/test/Person.hbm.xml"/>


</session-factory>


</hibernate-configuration>


切记这个也可以在hibernate.properties中可以找到

#hibernate.hbm2ddl.auto create-drop
#hibernate.hbm2ddl.auto create
#hibernate.hbm2ddl.auto update
#hibernate.hbm2ddl.auto validate



<property name="hibernate.hbm2ddl.auto">update</property>

 

第一个貌似是创建之后就删除掉

第二个是本次创建的时候就删除上次创建的

第三个为更新 就是就算你上次创建过的本次创建添加了也不会删除上次的内容

所以这里我们选择update

最后我们来创建表中所需要的内容  因为只是做个测试 所以简单的创建一个类

TestCreateDB

创建完之后 我们就可以去配置关于这个类的 hibernate配置文件了

 

这就需要拷贝 ect中的employee.hbm.xml 拷贝到当前类的包的下面 并且改名为 类名.cfg.xml(Person.cfg.cml)

然后我们来配置Person.hbm.xml

 

如图所示<?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.hibernate.test.Person" table="tb_Person">
<id name="pid" type="integer">
    <generator class="native"></generator>
</id>
<property name="uname" type="string">
   
</property>
<property name="upwd" type="string">
   
</property>
</class>
</hibernate-mapping>

 

这个相信大家一看就能明白吧  <property>中的name值就是表中的字段名  type就是字段的属性 

 

注意的是第一个 是创建的这张表的主键 自增长 (好像hibernate中是强制这样要求的) 第一列 class 就是当前类的全类名 table 就是需要建立的表的名字  好了到这里了准备工作差不多就做完了

 

 

最后 我们用junit(昨天才学的)进行测试

 

创建一个测试类

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import org.junit.Test;

 

import com.hibernate.test.Person;

public class TestCreateTable {

 

    private static Configuration cf;

//这里为了以后方便 一次创建了 Configuration

static{

       cf=new Configuration();

//这里因为我创建了一个config sourc folder 里面有一个hibernate的配置文件

//(hibernate.cfg.xml)

       cf.configure("hibernate/hibernate.cfg.xml");

      

    }

    public static SessionFactory getSessionFactory(){

/返回sessionFactory     

return cf.buildSessionFactory();

    }

    @Test

    public void testCreateDb(){

       //开启session

       Session session=getSessionFactory().openSession();

       //开启事务(一定要开启事务和提交事务,不然不会成功)

       Transaction tr=session.beginTransaction();

      

       Person person=new Person();

       person.setUname("张三");

       person.setUpwd("123");

      //保存到数据中

session.save(person);

       tr.commit();

      

    }

}

 

到这里就成功的完成了 

嘿嘿 第一次发这种自己感觉有点点技术含量的帖子,不知道有哪里做得不好的 望大家指出啊。以后我会改正的。


(才学ssh,很多东西不懂,所以就把最近所学的一些东西放上来  供大家参考和指出不正确的地方)

 

© 著作权归作者所有

7_0

7_0

粉丝 2
博文 21
码字总数 4097
作品 0
南岸
程序员
私信 提问
基于 Django 的手机管理系统

前段时间和小组一起完成数据库作业,觉得收获挺多的,分享到博客来。 一、概述 打算通过设计数据库,然后结合 Python 框架Django,实现在网页上对数据库的增删改查(本例以手机的管理为例,不...

希希里之海
2018/07/01
0
0
ORM框架--Guzz

Guzz 是一种用来进行快速开发和高性能网站设计的框架,用于替代或者补充hibernate或ibatis的持久化实现,并提供更多的大型系统架构设计 支持。guzz的目标是使得大型化网站设计更加简单,团队...

谷子发布
2010/01/07
24.3K
0
第三方库 FMDB的使用

数据库的使用 总结自:http://www.cnblogs.com/wuhenke/archive/2012/02/07/2341656.html // SQLite的大小写敏感性,不区分带小写。下面的UPDATE 可以写成小写的不过要用双引号引起来。工程里...

水一样的人儿
2016/01/15
34
0
关于SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层

SSM是sping+springMVC+mybatis集成的框架。 MVC即model view controller。 model层=entity层。存放我们的实体类,与数据库中的属性值基本保持一致。 service层。存放业务逻辑处理,也是一些关...

Aeroever
04/01
97
0
springside3里面的hibernate

springside3 里面的 hibernate 以 springside3 里面的 mini-web 为例子来分析。 src/main/java 目录结构 src/test/java 目录结构 如果需要更换数据库的话,就要改 2 个文件即可。 applicatio...

晨曦之光
2012/05/23
504
0

没有更多内容

加载失败,请刷新页面

加载更多

实战项目-学成在线(一)

之前看的黑马程序员实战项目之一,打算以博客的形式写出来,也让自己重新温习一下。 1、项目背景 略(就是当前这东西很火,我们重点在开发,这些就略过) 2、功能模块 门户,学习中心,教学管...

lianbang_W
35分钟前
4
0
基于Vue的数字输入框组件开发

本文转载于:专业的前端网站➫基于Vue的数字输入框组件开发 1、概述 Vue组件开发的API:props、events和slots 2、组件代码 github地址:https://github.com/MengFangui/VueInputNumber 效果:...

前端老手
43分钟前
4
0
百度地图根据经纬度获取运动轨迹

<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=n......

泉天下
45分钟前
5
0
学习记录(day04-axios增删改查、v-for循环、页面加载成功处理函数)

[TOC] 1.1 基本语法:插值表达式 <template> <div> {{username}} <br/> {{1+2+3}} <br/> {{'你的名字是:' + username}} <br/> {{'abc'.split('')}} </div><......

庭前云落
今天
5
0
CentOS Linux 7上将ISO映像文件写成可启动U盘

如今,电脑基本上都支持U盘启动,所以,可以将ISO文件写到U盘上,用来启动并安装操作系统。 我想将一个CentOS Linux 7的ISO映像文件写到U盘上,在CentOS Linux 7操作系统上,执行如下命令: ...

大别阿郎
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部