admin 管理员组文章数量: 887031
2023年12月19日发(作者:10001001二进制转换十进制)
一、使用Hibernate的3个准备和7个步骤
准备1:导入Hibernate库(jar包);
准备2:添加配置文件-
#配置数据库链接
#数据库方言
#设置运行时是否在控制台显示SQL语句
#映射文件,可以有多个
准备3:添加实体类和映射文件()
类:
public class User implements izable {
//要实现Serializable
private Integer uid;
private String uname;
private String upass;
public User(){ // 要有默认构造方法
}
// Getter and setter
}
:
"/">
1、Configeration(读取)
2、创建SessionFactory(创建和销毁都相当耗费资源,通常一个系统内一个数据库只创建一个)
3、打开Session(类似于JDBC中的Connection)
4、开始一个事物
5、持久化操作
6、提交事物
7、关闭Session
public static void main(String[] args) {
Configuration conf = new Configuration().configure();//1、读取配置文件
SessionFactory sf = essionFactory();// 2、创建SessionFactory
Session session = ssion();// 3、打开Session
Transaction tx = null;
try{
tx = ransaction();// 4、开始一个事务
// 5、持久化操作
User user = new User();
me("Hibernate user");
ss("password");
(user);
();// 6、 提交事务
}catch(Exception e){
if (null!=tx){ck();}
tackTrace();
}finally{
();// 7、关闭Session
}
}
二、使用Hibernate实现数据的加载、删除、修改
根据主键加载(并没有更新数据,所以不需要进行事物控制)
Session session = ssion();
User user = (User)(, id);
();
n(me() + "," + ss());
修改(先加载,再更新,不需要繁琐的逐字段编码)
tx = ransaction();
User user = ad(id);
me("new Name");
(user);
();
删除(先加载,再删除)
tx = ransaction();
User user = ad(id);
(user);
();
三、使用MyEclipse简化Hibernate开发
1、给项目添加Hibernate支持(自动添加jar包)
选中项目--菜单MyEclipse--Project Capabilities--Add Hibernate Capabilities
2、自动生成配置文件
3、生成实体类、映射文件
四、代码的简化
add方法和del、update方法的代码存在重复,可以采取什么方法精简呢
1、增加一个Base接口,写入相关方法
public abstract class BaseHibernateDAO {
protected void add(Object item){
Transaction tx = null;
Session session = sion();
try {
tx = ransaction();
(item);
();
} catch (Exception e) {
if(null!=tx){ ck(); }
tackTrace();
}finally{
();
}
}
// update,delete,get 方法与之类似
…
}
2、最终的代码简化如下
public class FwxxDAOHibImpl extends BaseHibernateDAO implements FwxxDAO {
public FWXX get (int fwid) {
(,fwid);
}
public void add(FWXX fwxx) {
(fwxx);
}
public void del (int fwid) {
(, fwid);
}
public void update(FWXX fwxx) {
(fwxx);
}
…
}
版权声明:本文标题:hibernate教程 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702935715h436580.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论