📄 empdao.java
字号:
package com.star.dao;
import java.util.*;
import org.hibernate.*;
import org.hibernate.cfg.*;
import com.star.Emp;
import com.star.SFactory;
public class EmpDAO {
public int add(Emp emp){
Session session =SFactory.currentSession(); //得到session
Transaction ts = session.beginTransaction();
try
{
session.save(emp);
ts.commit();
}
catch (Exception e)
{
ts.rollback();
e.printStackTrace();
return 0;
}
finally
{
SFactory.closeSession();
//session.close();
//使用session.close()只能关闭session.并不能清除线程中的session,
//因此在下次通过(Session session =SFactory.currentSession();)得到
//session的时候因为线程中有session,就不创建sessionFactory了,(参照SFactory类来看就明白了)
//也就不在创建新的session对象了,此时的session就为关闭状态,使用的时候就会报session close 异样了!
//因此在finally中最好使用SFactory.closeSession();关闭线程,因为这样关闭线程可以清空线程中的session。
}
return 1;
}
public int delete (int id){
Session session= SFactory.currentSession();
Transaction ts = session.beginTransaction();
try {
//法一
Query query =session.createQuery("delete Emp where id=?");
query.setParameter(0,id);
//query.setInteger(0,id);
System.out.println("id="+id);
query.executeUpdate();
// 法二
// Emp emp = (Emp) session.get(Emp.class,id);
// session.delete(emp);
ts.commit();
return 1;
} catch (Exception e) {
ts.rollback();
e.printStackTrace();
return 0;
}finally{
SFactory.closeSession();
}
}
public int update(Emp emp){
Session session = SFactory.currentSession();
Transaction ts = session.beginTransaction();
try {
session.update(emp);
ts.commit();
return 1;
} catch (Exception e) {
ts.rollback();
e.printStackTrace();
return 0;
}finally{
SFactory.closeSession();
}
}
public Emp selelctById(int id){
Session session= SFactory.currentSession();
try {
Emp emp = (Emp) session.get(Emp.class,id);
SFactory.closeSession();
return emp;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public List select(){
Session session = null;
try {
session = SFactory.currentSession();
Query query = session.createQuery("from Emp");
List list = query.list();
return list;
} catch (Exception e) {
e.printStackTrace();
return null;
} finally{
SFactory.closeSession();
}
}
public static void main(String[] args) {
// 增加
Emp e0 = new Emp();
e0.setName("wangba1");
e0.setSalary(5000);
Emp e1= new Emp();
e1.setName("wangba2");
e1.setSalary(1111);
Emp e2= new Emp();
e2.setName("wangba3");
e2.setSalary(2222);
Emp e3= new Emp();
e3.setName("wangba4");
e3.setSalary(6666);
EmpDAO d = new EmpDAO();
d.add(e0);
d.add(e1);
d.add(e2);
d.add(e3);
// 删除
EmpDAO dao = new EmpDAO();
dao.delete(4);
//修改
// Emp emp =new Emp();
// emp.setId(1);
// emp.setName("111");
// emp.setSalary(111);
//
// Emp emp1 = new Emp();
// emp1.setId(3);
// emp1.setName("333");
// emp1.setSalary(333);
//
// EmpDAO dao = new EmpDAO();
// dao.update(emp);
// dao.update(emp1);
// //查询ById
// EmpDAO dao = new EmpDAO();
// Emp emp=(Emp)dao.selelctById(1);
// System.out.println("Name="+emp.getName());
// System.out.println("Salary="+emp.getSalary());
//全查
// EmpDAO dao = new EmpDAO();
// List list=dao.select();
// for(int i=0;i<list.size();i++){
// Emp emp =(Emp) list.get(i);
// System.out.println("Name="+emp.getName());
// System.out.println("Salary="+emp.getSalary());
//
// }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -