简单生活 发表于 2015-1-18 11:51:24

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:16

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

再现理想 发表于 2015-1-30 21:08:17

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

山那边是海 发表于 2015-1-31 05:55:18

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

admin 发表于 2015-2-6 17:34:26

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

爱飞 发表于 2015-2-9 06:48:32

是一种语言,用以产生「小应用程序(Applet(s))

飘飘悠悠 发表于 2015-2-26 00:13:04

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

简单生活 发表于 2015-3-8 10:36:05

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

老尸 发表于 2015-3-15 21:22:16

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

精灵巫婆 发表于 2015-3-19 15:19:55

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

活着的死人 发表于 2015-3-28 10:03:39

Java 编程语言的风格十分接近C、C++语言。

乐观 发表于 2015-4-1 16:08:37

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

深爱那片海 发表于 2015-4-5 11:48:30

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

金色的骷髅 发表于 2015-4-17 20:12:54

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

若天明 发表于 2015-4-23 22:32:24

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

再见西城 发表于 2015-4-25 01:40:35

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

愤怒的大鸟 发表于 2015-5-8 19:50:58

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

蒙在股里 发表于 2015-6-16 20:57:57

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

透明 发表于 2015-7-12 13:56:32

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

海妖 发表于 2015-7-14 23:23:46

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
页: [1]
查看完整版本: JAVA网页编程之利用Hibernate 毗连SQL Server 2000