Hibernate初步部署-创新互联
下载全套文件: hibernate-release-4.1.7.Final.zip
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、做网站、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的关岭网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!目录结构
Documentation文件夹下是开发帮助文档
Lib文件夹是开发使用的库,其中该文件夹下面的required目录是开发时必须导入的JAR文件;
Project文件夹是项目源码文件
JDBC与Hibernate的比较:
Hibernate的初步配置部署:
1. 创建web项目
2. 添加响应需要的Hibernate的jar包
3. 创建Java Bean业务实体类
4. 创建实体类映射的配置文件:**.hbm.xml
5. 创建Hibernate的配置文件hibernate.cfg.xml
6. 创建测试类测试hibernate是否配置成功
实体类:UserInfo.java
public class UserInfo
{
private int userid;
private String userName;
private String userPwd;
private Date birthday;
//省略了属性各种get和set方法
//创建含有id的构造函数
public UserInfo(int id)
{
this.userid=id;
}
public UserInfo(int userid, String userName, String userPwd, Date birthday)
{
super();
this.userid = userid;
this.userName = userName;
this.userPwd = userPwd;
this.birthday = birthday;
}
//无参的构造函数是必须要有的
public UserInfo()
{
}
}
实体类的配置文件UserInfo.hbm.xml
(配置文件尽量和实体类名字去的一致方便管理和实体类放在同一个包中)
"-//Hibernate/HibernateMapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
//package包指定实体类的包 //name指定实体类名 table为数据库中实体类对应的表名如果没有指定就和类名一致
//id标识主键的字段 class=native标识自增长
//property指定属性的字段,column可以指定数据库中对应字段的名称,如果没有就和实体类的属性名一致
Hibernate的配置文件hibernate.cfg.xml
"-//Hibernate/HibernateConfiguration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
true true org.hibernate.dialect.Oracle10gDialect oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@192.168.3.252:1521:orcl bam1 bam1 update
测试类Test.java
添加一条数据:
public static void add()
{
//第一步:读取Hibernate的配置文件 hibernamte.cfg.xml文件
Configurationcon=new Configuration().configure();
//第二步:创建服务注册构建器对象,通过配置对象中加载所有的配置信息
ServiceRegistryBuilderregbulider=newServiceRegistryBuilder().applySettings(con.getProperties());
//创建注册服务
ServiceRegistryreg=regbulider.buildServiceRegistry();
//第三步:创建会话工厂
SessionFactorysessionFactory=con.buildSessionFactory(reg);
//第四步:创建数据操作会话
Sessionsession=sessionFactory.openSession();
//创建对象
*/
UserInfohanhan=new UserInfo();
hanhan.setUserName("hanhan313");
hanhan.setUserPwd("123");
hanhan.setBirthday(new Date());
/*
//创建事物
Transactiontran=session.beginTransaction();
//保存数据
session.save(hanhan);
//提交事物
tran.commit();
//关闭对话
session.close();
}
查询一条数据:
创建了session回话后
//查询id为10的userinfo的用户信息
UserInfouser=session.get(UserInfo.class,10);
更新一条数据:
首先查询出数据
UserInfo user=session.get(UserInfo.class,10);
再对user进行数据修改后
再通过获取到session回话
session.update(user)
删除一条数据:
删除数据时将需要删除的id数据包装成对象
比如:
UserInfouser=new UserInfo();
User.setUserId(10);
session.delete(user); //删除时就会自动获取到user中id进行删除
hibernate的流程:
持久化JAVA类必须遵循的原则
1、为类的持久化字段声明访问方法(get/set),Hibernate对JavaBeans风格的属性实行持久化。
2、实现一个默认的构造方法,这样的话Hibernate就可以使用Constructor.newInstance()方法来实例化对象。
3、如果是集合类型的属性,它的类型必须定义为集合的接口,例如:List、Set
4、提供一个标识属性(Identifier property),如果没有该属性,一些功能不起作用,比如:级联更新,session.saveOrUpdate()。
对象的状态:
瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象。
持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交;持久对象状态发生改变,在事务提交时会影响到数据库(hibernate能检测到)。
脱管(detached):数据库中有数据与之对应,但当前没有session与之关联;托管对象状态发生改变,hibernate不能检测到。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前文章:Hibernate初步部署-创新互联
标题路径:http://azwzsj.com/article/csjccp.html