为什么我的javaweb项目有hibernate3.jar的jar包,而逆向生成pojo类都会找不到项目,如果

ibatis 和 hibernate 区别是什么呢, 都说大项目用hibernate回比较好,这是为什么呢?_百度知道
ibatis 和 hibernate 区别是什么呢, 都说大项目用hibernate回比较好,这是为什么呢?
Hibernate现在已经是主流O&#47,产品的完善性.hbm,将SQL所需要的参数传入进去和返回的结果字段映射到指定的POJO,所有的SQL都是自动生成和执行, then an O&#47. That're working with a legacy database,而且ibatis最好的一个亮点在于可以操作存储过程,无法对数据库结构做到控制和修改:1.
iBATIS非常简单易学;OJB 会根据制定的存储逻辑,甚至不需要开发人员对SQL的熟练掌握,ibatis的着力点则在于POJO与SQL之间的映射关系,所有操作都是java对象,也可以生成一部分,如果涉及到数据库字段的修改,Hibernate相对较复杂,性能要求极为苛刻。在这种情况下iBATIS会有更好的可控性和表现,何为半封闭式,对数据库的操作提供了完整封装, or you&#39,不像Hibernate映射的PO是可以表达立体的对象继承。类似的,本质区别在于这种PO是扁平化的,开发人员不需要再关注底层的建设. vendor supplied),通过这个映射文件的配置,iBATIS的工作量比Hibernate要大很多:If you are starting a new project and you&#39.g,从文档的丰富性,门槛较高,偶尔会写一些Hql。6.
以数据库字段一一对应映射得到的PO和Hibernte这种对象化映射得到的PO是截然不同的.If you are accessing any 3rd party databases (e;Rre in full control of your object model and database design。2.
二者都是比较优秀的开源产品3.
当系统属于二次开发。5.
iBATIS需要手写sql语句;R mapper might not be capable of handling the situation,Hibernate修改的地方很少,版本的开发速度都要强于iBATIS8.
最关键的一句话是iBATIS的作者说的,而更注重业务逻辑,hibernate&#47,在对数据操作时只需调用hibernate 提供的方法完成数据层的操作;R Mapping框架,hibernate 与 ibatis 都是目前最流行的 O&#47,这将会直接影响到你的整个软件系统的设计思路,而iBATIS要把那些sql mapping的地方一一修改,自动生成相应的SQL并调用JDBC接口完成执行ibatis 它是半封闭式的,聚合等等关系的, or even just a really poorly designed database, Hibernate is a good choice of O&#47,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。二者的对比,那iBATIS的灵活性将比Hibernate更适合4.
系统数据处理量巨大,所有的SQL都需要开发人员在映射文件编写,这相对hibernate 对比。同样的需求.net 现在已经是 JBoss 的一部分了ibatis 它属于 apache 下的一个子项目hibernate 它是全封闭式的;R mapping 框架hibernate 它出身于 sfhibernate 与 ibatis 的区别,开发人员只需定义好POJO与数据库的映射(*,Hibernate则基本上可以自动生成;s were an SQL Mapper comes in handy
其他类似问题
ibatis的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁2288人阅读
本站文章均为原创,转载务必在明显处注明:转载自&原文链接:&&本博客最新动态!及时将最新博文通知您!OK,从这篇开始Himi将与大家一起进入Hibernate框架的学习啦,新手新手的说,希望大家多多指教;对于Hibernate概述一下:” &Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 ”本篇则简单介绍大家如何配置我们的第一个Hibernate框架环境和第一个项目,HelloHibernate;——准备工作:1. Himi这里使用的一些开发资源如下:1.1 & & & &&hibernate-distribution-3.3.2.GA & (hibernate核心包)1.2 & & & & hibernate-annotations-3.4.0.GA & (annotations核心包)1.3 & & & &&slf4j-1.5.8 & & & (slf4j 实现库,虽然hibernate核心包中有slf4j的jar包,但是只是api包没有实现)1.4 & & & & &mysql-connector-java-3.1.14 & &(mysql 驱动)OK了,关于资源下载,大家百度下,当然Himi这里用的不是最新的,刚上手怕最新的自己玩不转~咳咳、Elipse 中user lib 配置工作:(这里Himi用的mac的eclipse)我们添加到新建的一个 Java Project里,这里Himi新建的Java项目名:HelloH打开你的Eclipse-偏好设置-User Libraries中:点击 New… 新建,然后输入自定义名称,然后添加Hibernate所需的jar包,jar包一共8个如下:12345/HibernateSoftWare/hibernate-distribution-3.3.2.GA/hibernate3.jar&&/HibernateSoftWare/hibernate-distribution-3.3.2.GA/required/lib 下的6个jar包&/slf4j-1.5.8/slf4j-1.5.8/slf4j-nop-1.5.8.jar如下图:&OK,搞定之后,然后右键你的项目,然后-&Build Path-&Add Libraries -&User Library-&选择你新建的包含hibernate8个jar包的library即可;继续右键你的项目Build Path-&Add External Archives 将&mysql-connector-java-3.1.14, mysql驱动导入项目中;MySQL 准备工作:这里Himi新建一个数据库“hibernate”,新建表“teacher”;对于MySQL不太了解的,请移步到Himi本博客的MySQL相关博文中学习下吧,这里Himi不再赘述了;这里为了后续讲述便于理解,Himi将建立好的show出来让大家过目下;123456789101112131415161718192021222324252627mysql&+| Database&&&&&&&&&& |+| information_schema || hellohibernate&&&& || hibernate&&&&&&&&& || himiDB&&&&&&&&&&&& || mysql&&&&&&&&&&&&& || people&&&&&&&&&&&& || performance_schema || test&&&&&&&&&&&&&& |+8 rows in set (0.00 sec)&mysql&Database changedmysql&+| Field | Type&&&&&&& | Null | Key | Default | Extra |+| id&&& | int(11)&&&& | NO&& | PRI | NULL&&& |&&&&&& || name& | varchar(20) | YES& |&&&& | NULL&&& |&&&&&& || age&& | int(11)&&&& | YES& |&&&& | NULL&&& |&&&&&& || gold& | int(11)&&&& | YES& |&&&& | NULL&&& |&&&&&& |+4 rows in set (0.07 sec)其中 id &Himi将其设置为&primary key ;准备工作完成后,我们首先创建两个类,一个入口函数类:MainTest:123456789101112131415import org.hibernate.Simport org.hibernate.SessionFimport org.hibernate.cfg.C&import com.himi.T&public class MainTest {&&&&&/**&&&&&* @param args&&&&&*/&&&&public static void main(String[] args) {&&&&}&}再创建一个Teacher类:(&POJO)ps. &不太了解POJO的请百度下先~123456789101112131415161718192021222324252627282930313233package com.&public class Teacher {&&&&private int &&&&private S&&&&private int &&&&private int &&&&&public int getId() {&&&&&&&&return &&&&}&&&&public void setId(int id) {&&&&&&&&this.id =&&&&}&&&&public String getName() {&&&&&&&&return &&&&}&&&&public void setName(String name) {&&&&&&&&this.name =&&&&}&&&&public int getAge() {&&&&&&&&return &&&&}&&&&public void setAge(int age) {&&&&&&&&this.age =&&&&}&&&&public int getGold() {&&&&&&&&return &&&&}&&&&public void setGold(int gold) {&&&&&&&&this.gold =&&&&}}整个项目目录如下图所示:&大家先不要在意, &hibernate.cfg.xml 和 Teacher.hbm.xml 这两个文件,下面再详细介绍;首先我们使用Hibernate就应该先创建Hibernate的配置文件:(这里Himi采用默认此配置名为hibernate.cfg.xml,当然这个配置文件可以自定义名但是这个名字是否采用默认将影响后面我们使用的不同,这个后面将会详细讲解到)下面是&hibernate.cfg.xml中的内容:1234567891011121314151617181920212223242526272829303132333435363738&?xml version='1.0' encoding='utf-8'?&&!DOCTYPE hibernate-configuration PUBLIC&&&&&&&&&-//Hibernate/Hibernate Configuration DTD 3.0//EN&&&&&&&&&&&&&&hibernate-configuration&&&&&&&session-factory&&&&&&&&&&&&&&&&&&&property name=&connection.driver_class&&com.mysql.jdbc.Driver&/property&&&&&&&&&&property name=&connection.url&&jdbc:&/property&&&&&&&&&&property name=&connection.username&&root&/property&&&&&&&&&&property name=&connection.password&&Himi&/property&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&property name=&dialect&&org.hibernate.dialect.MySQLDialect&/property&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&property name=&cache.provider_class&&org.hibernate.cache.NoCacheProvider&/property&&&&&&&&&&&&&&&&&&&property name=&show_sql&&true&/property&&&&&&&&&&&&&&&&&&&&&&&&&&&&mapping resource=&com/himi/Teacher.hbm.xml&/& &&&&&&/session-factory&&&/hibernate-configuration&这个配置文件我们不要自己写噢,去Hibernate的API文档中找到copy,然后简单针对项目进行设置即可;OK,配置好这个文件其实就是对hibrenate进行的一些配置而已;下面我们来看Teacher.hbm.xml文件:这个文件的目录与Teacher.java默认放置同一级目录,约定俗成没有什么why;那么这个文件是个映射文件,它的主要作用是告诉hibernate我们Teacher类中的属性与数据库的哪些字段匹配;OK,看下其中的内容;(注意这个文件,在Hibernate文档中也有例子,我们copy过来进行修改不要自己写!)123456789101112131415161718&?xml version=&1.0&?&&!DOCTYPE hibernate-mapping PUBLIC&&&&&&&&&-//Hibernate/Hibernate Mapping DTD 3.0//EN&&&&&&&&&&&&&&hibernate-mapping package=&com.himi&&&&&&&class name=&Teacher&&&& &&&&&&&&&id name =&id&/&&&&& &&&&&&&&&&&&&&&&&property name=&name&/&&&&&&&&&&property name=&age&/&&&&&&&&&&property name=&gold&/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/class&&/hibernate-mapping&&OK, 映射文件写完之后记得要在hibernate的配置文件(hibernate.cfg.xml)中进行声明:1&mapping resource=&com/himi/Teacher.hbm.xml&/&OK,下面我们来测试使用,打开我们的MainTest.java文件,添加内容如下:123456789101112131415161718192021222324252627282930313233import org.hibernate.Simport org.hibernate.SessionFimport org.hibernate.cfg.C&import com.himi.T&public class MainTest {&&&&&/**&&&&&* @param args&&&&&*/&&&&public static void main(String[] args) {&&&&&&&&Teacher teacher = new Teacher();&&&&&&&&teacher.setId(1);&&&&&&&&teacher.setName(&Himi&);&&&&&&&&teacher.setAge(22);&&&&&&&&teacher.setGold(123);&&&&&&&&&&&&&&&&&Configuration cfg = new Configuration();&&&&&&&&SessionFactory sf = cfg.configure().buildSessionFactory();&&&&&&&&&&&&&&&&&&&&&&&&Session ss = sf.openSession();&&&&&&&&ss.beginTransaction();&&&&&&&&ss.save(teacher);&&&&&&&&ss.getTransaction().commit();&&&&&&&&&ss.close();&&&&&&&&sf.close();&&&&}&}OK,运行你的man函数类,运行结果:1Hibernate: insert into Teacher (name, age, gold, id) values (?, ?, ?, ?)然后检验一下数据库中是否正常存入了一条数据:123456789101112131415161718192021222324mysql&+| Database&&&&&&&&&& |+| information_schema || hellohibernate&&&& || hibernate&&&&&&&&& || himiDB&&&&&&&&&&&& || mysql&&&&&&&&&&&&& || people&&&&&&&&&&&& || performance_schema || test&&&&&&&&&&&&&& |+8 rows in set (0.00 sec)&mysql&Database changedmysql& select *from +| id | name | age& | gold |+|& 1 | Himi |&& 22 |& 123 |+1 row in set (0.00 sec)噢,哈哈,看到一条 Himi 数据正常添加了哈哈~&& & 那么这里再说两点:这里给出3个运行时出现的问题;&1. &出现 “Host” ‘xxx.xxx.x.xxx’ is not allowed to connect to this mysql server错误;如下图:&解决方法:允许用户从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码12345GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY&'mypassword' WITH GRANT OPTION;&FLUSH&& PRIVILEGES;2. 出现&’xxx.xxx.x.xxx’ (using password:YES) 错误;如下图:解决方法:Mysql中执行:1grant all on *.* to root@192.168.1.15 identified by 'Himi'注意这里by 后单引号内是电脑的user的名字;3.可能有童鞋第一次运行正常,但是第二次运行则出现 &Duplicate entry ’1′ for key ‘PRIMARY’ 错误;这个问题是主健重复了的错误~ 因为主键约束: 主键不能为空,也不能重复 !如果对Mysql不了解的,可以先采用从mysql ,truncate 掉你table的数据,再运行就好了!或者将Teacher对象的ID不要与已存在数据库中的主建id重复即可;源码下载:&&&(666 字节, 5 次)
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1934546次
积分:17630
积分:17630
排名:第189名
原创:147篇
评论:2796条
移动开发专家,专注于移动开发领域,多年 J2me、Android、iOS 平台游戏开发经验;
CSDN、ITeye、51CTO、eoe-Android、泰然、中国移动开发者社区、微度网等多家技术论坛担任专家与版主;
? 【iOS】(高级群/超级群)
Cocos2d-x @Himi:
? 【Lua】(高级群)
Cocos2d-x-Lua @Himi:
? 【Unity3D】(超级群)
Unity3D @Himi:
文章:62篇
阅读:904416
文章:34篇
阅读:619928下次自动登录
现在的位置:
& 综合 & 正文
MyEclipse自动生成hibernate实体类和配置文件攻略
步骤1:找到导航栏里面的window--showView然后输入db brower,打开数据库浏览窗口
步骤2:在数据库浏览窗口里只有一个Myeclipse自带的数据库,该数据没有用,我们在空白的地方右键新建一个数据库
填写数据库信息,包括连接方式,用户名,密码,和jdbc的配置一样,注意将oracle的jar包导进来(如果jar包冲突,请到oracle安装目录下找)
步骤3:数据库连接已经出现,我们可以连接上数据库了
步骤4:这时候我们回过头,新建一个java或javaEE项目,名字随便取,然后右键该项目,选择Myeclipse---add hibernate capliability,进入加载hibernate支持界面,首先选择hibernate版本,这个随便,然后next
步骤5:选择hibernate配置文件的存放位置,这个最好放在在项目的根目录下
步骤6:配置hibernate数据库连接,在dbdriver选项下,选择我们刚才配的那个数据库连接,这样的话用户名和密码会自动出现
步骤7:下一步是否新建一个sessionfactory类,我们可以选择不新建,即将那个复选框的勾给去掉
步骤8:这样的话hibernate配置文件(xml)就自动写好了
步骤9:我们可以根据自己需求往配置文件里面写点属性,比如说我们常用的show_sql属性,这样的话该工程的hibernate配置就完成了,且所有hibernate的jar包也添加完成
步骤10:重新回到数据库浏览器界面,打开连接,选择用户,选择所需要生成实体和配置文件的表,然后右键,选择hibernate reverse engineeing
步骤11:该步骤就是开始自动生成实体类的工作了,先选择需要目标项目和文件夹(不要选错了项目,不然就生成到其他项目中去了,建议关闭不相关的项目),我选择刚才新建的项目(只有加载了hibernate支持的项目才能自动生成)
步骤12:选择实体类和配置文件存放的位置(一般是com.XXX.XXX.entity或者com.XXX.XXX.domain或com.XXX.XXX.pojo),及pojo的生成策略,然后next
步骤13:选择一些配置信息,其他不用管,只需要在主键生成策略上选择你希望的策略就行了,我是选择increment的
步骤14:点击finish,那么刚才那张表的实体类和配置文件皆以生成
步骤15:打开实体类,我们会发现主键consumerId是Long型的,我们可以改成int,记住全部都要改(当然也可以不该,不过到时候查询或插入会比较麻烦)
步骤16:同样将配置文件中的主键类型也改成int
步骤17:在回过头看,hibernate全局配置文件,刚才我们生成的实体类配置文件已经自动加载到了mapping中
步骤18:写一个简单的测试,来测试一下吧
&&&&推荐文章:
【上篇】【下篇】您的邮箱:
请将您的邮箱作为登录账号
您的昵称:
4~30个字符,可以为中文
登陆密码:
6~30个半角字符
确认密码:
请再次输入密码
验 证 码 :
Hibernate POJO Generator这个工具能够根据数据库结构生成通过Hibernate操作表格中每个字段所需要的所有Java源代码(包括:带注释的实体类,DAO层,Data Factory,Spring与Hibernate配置文件等)。此外这个生成器还能够为每一个组件创建所有需要的帮助类和单元测试。收录时间: 10:21:17
  
  
我要留言/评论
CopyRight ©
 京ICP备号

我要回帖

更多关于 hibernate需要的jar包 的文章

 

随机推荐