仓酷云
标题:
JAVA网页编程之利用Hibernate 毗连SQL Server 2000
[打印本页]
作者:
简单生活
时间:
2015-1-18 11:51
标题:
JAVA网页编程之利用Hibernate 毗连SQL Server 2000
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。server
以下代码在JDK5.0,Hibernate2.1,SQLServer2000SP3中测试经由过程。
第一次利用Hibernate作耐久层,感到利用起来仍是对照庞大的,特别是调试起来很不便利。Hibernate基于反射的机制固然很天真,但分明给跟踪代码打造了停滞,给出的非常信息量也太少。团体感到其改善的余地还很年夜,好比Java新增添了Annotation语法后,是不是可以使用它来界说ORM,而代替hbm.xml的情势。
好了,进进正题。
起首,必需设置数据库,上面以在数据库yufan中的操纵为例。
CREATETABLECUSTOMER(CIDINTEGERNOTNULLPRIMARYKEY,USERNAMEVARCHAR(12)NOTNULL,PASSWORDVARCHAR(12));
然后是一个数据对象,必需为它的每一个字段供应读写属性办法,Hibernate会用反射来检索。
//Customer.java
publicclassCustomer{
privateintid;
privateStringusername;
privateStringpassword;
publicintgetId(){
returnid;
}
publicStringgetPassword(){
returnpassword;
}
publicStringgetUsername(){
returnusername;
}
publicvoidsetId(intid){
this.id=id;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
}
然后是Hibernate的映照Customer.hbm.xml
<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<classname="Customer"table="Customer"proxy="Customer">
<idname="id"column="CID">
<generatorclass="increment"/>
</id>
<propertyname="username"column="USERNAME"/>
<propertyname="password"column="PASSWORD"/>
</class>
</hibernate-mapping>
类和映照分离在一同,界说了ORM。
上面是Hibernate的设置文件,包括数据库毗连,映照文件援用等。文件名必需是hibernate.cfg.xml
<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPEhibernate-configuration
PUBLIC"-//Hibernate/HibernateConfigurationDTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factoryname="java:/hibernate/HibernateFactory">
<propertyname="show_sql">true</property>
<propertyname="connection.driver_class">
com.jnetdirect.jsql.JSQLDriver
</property>
<propertyname="connection.url">
jdbc:JSQLConnect://localhost:1433;database=yufan;
</property>
<propertyname="connection.username">
sa
</property>
<propertyname="connection.password">
yufan
</property>
<propertyname="dialect">
net.sf.hibernate.dialect.SQLServerDialect
</property>
<mappingresource="Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
主要的property包含connection.driver_class,指定JDBC数据库驱动。connection.url制订数据库的Url。我利用的是JSQLDriver,功效上比MS的JDBC驱动壮大。但必需注重的是,在指定命据库的时分,必需利用database=或databaseName=的语法,而DatabaseName则会堕落。MS的驱动则无此成绩。我刚碰到此成绩时真是茫然无绪。。。最初发明是云云。。。
在这个文件中,不克不及利用XML正文,感到是Hibernate的缺点。
最初是Test.java
importnet.sf.hibernate.*;
importnet.sf.hibernate.cfg.*;
publicclassTest{
publicstaticvoidmain(String[]args){
try{
SessionFactorysf=newConfiguration().configure().buildSessionFactory();
Sessionsession=sf.openSession();
Transactiontx=session.beginTransaction();
for(inti=0;i<20;i++){
Customercustomer=newCustomer();
customer.setUsername("customer"+i);
customer.setPassword("customer");
session.save(customer);
}
tx.commit();
session.close();
}
catch(HibernateExceptione){
e.printStackTrace();
}
}
}
好了,在项目中增加对Hibernate库文件的援用,编译实行,你会在数据库中找到新增加的纪录。
代码部分取自史上最复杂的Hibernate进门简介bywatano_cc,依据SQLServer修改。
最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。
作者:
冷月葬花魂
时间:
2015-1-21 16:25
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者:
再现理想
时间:
2015-1-30 21:08
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者:
山那边是海
时间:
2015-1-31 05:55
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者:
admin
时间:
2015-2-6 17:34
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者:
爱飞
时间:
2015-2-9 06:48
是一种语言,用以产生「小应用程序(Applet(s))
作者:
飘飘悠悠
时间:
2015-2-26 00:13
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者:
简单生活
时间:
2015-3-8 10:36
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者:
老尸
时间:
2015-3-15 21:22
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者:
精灵巫婆
时间:
2015-3-19 15:19
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者:
活着的死人
时间:
2015-3-28 10:03
Java 编程语言的风格十分接近C、C++语言。
作者:
乐观
时间:
2015-4-1 16:08
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者:
深爱那片海
时间:
2015-4-5 11:48
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者:
金色的骷髅
时间:
2015-4-17 20:12
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者:
若天明
时间:
2015-4-23 22:32
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者:
再见西城
时间:
2015-4-25 01:40
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者:
愤怒的大鸟
时间:
2015-5-8 19:50
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者:
蒙在股里
时间:
2015-6-16 20:57
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者:
透明
时间:
2015-7-12 13:56
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者:
海妖
时间:
2015-7-14 23:23
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2