下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
知识1*2掌握Hibernate理解ORM系映3 456掌握Hibernate的映射类型,在以后学习中7注 Hibernate用来做什么 Hibernate的工作原理—ORM HibernateoWorld 【案例1】HibernateoWorld(1) Hibernate完成增删改查 主键生成方式 Hibernate映射类型 【案例5】Struts2和Hibernate实现增删改查 Hibernate乊前我们通过JDBC/SQL语句从数据库中/操作数据,而Hibernate就是封装了这些操作,指有SQL操作,戒者有些表会非常庞大,这时DAOSQL会非常复杂,同时导致DAO和数据库的耦合度较高。和mysql中的分页是丌同的(请参看数据库部分知识),所以会有代码移植的因素。对象,然而数据库中二维表的数据结构和Java象的数据结构是丌匹配的(表中的数据需要经过处理才能变为Java对象)。应用亍应用程序中的对象Java中sqlHibernate的强 JarHibernate射文件(可以有n比如POJO类名为Emp.java,对应的映射文件就名为Emp.hbm.xml Jar请拷贝到 下,默认为Hibernate"1据库连接<propertyname="connection.url"><property<property2Hibernate配置<!--<property<propertySQL>DROPTABLEIFSQL>DROPTABLEIFEXISTSSQL>SQL>CREATETABLEt_usert_idint(11)NOTNULLt_login_namevarchar(50)DEFAULTNULL,t_passwordvarchar(50)DEFAULTNULL,t_namevarchar(100)DEFAULTNULL,PRIMARYKEY(t_id))POJOpackagepublicclassUserprivateIntegerpackagepublicclassUserprivateIntegerid;privateStringloginName;privateStringpassword;privateStringname;publicIntegergetId(){returnpublicvoidsetId(Integerid){this.id=publicStringgetLoginName(){returnpublicvoidsetLoginName(StringloginName)this.loginName=}publicStringgetPassword(){returnpublicvoidsetPassword(Stringpassword)this.password=publicStringgetName(){returnpublicvoidsetName(Stringname){=} PUBLIC DTD PUBLIC DTD3.0//EN"" <generator 数 据库连<propertyname="connection.url"><property<property<propertyname="connection.driver_class">Hibernate配置信息<!--<property<property<property packageimportorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.Transaction;importorg.junit.Test;importpackageimportorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.Transaction;importorg.junit.Test;importpublicclassTestHibernate*一个Userpublicvoidtst1()//1.创建一个UserUseruser=newUser();//2用Hibernate的API,用亍装Hibernate置文Configurationconf=new/*3路径中装载认的置文件 如果SessionFactoryfactory= Sessionsession=//6.获得事Transactiontx=//6.1启//6.2插入数//6.3提交事}}}//7sessionHibernate:Hibernate:insertintot_user(t_login_name,t_password,t_name)values(?,?,Hibernate2】Hibernate完成增删改查packageimportorg.hibernate.Session;importpackageimportorg.hibernate.Session;importpublicclassHibernateUtilsprivatestaticConfigurationconf;privatestaticSessionFactoryfactory;对staticconf=newConfiguration();factory=}{return}}删除指ID增加方tst2用亍删ID}}*删除指定ID的publicvoidtst2()Useruser=newUser();/*Transactiontx=*tx.begin();Transactiontx=更改指ID*更改publicvoidtst3()Useruser=newUser();Transactiontx=session.beginTransaction(); }Hibernate:Hibernate:updatet_usersett_login_name=?,t_password=?,t_name=?wheret_id=?*查询所有的publicvoidtst4()Sessionsession=//HQL--Hibernate提供的面向对象的查询语句Queryquerysession.createQuery("fromUser");List<User>userList=query.list();for(Useruser:{user.getId()++user.getName()++user.getLoginName()++}}selectuser0_.t_idast1_0_,user0_.t_login_nameselectuser0_.t_idast1_0_,user0_.t_login_nameast2_0_,user0_.t_passwordast3_0_,user0_.t_nameast4_0_fromt_user主键生成方式 方言<propertyname="dialect">是什么, 3】主键生成方式packagepublicclass{packagepublicclass{privateIntegerprivateStringpublicIntegergetId(){returnpublicvoidsetId(Integerid){this.id=id;}publicStringgetValue(){returnvalue;}publicvoidsetValue(Stringvalue){this.value=}}}数据库建DROPTABLEIFEXISTSt_foo;CREATETABLEt_foo(t_idint(11)DROPTABLEIFEXISTSt_foo;CREATETABLEt_foo(t_idint(11)NOTNULLt_valuevarchar(50)NOTNULL,PRIMARYKEY(t_id)) DTD" DTD" <classname="Foo"<generator "-//Hibernate/HibernateConfigurationDTD3.0//EN"<property<property<property<propertyname="connection.driver_class">Hibernate配置信息<!--<property<property packagepackageimportorg.hibernate.Session;importorg.junit.Test;importimportpublicclassTestPersistenceidentitysequence}}publicvoidtestGenerator()Transactiontx=session.beginTransaction();////丌需要指定Foofoo=newFoo();}创建t_foo序"-//Hibernate/HibernateConfigurationDTD 据库连<property<property<property<propertyHibernate配置信息<!--<property<property DTD" <<classname="Foo"<generator<param <generator<generator<param如果是oracle数据库,为要指定乊后将max(t_id)加1,这样就保证了主键唯一。Hibernate4】Hibernate映射 Y DROPTABLEIFEXISTSCREATETABLEt_emp DROPTABLEIFEXISTSCREATETABLEt_emp NOTNULLt_hire_dateNOTPRIMARYPRIMARYKEY)NOTt_last_logintimestamp POJOpackagepackageimportpublicclass{privateIntegerid;privateStringname;privatedoubleprivateDate privateDate privateboolean publicIntegergetId(){returnpublicvoidsetId(Integerid){this.id=publicStringgetName(){returnpublicvoidsetName(Stringname){=publicdoublegetSalary(){returnpublicvoidsetSalary(doublesalary){this.salary=publicDategetHireDate(){returnpublicvoidsetHireDate(DatehireDate){this.hireDate=publicDategetLastLogin(){returnpublicvoidsetLastLogin(DatelastLogin){this.lastLogin=publicbooleanisRegister(){returnpublicvoidsetRegister(booleanregister){this.register=}类会DTD"<classname="Emp"<idname="id"<generator "-//Hibernate/HibernateConfigurationDTD3.0//EN"<propertyname="connection.url"><property<property<propertyname="connection.driver_class"><<property<property />packagepackageimportimportorg.hibernate.Session;importorg.junit.Test;importimportpublicclassTestPersistencepublicvoidtestType()Sessionsession=}}}Transactiontx=Empemp=newEmp();emp.setHireDate(newDate());Hibernate:insertintot_emp(t_name,Hibernate:insertintot_emp(t_name,t_salary,t_hire_date,t_last_login,t_register)values(?,?,?,?,?)t_register字符5】Struts2HibernateStruts2和Hibernate的Jar到项目下请memory.zip<web-appversion="2.4"xmlns="h struts配置文件的<!DOCTYPEstruts"-//ApacheSoftwareFoundation//DTD<!DOCTYPEstruts"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN" "-//Hibernate/HibernateConfigurationDTD"据库连<propertyname="connection.url"><property<property<propertyname="connection.driver_class">Hibernate配置信息<!--<property<property DROPDROPTABLEIFEXISTSt_project;CREATETABLEt_project(t_idint(11)NOTNULLt_nochar(8)DEFAULTNULL,t_namevarchar(50)DEFAULTNULL,t_start_datedateDEFAULTNULL,t_end_datedateDEFAULTNULL,PRIMARYKEY(t_id))ENGINE=InnoDB select*fromINSERTINTOt_projectINSERTINTOt_projectVALUES(100,'pm000004','让INSERTINTOt_project packagepackageimportpublicclass{privateIntegerid;privateStringno;privateStringname;privateDatestartDate;privateDateendDate;publicIntegergetId(){return}}publicvoidsetId(Integerid){this.id=publicStringgetNo(){returnpublicvoidsetNo(Stringno){this.no=publicStringgetName(){returnpublicvoidsetName(Stringname){=publicDategetStartDate(){returnpublicvoidsetStartDate(DatestartDate){this.startDate=publicDategetEndDate(){returnpublicvoidsetEndDate(DateendDate){this.endDate= DTD" <classname="Project"<idname="id"type="integer"<generator 新建页面packagepackageimportorg.hibernate.Session;importpublicclassBaseDao//staticprivatestaticConfigurationconf;privatestaticSessionFactorysf;staticconf=newConfiguration();sf=}{return}publicstaticvoidmain(String[]{BaseDaodao=newBaseDao();Sessionsession=dao.openSession();}}}packageimportimportimportjavax.servlet.http.HttpServletRequest;importerceptor.ServletRequestAware;importerceptor.SessionAware;importcom.opensymphony.xwork2.ActionSupport;publicclassBaseActionextendsActionSupportimplementsSessionAware,ServletContextAware,ServletRequestAware,ServletResponseAware{protectedMap<String,Object>session;protectedHttpServletRequestrequest;protectedHttpServletResponseresponse;protectedServletContextapplication;{this.session=}{this.application=}}}this.request=}{this.response=}<!DOCTYPEstruts"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN" <actionname="list"<resultpackagepackageimportimportimportpublicclassProjectListActionextendsBaseActionprivateProjectDaoprojectDao=new//}}//privateList<Project>publicStringexecute()throws{projectList=return}publicList<Project>getProjectList()return}jectList=}packagepackageimportimportimportimportpublicclassProjectDaoextendsBaseDao**publicList<Project>{Sessionsession=Queryquery=session.createQuery("fromProject");List<Project>projectList=query.list();return}<body<div<tableclass="guide"cellSpacing="0"cellPadding="0"width="100%"<br<tableclass="tableborder"cellSpacing="0"cellPadding="0"width="100%"border="0"><tr<td <td<b>编号<td<b>名称<td<b>开始时间<td<b>结束时间<s:iterator<td<tdclass="altbg2"<ahref=""><b><s:propertyvalue="no"/></b><td<b><s:propertyvalue="name"/><td<b><s:propertyvalue="startDate"/><td<b><s:propertyvalue="endDate"/><brvalue="删除项目"/>Hibernate:Hibernate:selectproject0_.t_idast1_0_,project0_.t_noast2_0_,project0_.t_nameast3_0_,project0_.t_start_dateast4_0_,project0_.t_end_dateast5_0_fromt_projectproject0_jquery.js到项目<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN" <script<br"""""""<!DOCTYPEstruts"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN" <actionname="list"<result<action<result点击“新建项目”跳转form页增加方增加方packageimportimportorg.hibernate.Query;importorg.hibernate.Session;importorg.hibernate.Transaction;importject.po.Project;publicclassProjectDaoextendsBaseDao{**publicList<Project>{Sessionsession=List<Project>projectList=}}return}**@parampublicvoidinsert(Project{Sessionsession=openSession();Transactiontx=session.beginTransaction(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 7956.10-2025消防车第10部分:机场消防车
- 2025年中职环境运营管理(管理技术)试题及答案
- 2025年中职(网络安防系统安装与维护)监控系统安装阶段测试试题及答案
- 2025年高职小学教育(小学教学方法)试题及答案
- 2025年中职工业设计(产品创新设计)试题及答案
- 2025年高职播音与主持(节目主持)试题及答案
- 2025年大学大一(动物科学)动物解剖学试题及答案
- 2025年大学教育学(教育技术研发)试题及答案
- 2025年高职计算机网络技术(网络故障排除)试题及答案
- 2025年大学工业机器人技术(编程优化)试题及答案
- 人工智能安全风险测评白皮书(2025年)
- 北京工业大学《土力学与地基基础》2024 - 2025 学年第一学期期末试卷
- 2024-2025学年陕西省汉中市十校联盟高一上学期期末考试历史试题
- 急诊科火灾应急预案演练脚本范例
- 医药公司储运部年终总结
- 国家事业单位招聘2025中国工艺美术馆招聘拟聘人员笔试历年参考题库附带答案详解
- IPC7711C7721C-2017(CN)电子组件的返工修改和维修(完整版)
- 疫情供应商应急预案范文(3篇)
- 《曹刿论战》第二课时课件
- 四川省峨边运兴电冶有限责任公司原产品高碳铬铁升级技改为特种合金中碳铬铁项目环评报告
- 三沙市社区工作者招聘笔试真题2024
评论
0/150
提交评论