写一个xml 员工表到MySQL_Hibernate案例-------基于xml配置,使用Hibernate实现对员工表的增、删、改、查功能...

1.1 问题

使用Hibernate实现对员工表的增、删、改、查。

1.2 方案

Hibernate使用步骤:

导入Hibernate包,以及数据库驱动包。

引入Hibernate主配置文件hibernate.cfg.xml。

创建实体类。

创建映射关系文件。

使用Hibernate常用API执行增删改查操作。

1.3 步骤

实现此案例需要按照如下步骤进行。

环境为:myeclipse 6.5 ,mysql 5.0 ,Hibernate 3 。

步骤一:准备工作创建员工表EMP,建表语句如下:

CREATE TABLE `emp` (

`ID` INT(4) NOT NULL AUTO_INCREMENT,

`NAME` VARCHAR(50) NOT NULL,

`AGE` INT(11) DEFAULT NULL,

`SALARY` DOUBLE(7,2) DEFAULT NULL,

`MARRY` CHAR(1) DEFAULT NULL,

`BIRTHDAY` DATE DEFAULT NULL,

`LAST_LOGIN_TIME` DATE DEFAULT NULL,

PRIMARY KEY (`ID`)

) ENGINE=INNODB DEFAULT CHARSET=utf8

创建一个WEB项目,名为Hibernate。

步骤二:导入Hibernate开发包,以及数据库驱动包,完成后项目的包结构如下图:

c06594a4fff8461d6210e477f76026e1.png

网盘下载jar包: http://yunpan.cn/cmRG5gzdMtGMX  访问密码 3747

步骤三:引入Hibernate主配置文件

将Hibernate主配置文件hibernate.cfg.xml复制到项目中,放在src根路径下。并在主配置文件中配置好数据库连接信息,以及Hibernate框架参数,代码如下:

/p>

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

jdbc:mysql://localhost:3306/souvc

root

123456

com.mysql.jdbc.Driver

true

true

步骤四:创建实体类

创建包com.souvc.entity,并在该包下创建员工表对应的实体类Emp.java,用于封装员工表的数据,代码如下:

packagecomsouvc.entity;importjava.sql.Date;importjava.sql.Timestamp;public classEmp {privateInteger id;privateString name;privateInteger age;privateDouble salary;privateBoolean marry;privateDate birthday;privateTimestamp lastLoginTime;publicInteger getId() {returnid;

}public voidsetId(Integer id) {this.id =id;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicInteger getAge() {returnage;

}public voidsetAge(Integer age) {this.age =age;

}publicDouble getSalary() {returnsalary;

}public voidsetSalary(Double salary) {this.salary =salary;

}publicBoolean getMarry() {returnmarry;

}public voidsetMarry(Boolean marry) {this.marry =marry;

}publicDate getBirthday() {returnbirthday;

}public voidsetBirthday(Date birthday) {this.birthday =birthday;

}publicTimestamp getLastLoginTime() {returnlastLoginTime;

}public voidsetLastLoginTime(Timestamp lastLoginTime) {this.lastLoginTime =lastLoginTime;

}

}

步骤五:创建映射关系文件

在com.souvc.entity包下,创建员工实体类的映射关系文件,名为Emp.hbm.xml,并在该文件中配置实体类和表的关系,以及类中属性和表中字段的关系,代码如下:

/p>

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

步骤六:声明映射关系文件

在主配置文件hibernate.cfg.xml中,声明映射关系文件Emp.hbm.xml,代码如下:

完成代码如下:

/p>

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

jdbc:mysql://localhost:3306/souvc

root

123456

com.mysql.jdbc.Driver

true

true

步骤七:创建Session工具类

创建HibernateUtil工具类,用于创建Session对象,代码如下:

packagecom.souvc.util;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.cfg.Configuration;public classHibernateUtil {private staticSessionFactory sessionFactory;static{//加载Hibernate主配置文件

Configuration conf = newConfiguration();

conf.configure("/hibernate.cfg.xml");

sessionFactory=conf.buildSessionFactory();

}/*** 创建session*/

public staticSession getSession() {returnsessionFactory.openSession();

}public static voidmain(String[] args) {

System.out.println(getSession());

}

}

输出效果:

SessionImpl(PersistenceContext[entityKeys=[],collectionKeys=[]];ActionQueue[insertions=[] updates=[] deletions=[] collectionCreations=[] collectionRemovals=[] collectionUpdates=[]])

步骤八:练习使用Hibernate对员工表进行增删改查

创建包com.souvc.test,并在该包下创建一个JUNIT测试类,并在类中使用Hibernate写出对EMP表的增删改查的方法,代码如下:

packagecom.souvc.test;importjava.sql.Date;importjava.sql.Timestamp;importjava.util.List;importorg.hibernate.HibernateException;importorg.hibernate.Query;importorg.hibernate.Session;importorg.hibernate.Transaction;importorg.junit.Test;importcom.souvc.util.HibernateUtil;importcomsouvc.entity.Emp;/*** 演示Hibernate的基本使用*/

public classTestEmp {/*** 新增emp*/@Testpublic voidadd() {//模拟要新增的emp

Emp e = newEmp();

e.setName("ggg");

e.setAge(29);

e.setMarry(false);

e.setSalary(8000.00);

e.setBirthday(Date.valueOf("1983-10-20"));

e.setLastLoginTime(newTimestamp(System.currentTimeMillis()));//获取session

Session session =HibernateUtil.getSession();//开启事务

Transaction ts =session.beginTransaction();try{//执行新增

session.save(e);//提交事务

ts.commit();

}catch(HibernateException e1) {

e1.printStackTrace();//回滚事务

ts.rollback();

}finally{

session.close();

}

}/*** 根据ID查询emp*/@Testpublic voidfindById() {

Session session=HibernateUtil.getSession();

Emp emp= (Emp) session.get(Emp.class, 1);

System.out.println(emp.getName());

System.out.println(emp.getBirthday());

System.out.println(emp.getLastLoginTime());

session.close();

}/*** 修改emp*/@Testpublic voidupdate() {

Session session=HibernateUtil.getSession();//查询要修改的数据

Emp emp = (Emp) session.get(Emp.class, 1);//开启事务

Transaction ts =session.beginTransaction();try{//模拟修改数据

emp.setName("ee");

emp.setAge(20);//执行修改

session.update(emp);//提交事务

ts.commit();

}catch(HibernateException e) {

e.printStackTrace();//回滚事务

ts.rollback();

}finally{//关闭连接

session.close();

}

}/*** 删除emp*/@Testpublic voiddelete() {

Session session=HibernateUtil.getSession();

Emp emp= (Emp) session.get(Emp.class, 1);

Transaction ts=session.beginTransaction();try{

session.delete(emp);

ts.commit();

}catch(HibernateException e) {

e.printStackTrace();

ts.rollback();

}finally{

session.close();

}

}/*** 查询全部emp*/@Testpublic voidfindAll() {

String hql= "from Emp";

Session session=HibernateUtil.getSession();

Query query=session.createQuery(hql);

List emps =query.list();for(Emp e : emps) {

System.out.println(e.getName());

}

session.close();

}

}

九、实例的效果图如下:

增加:

732f10751abb3b75f92eda3062056492.png

通过id查询:

520cbdc6fef2a9619ff60eeae043577f.png

查询全部:

a7a6cb2ff3ee2d3235169004fa5fc120.png

更新:

b7830da7c45e9a0b47c4d213c3bd2fda.png

a51c37d14bd9bfd4cafe0cdf9151e586.png

删除:

d38fc1c2c41b27cea811079777edf73b.png

温馨提示:注意数据库要存在id为1 的数据,才能进行这些数据的操作。根据自己里面的数据来定id。

源码如下: http://yunpan.cn/cmR97XCh6SvB6  访问密码 afb4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值