lab5Generating a JavaServer Faces CRUD Application from a Database.docx
- 文档编号:25776933
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:20
- 大小:212.17KB
lab5Generating a JavaServer Faces CRUD Application from a Database.docx
《lab5Generating a JavaServer Faces CRUD Application from a Database.docx》由会员分享,可在线阅读,更多相关《lab5Generating a JavaServer Faces CRUD Application from a Database.docx(20页珍藏版)》请在冰豆网上搜索。
lab5GeneratingaJavaServerFacesCRUDApplicationfromaDatabase
GeneratingaJavaServerFacesCRUDApplicationfromaDatabase
Inthistutorial,youusetheNetBeansIDEtogenerateanddeployawebapplicationthatdisplaysdatafromadatabase.InthetutorialyougenerateawebapplicationwithCRUD(Create,Read,Update,Delete)functionalitythatusestheJavaPersistenceAPI(JPA)tomanagethedatabasetransaction.InthetutorialyoufirstcreateentityclassesbasedontablesinadatabaseandthencreateJavaServerFaces(JSF)pagesfromtheentityclassesusingtheJSFPagesfromEntityClasseswizard.
TheJSFPagesfromEntityClasseswizardenablesyoutoquicklyandeasilygenerateJSFpagesforworkingwithadatabasebasedontheentityclassesinyourproject.ThewizardwasupdatedinNetBeansIDE6.1toaddnewfeatures,supportmorecasesandtogeneratemorerobustcode.Theimprovementstothewizardincludethefollowing:
∙Thegeneratedcodeissimplerandeasiertomaintainandcustomize.
∙Correcthandlingofallrelationshiptypes,generatedandnon-generatedIDs,andembeddedIDs,includingembeddedIDfieldsthatcorrespondtoforeignkeycolumns.
∙Requiredcheckspreventnon-nullablecolumnviolations.
∙Orphancheckspreventnon-nullablecolumnviolationsinrelatedentities.
Thegeneratedcodealsoincludescheckstoverifythatthecurrententityiscorrectinordertopreventerrorsifauserdeviatesfromthenormalpageflow.Errorsmayoccur,forexample,whenworkinginmultiplebrowsertabs.
Usingthecodegeneratedbythewizard,itisnoweasiertoremovefieldsfromthegeneratedJSPs.Itisalsonowmucheasiertoapplystylestothegeneratedpages.
Contents
∙CreatingtheDatabase
oViewingtheDatabaseStructure
∙CreatingtheWebApplicationProject
∙GeneratingtheEntityClassesfromtheDatabase
∙EditingtheEntityClasses
∙GeneratingJSFPagesFromEntityClasses
∙RunningtheProject
Tofollowthistutorial,youneedthefollowingsoftwareandresources.
SoftwareorResource
VersionRequired
NetBeansIDE
Web&JavaEEversion6.1
JavaDeveloperKit(JDK)
Version6or
version5
GlassFishApplicationServer
V2
ConsultingAgencyDatabase
Download
CreatingtheDatabase
Thistutorialusesaconsultingagencydatabasecalledconsult.ThedatabaseisnotincludedwhenyouinstalltheIDEsoyouneedtofirstcreatethedatabasetofollowthistutorial.
TheconsultdatabasewasdesignedtodemonstratethescopeofIDEsupportforhandlingavarietyofdatabasestructures.Thedatabaseisthusnotintendedasanexampleofrecommendeddatabasedesign.Instead,itattemptstoincorporatemanyoftherelevantfeaturesthatarepotentiallyfoundinadatabasedesign.Forexample,theconsultdatabasecontainsallpossiblerelationshiptypes,compositeprimarykeys,andmanydifferentdatatypes.Seethetablesforamoredetailedoverviewofthedatabasestructure.
1.Downloadthecreate-consult.sqlfileandsavethefiletoyourlocalsystem.
2.IntheServiceswindow,expandtheDatabasesnode,right-clicktheJavaDBnodeandchooseStartServer.
3.Right-clicktheJavaDBnodeandchooseCreateDatabase.
4.TypeconsultastheDatabaseName,UserName,andPasswordintheCreateJavaDBdialog.ClickOK.
AnewnodeappearsundertheDatabasesnode(jdbc:
derby:
//localhost:
1527/consult[consultonCONSULT]).
5.Right-clickthenewnodeandchooseConnect.
6.Expandtheconsultdatabasenode,right-clicktheTablesnode,andchooseExecuteCommandtoopentheSQLeditor.
7.Copyandpastethecontentsofthecreate-consult.sqlfileintotheSQLeditor.
Note:
MakesurethattheconsultdatabaseisselectedintheConnectiondrop-downlist.
8.ClicktheRunSQLbuttonintheSQLtoolbar.
WhenyouclickRunSQL,thefollowingoutputappearsintheOutputwindow.
ViewingtheDatabaseStructure
Toseetheifthetableswerecreatedcorrectly,right-clicktheTablesnodeintheServiceswindowandchooseRefresh.YoushouldseethedatabasetablesundertheTablesnode.Youcanexpandatablenodetoseethetablecolumns,indexesandanyforeignkeys.Youcanright-clickacolumnandchoosePropertiestoviewadditionalinformationaboutthecolumn.
Ifyoulookatthestructureoftheconsultdatabaseyoucanseethatthedatabasecontainstablesthathaveavarietyofrelationshipsandvariousfieldtypes.Whencreatingentityclassesfromadatabase,theIDEautomaticallygeneratestheappropriatecodeforthevariousfieldtypes.Thefollowingtabledescribesthetablesfoundintheconsultdatabase.
DatabaseTable
Description
DesignFeatures
CLIENT
Aclientoftheconsultingagency
Non-generated,compositeprimarykey(whosefieldsdonotconstituteaforeignkey)
CONSULTANT
Anemployeeoftheconsultingagencywhomclientscanhireonacontractbasis
IncludesaresumefieldoftypeLONGVARCHAR
CONSULTANT_STATUS
Aconsultant'sstatuswiththeconsultingagency(forexample,ActiveandInactivearepossiblestatuses)
Non-generatedprimarykeyoftypeCHAR
RECRUITER
Anemployeeoftheconsultingagencyresponsibleforconnectingclientsandconsultants
PROJECT
Aprojectthataclientstaffswithconsultantsoftheconsultingagency
Non-generated,compositeprimarykeythatincludestwofieldsconstitutingaforeignkeytotheCLIENTtable
BILLABLE
Asetofhoursworkedbyaconsultantonaproject,forwhichtheconsultingagencybillstherelevantclient
IncludesanartifactfieldoftypeCLOB
ADDRESS
Aclient'sbillingaddress
PROJECT_CONSULTANT
Jointableindicatingwhichconsultantsarecurrentlyassignedtowhichprojects
Cross-referencesPROJECTandCONSULTANT,theformerhavingacompositeprimarykey
Theconsultdatabaseincludesavarietyofrelationships.Whencreatingentityclassesfromadatabase,theIDEautomaticallygeneratestheappropriatecodeforthetablerelationships,addingtheappropriateannotationstothefieldsintheentityclasses.Thefollowingtabledescribesthetablerelationshipsfoundintheconsultdatabase.(Theinverserelationshipsarenotshown.)
DatabaseTable
RelatedTable
RelationshipInformation
CLIENT
RECRUITER
nullableone-to-onewithmanualediting;nullableone-to-manyifnotedited
CLIENT
ADDRESS
non-nullableone-to-one
CLIENT
PROJECT
non-nullableone-to-many;inaProjectentity,thevalueoftheclientfieldispartoftheProject'sprimarykey
CONSULTANT
PROJECT
many-to-many
CONSULTANT
BILLABLE
non-nullableone-to-many
CONSULTANT_STATUS
CONSULTANT
non-nullableone-to-many
RECRUITER
CONSULTANT
nullableone-to-many
PROJECT
BILLABLE
non-nullableone-to-many
Nowthatthedatabaseiscreated,youcancreatethewebapplicationandusetheEntityClassesfromDatabasewizardtogenerateentityclassesbasedonthedatabasetables.
CreatingtheWebApplicationProject
InthisexerciseyoucreateawebprojectandaddtheJavaServerFacesframeworktotheproject.Whenyoucreatetheproject,youwillselectJavaServerFacesintheFrameworkspaneloftheNewProjectwizard.
1.ChooseFile>NewProject(Ctrl-Shift-N).
2.SelectWebApplicationfromtheWebcategoryandclickNext.
3.TypeConsultingAgencyfortheprojectnameandsettheprojectlocation.
4.DeselecttheUseDedicatedFolderoption,ifselected.
Forthistutorialthereislittlereasontocopyprojectlibrariestoadedicatedfolderbecauseyouwillnotneedtosharelibrarieswithotherusers.
ClickNext.
5.SettheservertoGlassFishandsettheJavaEEVersiontoJavaEE5.ClickNext.
6.SelecttheJavaServerFacescheckboxintheFrameworkspanel.ClickFinish.
Note:
Whenselectingtheframework,besuretoselecttheJavaServerFacesframework,NOTVisualWebJavaServerFaces.
WhenyouclickFinish,theIDEcreatesthewebapplicationprojectandopensWelcomeJSF.jspintheeditor.YoucancloseWelcomeJSF.jspbecauseyouwillnotneedtoeditthisfile.
GeneratingtheEntityClassesfromtheDatabase
AfteryoucreatethedatabaseandthedatabaseconnectionisregisteredwiththeIDE,youcanusetheEntityClassesfromDatabasewizardtoquicklygenerateentityclassesbasedonthetablesinthedatabase.TheIDEcangenerateentityclassesforeachtablethatyouselect,andcanalsogenerateanynecessaryentityclassesforrelatedtables.
1.IntheProjectswindow,right-clicktheConsultingAgencynode,andchooseNew>EntityClassesfromDatabase.
2.SelectNewDataSourcefromtheDataSourcedrop-downlisttoopentheCreateDataSourcedialog.
3.Typejdbc/consultastheJNDINameandselectjdbc:
derby:
//localhost:
1527/consult[consultonCONSULT]astheDatabaseConnection.ClickOKtoclosethedialogboxandreturntothewizard.
ThetablesintheconsultdatabaseappearintheAvailableTableslistbox.
4.ClickAddAllinthewizard.ClickNext.
5.TypeentitiesasthePackage.Makesurethatthecheckboxtogeneratenamedqueriesisselected.
6.ClickCreatePersistenceUnittoopentheCreatePersistenceUnitdialogbox.ClickCreateinthedialogboxtocreatethepersistenceunitandreturntothewizard.
Youcankeepthedefaultvaluesforthepersistenceunit.
7.ClickFinish.
Whenusingthewizardtocreateentityclassesfromadatabase,theIDEexaminestherelationshipsbetweenthetables.IntheProjectswindow,ifyouexpandtheentitiesSourcePackagenodeyoucanseethattheIDEgeneratedanentityclassforeachtableexceptforthePROJECT_CONSULTANTtable.TheIDEdidnotcreateanentityclassforPROJECT_CONSULTANTbecausethetableisajointable.
TheIDEalsogeneratedtwoadditionalclassesforthetableswithcompositeprimarykeys:
CLIENTandPROJECT.Theprimarykeyclassesforthesetables(ClientPK.javaandProjectPK.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lab5Generating JavaServer Faces CRUD Application from Database
链接地址:https://www.bdocx.com/doc/25776933.html