`
xumingrencai
  • 浏览: 1181207 次
文章分类
社区版块
存档分类
最新评论

简单的hibernate数据库插入例子

 
阅读更多

本文出自:http://blog.csdn.net/solarspot/archive/2004/06/16/21600.aspx

刚刚开始学习,希望和大家一起进步吧。请大家不要笑我。
这是一个最简单的例子,该例子基本上是按照hibernate reference来做的。
做这个例子我选用的应用服务器是山东中创软件商用中间件有限公司的InforWeb(这个应用服务器是商用的,如果你无法获得它,那么可以用tomcat代替),数据库我选用的是Oracle,你可以选用小巧的MySql
首先你需要Hibernate2.0 相关运行环境,可以从 http://hibernate.org/下载;
第一步:下载hibernate.
第二步:InforWebdeploytomcat中是webapps)目录下先新建一个应用,目录如下:%InforWebHome%/deploy/cat
第二步:将数据库的驱动程序加入到CLASSPATH中,或者将驱动拷贝到%InforWebHome%/lib下(tamcat下是%tomcatHome%/common/lib);
第三步:Hibernate提供的hibernate2.jar(根目录下)和一些第三方的运行库拷贝到hibernate/WEB/INF/lib目录下。(这些第三方的运行库包含在下载的Hibernate lib目录下)。
下面对几个必须的包做一下解释:
dom4j:hibernate解析xml配置和映射元文件时需要使用。
Cglib:hibernate运行时使用这个代码生成库强化类。
Collections,Commons Logging
ODMG4Hibernate 提供了一个可选的ODMG 兼容持久化管理界面。如果你需要映射集合,你就需要这个类库,就算你不是为了使用ODMG API。我们在这
个教程中没有使用集合映射,但不管怎样把这个JAR 拷贝过去总是不错
的。
虽然这几个文件是必须的,但是还是把所有的包都拷贝过去吧,这样比较保险啊,:)。
第四步:你可以通过InforWeb管理工具配置应用、给应用添加数据源,如果你对部署描述符比较熟悉的话就直接修改server.xml吧。这个文件在conf目录下,在其中加一个连接池的声明:
<Context path="/cat" docBase="cat">
<Resource name="jdbc/hibernate" scope="Shareable"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/hibernate">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- DBCP database connection settings -->
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@192.168.51.117:1521:bbs</value>
</parameter>
<parameter>
<name>driverClassName</name><value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>username</value>
</parameter>
<parameter>
<name>password</name>
<value>secret</value>
</parameter>
<!-- DBCP connection pooling options -->
<parameter>
<name>maxWait</name>
<value>3000</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>100</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
</ResourceParams>
</Context>
这个例子中我们要配置的上下文叫做cat,它位于InforWeb/deploy/cat
录。要访问任何Servlet,在你的浏览器中访问http://localhost:8080/cat 就可以
了。
InforWeb 在这个配置下,使用DBCP 连接池,通过JNDI 位置:
java:comp/env/jdbc/hibernate 提供带有缓冲池的JDBCConnections。如果你得到了JDBC 驱动的exception 信息,请先不要用Hibernate,测试JDBC 连接池本身是否正确。测试的一个简单的jsp如下:
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<%
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
System.out.println("BBB::get jndi ok");
System.out.println("BBB::get datasource");
DataSource datasource = (DataSource) envCtx.lookup("/jdbc/hibernate");
System.out.println("BBB::get datasource OK");
System.out.println("BBB::get connection");
System.out.println("BBB::get connection");
Connection conn = datasource.getConnection();
System.out.println("BBB::get connection OK"+conn);
Statement stm = conn.createStatement();
System.out.println("get stm OK");
String sql = "select * from Courses";
ResultSet rs = stm.executeQuery(sql);
while(rs.next()){
out.println(rs.getString(1));
out.println("/n");
out.println(rs.getString(2));
}
%>
第四步:在应用的/WEB-INF下建立hibernate.cfg.xml文件,它将绑定JNDI中提供的数据库连接池。内容如下:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.datasource">java:comp/env/jdbc/hibernate</property>
<property name="show_sql">false</property>
<property name="dialect">net.sf.hibernate.dialect.OracleDialect</property>
<!-- Mapping files -->
<mapping resource="Cat.hbm.xml"/>
</session-factory>
</hibernate-configuration>
这个文件告诉hibernate如何获得JNDI提供的数据源
java:comp/env/jdbc/hibernate),使用何种数据库方言(DIalect,几种主流数据库方言的格式如下:
DB2: net.sf.hibernate.dialect.DB2Dialect
Oracle: net.sf.hibernate.dialect.OracleDialect
MySql: net.sf.hibernate.dialect.MySQLDialect
Sybase: net.sf.hibernate.dialect.SybaseSQLDialect
相信大家已经发现规律了,如果你使用了别的数据库就自己改一下吧(现在hibernate支持16中数据库,如果你用了自己的数据库……^_^)。
hibernate.cfg.xml 中的最后一个元素声明了Cat.hbm.xml 是一个Hibernate XML 映射文件,对应持久化类Cat。这个文件包含了把POJO 类映射到数据库表(或多个数据库表)的元数据。让我们先编写这个POJO 类,再在声明它的映射元数据。

分享到:
评论

相关推荐

    Hibernate插入数据-Eclipse

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...

    springboot+hibernate+mysql简单例子

    简单的springboot的学习项目实例,使用了hibernate连接mysql数据库,进行简单的插入和查询操作,项目中已经包含依赖的jar包和数据库脚本,只需要创建配置的数据库并使用数据库脚本建立表即可。

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问...

    hibernate的一个最简单例子,JAR包估计你们都可以找到

    hibernate的一个最简单例子,JAR包估计你们都可以找到 一般情况下,讲hibernate例子都比较复杂,其实,只要自己配置成功过一个简单的例子后就...这就是一个我配置成功的一个最简单的hibernate就是往数据库里插入数据

    struts+hibernate实现的网络购物系统下载.zip

    这个程序时学习struts+hibernate的比较好的例子,这个系统是我在网上找到的。不过不是用的tomcat服务器,所以目录结构和tomcat的不一样,我已经在myEclipse开发环境下重新组织了结构,另外没有数据库的表结构生成的...

    Ext_Dwr_Spring_Hibernate完美结合,工程实例

    该工程在MyEclipse中可以无错的导入,带jar包,带数据库建表语句(包括插入记录)。用的是MySql数据库。 其中edit-grid2.html页面中的数据是利用dwr调spring,进过spring中的业务方法掉hibernate来操作数据库完成的...

    struts+hibernate实现的网络购物系统.zip

    这个程序是学习struts+hibernate的比较好的例子,不过不是用的tomcat服务器,所以目录结构和tomcat的不一样,我已经在myEclipse 开发环境下重新组织了结构,另外没有数据库的表结构生成的sql,当然也没有数据, 不过...

    基于struts+hibernate实现的网络购物系统(附源代码)

    这个程序时学习struts+hibernate的比较好的例子,不过不是用的tomcat服务器,所以目录结构和tomcat的不一样,我已经在myEclipse 开发环境下重新组织了结构,另外没有数据库的表结构生成的sql,当然也没有数据, 不过...

    基于JAVA毕业设计-JAVA struts+hibernate实现的网络购物系统.zip

    这个程序时学习struts+hibernate的比较好的例子,这个系统是我在网上找到的。不过不是用的tomcat服务器,所以目录结构和tomcat的不一样,我已经在myEclipse开发环境下重新组织了结构,另外没有数据库的表结构生成的...

    struts+hibernate实现的网络购物系统 | 毕业设计

    这个程序时学习struts+hibernate的比较好的例子,这个系统是我在网上找到的。不过不是用的tomcat服务器,所以目录结构和tomcat的不一样,我已经在myEclipse开发环境下重新组织了结构,另外没有数据库的表结构生成的...

    Hibernate+中文文档

    4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问...

    hibernate3.2中文文档(chm格式)

    4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问...

    HibernateAPI中文版.chm

    4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问...

    Hibernate中文详细学习文档

    4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问...

    Hibernate 中文 html 帮助文档

    4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器...

    ssh的整合的简单例子

    运用Struts.spring.和hibernate实现简单的融合.实现将注册信息插入到数据库中

    最全Hibernate 参考文档

    4.1. 一个简单的POJO例子 4.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators) 4.1.2. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.3. 提供一个标识属性(identifier property)(可...

    hibernate 体系结构与配置 参考文档(html)

    一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器...

    Hibernate教程

    5.1. 一个简单的POJO例子 5.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators) 5.1.2. 实现一个默认的(即无参数的)构造方法(constructor) 5.1.3. 提供一个标识属性(identifier property)...

    struts hibernate spring 搞定分布式事务

    StrutsHibernateBySQLImplTest.java :为单元测试类 自动生成表:具体数据库 sqlserver2000 ,oracle ...同时插入数据库sqlserver 和oracle 此时如果插入sqlserver的数据太大,则回滚: 都插不进去 测试通过的例子:

Global site tag (gtag.js) - Google Analytics