先讲述下 一般都能用到的hibernate开发流程:
1.根据DB写实体类,写完后接着写XX.hbm.xml,跟hibernate.cfg.xml配置文件,xx.hbm。xml中主要是写对应实体的属性,hibernate.cfg.xml中主要是写跟Jdbc差不多的配置信息,主要是用于连接数据库用。
2.最好建议写个对应的工具类,里面主要写需要用到的一些session等公用的的信息,采用单例模式,这样只需要生成一次就好了。。。后面就不需要重新生成了。。
3,然后写对应数据反问层DAO
4,写对应的实现类
5.写对应的测试类
下面总结下学习过程中的一些小细节:
1.写对应配置文件可以参考对应文档的etc目录下的配置文件,在写hibernate.hbm.xml时参考hibernate.properties
2。如果要重新命名table的名字:需要:class="",table="XXX",如果要改表中属性的名字:property name ="",column="XXX"
当然如果不这样写的话 就会默认跟实体名一样,对应字段就会跟属性名一样
3.当表名为关键字时,有两种方式可以改:一就是前面所说的改表名,另外一种就是eg:table="`user`"
属性名是同样的道理
4.在查询操作时需要有两个注意的地方:
A:Criteria这个是条件查询criteria.add(Restrictions.eq("name", name));
B:hql语句查询:eg:from User as user where user.name=:XX query.setString("XX",name)根据名字查询
在前面写对应配置信息如下:
static{
Configuration cf=new Configuration("里面是对应的配置文件eg:user.hbm.xml");
SessionFactory sf=cf.buildSessionFactory();
Session session=sf.openSession();
}
下面用单例模式:
class Singleton{
private static Singleton instance=null;
private Singleton(){
do something
}
public Singleton getInstance(){
if(instance==null){
instance=new Singleton();
}
return instance;
}
}
最后一点就是实体对象的三种状态:
瞬时 (与数据库和session都没联系)
持久:与数据库跟session都有联系
脱管:只与数据库有联系与session没联系
今天貌似学习的也只有这么多,明天继续加油。。。。come on ........I believe myself...