admin 管理员组

文章数量: 887031


2023年12月19日发(作者:10001001二进制转换十进制)

一、使用Hibernate的3个准备和7个步骤

准备1:导入Hibernate库(jar包);

准备2:添加配置文件-

jdbc:microsoft:sqlserver://localhost:1433;Database=zf

sa

pwd

verDriver

#配置数据库链接

verDialect

#数据库方言

true

#设置运行时是否在控制台显示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);

}

}


本文标签: 方法 添加 数据库 加载 事物