Myeclipse10搭建SSH框架自动建立数据表3
2013-09-21 16:22
211 查看
3 Ant-XDoclet数据表自动产生
3.1
创建XDoclet标记的数据表实体类
在包dbApp下新建实体类Recorder.java,不选择“生成注释”。进而构造持久化项:id、name、articles、books。然后点击工具栏上的“源代码(S)”,选择其中的“生成Getter和Setter”,不选择“生成方法注释”:以注释的方式添加XDoclet标签,说明即将形成的数据表名称、主键及其各个列的名称、类型、宽度、可否空置等属性:
package dbApp;
/**
*@authorkaizq
*@hibernate.class table="Recorder"
*/
publicclassRecorder
{ publicintid;
public Stringname;
publicintarticles;
publicintbooks;
/**
*@hibernate.id generator-class="native"
*@hibernate.column name="ID" type="int"not-null="true"
*/
publicintgetId() {returnid;
}
publicvoidsetId(int
id) {this.id = id; }
/**
*@hibernate.propertycolumn="Name"type="string" length="20" not-null="true"
*/
public String getName() {returnname;
}
publicvoidsetName(String name) {this.name
= name; }
/**
*@hibernate.propertycolumn="Artcles"type="int" not-null="true"
*/
publicintgetArticles() {returnarticles;
}
publicvoidsetArticles(int
articles) {this.articles =articles; }
/**
*@hibernate.propertycolumn="Books"type="int" not-null="true"
*/
publicintgetBooks() {returnbooks;
}
publicvoidsetBooks(int
books) {this.books = books; }
}
3.2 Hibernate-XDoclet自动产生映射文件
在项目“SSH_SQLServerA”上右击,引出下拉菜单,选择“属性”,弹出项目属性窗口,选择“MyeclipseàXDoclet”,切换到XDoclet窗口页面,在“Configuration”中点击“AddStandard…”弹出实体选择窗口,选择“Standard Hibernate”,为“发生器”定义配置:
对于XDoclet窗口的“Build”页面采用默认选项“JDK5.0”和“Use
dynamic build specification”:
在项目“SSH_SQLServerA”上右击,引出下拉菜单,选择“MyeclipseàRun XDoclet”,集成开发环境自动为实体类产生
“.hbm.xml” 映射文件:Recorder.hbm.xml。
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEhibernate-mapping
PUBLIC"-//Hibernate/HibernateMapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class
name="dbApp.Recorder"table="Recorder">
<id
name="id"column="id"type="int">
<generatorclass="native"
/>
</id>
<property
name="id"type="int"column="ID"not-null="true"/>
<property
name="name"type="string"column="Name"length="20"not-null="true"/>
<property
name="articles"type="int"column="Artcles"not-null="true"/>
<property
name="books"type="int"column="Books"not-null="true"/>
</class>
</hibernate-mapping>
3.3 hbm2ddl自动产生SQL文件与数据表
采用集成开发环境自带的Hibernate工具hbm2ddl及其SchemaExport,编写build.xml文件:<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEproject [ ]>
<projectname="project"default="generator-schema">
<propertyname="xdoclet.basedir"value="/D:/hxht/MyEclipse/MyEclipse10/configuration/org.eclipse.osgi/bundles/142/1/.cp/"/>
<propertyname="src.dir"value="../src"/>
<propertyname="class.dir"value="../bin"/>
<propertyname="lib.dir"value="../WebRoot/WEB-INF/lib"/>
<pathid="build.lib">
<filesetdir="${lib.dir}">
<includename="*.jar"/>
</fileset>
<filesetdir="${xdoclet.basedir}">
<includename="*.jar"/>
<excludename="*xjavadoc*.jar"/>
<includename="jdk5/*.jar"/>
</fileset>
<pathelementlocation="${class.dir}"/>
</path>
<targetname="generator-schema"description="生成schema文件">
<taskdefname="schemaexport"classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"classpathref="build.lib">
</taskdef>
<echomessage="生成schema文件..."></echo>
<propertyname="hibernate.dialect"value="org.hibernate.dialect.SQLServerDialect"/>
<propertyname="hibernate.format_sql"value="true"/>
<propertyname="hibernate.show_sql"value="true"/>
<propertyname="hibernate.use_sql_comments"value="true"/>
<schemaexportquiet="no"text="true"drop="no"delimiter=";"output="../src/Recorder.sql">
<filesetdir="../src">
<includename="**/*.hbm.xml"/>
</fileset>
</schemaexport>
</target>
</project>
其中,“<!DOCTYPE project [ ]>”是编写的简单DTD约束,现代XML文件需要遵守“DTD或XML
Schema”约束,没有这一句,编译时会产生警告。“xdoclet.basedir”要根据Myeclipse的实际安装位置确定。
运行“build.xml”任务,可以右击“build.xml” ->“运行”,有“Ant构建”和“Ant构建...”两个菜单,“Ant构建”直接运行缺省任务,如果要运行其它任务,可用“Ant构建...”菜单选择。还有一种更好的方法:点击“窗口->显示视图->Ant”,调出了Ant视图窗口,在该视图窗口的空白处,右击,在弹出菜单中选择“添加构建文件”,选择“SSH_SQLServerA/src/build.xml”文件载入即可。这样,想运行某个任务,直接双击Ant视图中的任务即可。执行“build.xml”的任务“generator-scema”,产生“Recorder.sql”文件,效果图如下:
打开“Recorder.sql”文件,选择连接到数据库“MS_SQLServer”,运行,即可在专用数据库“study”中产生数据表“Recorder”。得到的“Recorder.sql”文件如下:
droptable Recorder;
createtable Recorder (
id
intidentitynotnull,
Namevarchar(20)notnull,
Artcles
intnotnull,
Books
intnotnull,
primarykey (id)
);
4 数据表访问操作测试
编写java代码运行数据表的操作访问,以测试和检验建立的数据表。要用到hibernate.cfg.xml配置文件和“会话工厂”,前面已经建立“会话工厂”,因此需求特别建立hibernate.cfg.xml配置文件。如果前面没有建立HibernateSessionFactory.java文件,也需要特别建立。4.1
建立Hibernate.cfg.xml配置文件
新建à其它àMyeclipseàHibernateàHibernate Configuration File,指定文件名称和位置,通常为/src/hibernate.cfg.xml,如前述设置数据库配置:自动得到的hibernate.cfg.xml配置文件,需要加入
l “<propertyname="javax.persistence.validation.mode">none</property>”,避免应用时Hibernate产生“Errorapplying
BeanValidation relational constraints”;
l
“<mapping resource="./dbApp/Recorder.hbm.xml" />”,指明具体的实体类映射文件;
l “<propertyname="show_sql">true</property>”“ <propertyname="format_sql">true</property>”,可选,以便在控制台观察相应的SQL语句及其操作过程。
修正后的hibernate.cfg.xml配置文件如下:
<?xmlversion='1.0'encoding='UTF-8'?>
<!DOCTYPEhibernate-configuration
PUBLIC "-//Hibernate/HibernateConfiguration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--Generated by MyEclipseHibernate Tools. -->
<hibernate-configuration>
<session-factory>
<propertyname="javax.persistence.validation.mode">none</property>
<propertyname="hbm2ddl.auto">update</property>
<propertyname="dialect">org.hibernate.dialect.SQLServerDialect</property>
<propertyname="connection.url">jdbc:sqlserver://localhost:1433;databaseName=study</property>
<propertyname="connection.username">sa</property>
<propertyname="connection.password">kzq666</property>
<propertyname="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<propertyname="myeclipse.connection.profile">MS_SQL_Server</property>
<propertyname="show_sql">true</property>
<propertyname="format_sql">true</property>
<mappingresource="./dbApp/Recorder.hbm.xml"/>
</session-factory>
</hibernate-configuration>
4.2
建立HibernateSessionFactory.java会话工厂
新建à其它àMyeclipseàHibernateàHibernate Session Factory,指定名称、位置及其所属“包”,通通常为/src/dbApp/HibernateSessionFactory,建立及其文件完善与前述完全一样,不再多述。4.3数据表访问操作测试文件的编写与处理
在包dbApp下编写一个测试类dbTest.java:向数据表加入一行数据,然后将数据表全部读出显示在控制台,代码如下:package dbApp;
import org.hibernate.*;
import dbApp.Recorder;
import dbApp.HibernateSessionFactory;
import java.util.*;
publicclassdbTest
{ publicstaticvoid
main(String[] args)
{
// 调用HibernateSessionFactory的getSession方法创建Session对象
Session session = HibernateSessionFactory.getSession();
Transactionts = session.beginTransaction(); //
创建事务对象
Recorder rcd =
new Recorder(); //
创建POJO类对象
rcd.setId(1); //
设置ID号
rcd.setName("kzq"); //
设置名字
rcd.setArticles(32); //
设置密码
rcd.setBooks(5); //
设置密码
session.save(rcd); //
保存对象
ts.commit(); //
提交事务
Query query =session.createQuery("fromRecorder");
@SuppressWarnings("rawtypes")
List list = query.list();
@SuppressWarnings("rawtypes")
Iterator it=list.iterator();
while(it.hasNext())
{ rcd = (Recorder)it.next();
System.out.println("ID:"+rcd.getId()+"Name:"+rcd.getName()+"Articles:"+rcd.getArticles()+"Books:"+rcd.getBooks());
}
HibernateSessionFactory.closeSession(); //
关闭Session
}
}
其中,@SuppressWarnings("rawtypes")为对下面语句警告的处理。
作为应用程序运行dbTest.java文件,即可在控制台看到相关数据表操作访问过程,也可打开SQLServer数据库观察结果。
应用时在控制台会看到有关log4j.prtoperties的红色警告,虽然不影响大局,但是非常缺憾。可以从集成开发环境中找到一个通用的log4j.prtoperties,如:
D:\hxht\MyEclipse\Common\plugins\org.apache.axis_1.4.0.v201005080400\lib\log4j.properties
拷贝到/src下既可消除警告,也可以记录调试或运行信息。
5 通过应用程序自动产生数据表
根据Hibernate的特点,通过java代码编制也可以自动形成数据库表,前提是需要先设置好Hibernate配置文件hibernate.cfg.xml和会议工厂HibernateSessionFactory.java。在包dbTest下建立数据表构造文件BuilderTable.java
package dbApp;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
publicclassBuildTable
{ publicstaticvoid
main(String[] args)
{ Configurationcfg =new Configuration().configure();
SchemaExport ex =
new SchemaExport(cfg);
ex.create(true,true);
}
}
作为应用程序运行BuilderTable.java,即可形成study下的数据表Recorder,并在控制台看到形成
SQL语句。
参考
1搭建Eclipse+MyEclipse+Tomcat开发环境2 MyEclipse10连接SQL Server 2012/2005
3 Myeclipse10搭建SSH框架Struts2.1+Spring3.0+Hibernate3.3
4用XDoclet2生成hibernate映射文件进而生成数据库ddl脚本
5 Eclipse快速上手Hibernate--1入门实例
6 Eclipse快速上手Hibernate--2利用Hbm映射文件开发
7 Eclipse快速上手Hibernate--3利用XDoclet开发
8八步详解Hibernate的搭建及使用
相关文章推荐
- Myeclipse10搭建SSH框架自动建立数据表1
- 使用Myeclipse10.0自动生成搭建SSH框架(数据库表自动反向转换成Hibernate实体)实现用户登陆
- 使用Myeclipse10.0自动生成搭建SSH框架(数据库表自动反向转换成Hibernate实体)实现用户登陆
- Myeclipse10搭建SSH框架自动建立数据表2
- myeclipse10搭建ssh框架
- 5分钟利用 Myeclipse8.6 快速搭建ssh(JPA)开发环境 并自动生成dao ,model
- myeclipse 建立mysql数据库连接及使用MyEclipse自动生成hibernate的数据库表
- Win8上MyEclipse10开发hadoop的环境搭建和连接Linux集群
- 为MyEclipse 9/10中的html/JSP编辑器添加代码自动提示
- MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3
- 如何搭建SSH框架,myeclipse搭建SSH框架详解
- 怎样从0开始搭建一个测试框架_10——数据生成器
- SSH框架介绍以及如何搭建(myEclipse下)
- 关于用MyEclipse2014的SSH框架搭建以及小例子实现 (例子确实太小)
- 为MyEclipse 9/10中的html/JSP编辑器添加代码自动提示
- MyEclipse10+Struts2.1+Spring3.3+Hibernate3.3全注解框架搭建.docx
- MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3
- Oracle-Oracle10 数据空间建立,导入,导出--oracle10g 删除步骤
- CIFAR_10处理数据——搭建模型——训练模型
- 用MyEclipse搭建SSH框架 Struts Spring Hibernate