和以往的增删改查不一样,这次的操作石完全把hibernateDao层功能实现,具体的操作不在Dao层内进行。
因为只是一个小的Dao层接口的实现,我们就省略控制层和服务层。
hibernate.cfg.xml与实体类.hbm.xml参考以往的博客。
首先是实体类
package com.jayson.entity;
public class Equip {
private int id;
private String name;
private int lv;
private String propreties;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLv() {
return lv;
}
public void setLv(int lv) {
this.lv = lv;
}
public String getPropreties() {
return propreties;
}
public void setPropreties(String propreties) {
this.propreties = propreties;
}
public Equip(String name, int lv, String propreties) {
this.name = name;
this.lv = lv;
this.propreties = propreties;
}
public Equip() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Equip [id=" + id + ", name=" + name + ", lv=" + lv
+ ", propreties=" + propreties + "]";
}
}
Dao层接口
package com.DAO;
import com.jayson.entity.Equip;
public interface EquipDao {
public Equip selectEquip(int id);
public void updateEqiup(int id,Equip equip);
public void daleteEquip(int id);
public void addEquip(Equip equip);
}
接口实现类
package com.DAO;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.jayson.entity.Equip;
public class EquipDaoImpl implements EquipDao {
public Equip selectEquip(int id) {
// TODO Auto-generated method stub
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
Equip p = new Equip();
try {
sf = HibernateUtil.getSessionFactory();
session = sf.getCurrentSession();
ts = session.beginTransaction();
p = session.get(Equip.class,id);
System.out.println(p.toString());
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(ts != null)
{
ts.rollback();
}
e.printStackTrace();
}
return p;
}
public void updateEqiup(int id,Equip equip) {
// TODO Auto-generated method stub
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
try {
sf = HibernateUtil.getSessionFactory();
session = sf.getCurrentSession();
ts = session.beginTransaction();
equip.setId(id);
session.update(equip);
System.out.println("修改 "+equip.getId()+" 成功");
ts.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(ts != null)
{
ts.rollback();
}
e.printStackTrace();
}
}
public void daleteEquip(int id) {
// TODO Auto-generated method stub
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
try {
sf = HibernateUtil.getSessionFactory();
session = sf.getCurrentSession();
ts = session.beginTransaction();
Equip p = session.get(Equip.class, id);
session.delete(p);
System.out.println("删除id为 "+p.getId()+" 的用户");
ts.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(ts != null)
{
ts.rollback();
}
e.printStackTrace();
}
}
public void addEquip(Equip equip) {
// TODO Auto-generated method stub
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
try {
sf = HibernateUtil.getSessionFactory();
session = sf.getCurrentSession();
ts = session.beginTransaction();
session.save(equip);
System.out.println("添加"+equip.toString()+"成功");
ts.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(ts != null)
{
ts.rollback();
}
e.printStackTrace();
}
}
}
进行测试
package com.DAO;
import org.junit.Test;
import com.jayson.entity.Equip;
public class Tset {
EquipDaoImpl equipDaoImpl = new EquipDaoImpl();
@Test
public void testadd(){
Equip e = new Equip("暗影蔽日",90,"最终伤害+42%");
equipDaoImpl.addEquip(e);
}
@Test
public void testselect(){
equipDaoImpl.selectEquip(1);
}
@Test
public void testdel(){
equipDaoImpl.daleteEquip(1);
}
@Test
public void testupdate(){
Equip e = new Equip("妖刀村正",91,"三攻+22%");
equipDaoImpl.updateEqiup(2, e);
}
}
运行结果我就不放了,最终都是可以运行的。
数据库截图