Hibernate的CRUD

将hibernate作为持久层,使用hibernate替换原先的jdbc连接数据库,执行增删改查的操作

创建UserDao接口

package dao;
 
 
 
import pojo.User;
 
 
 
import java.util.List;
 
 
 
public interface UserDao {
 
    public void insert(User u);
 
    public  void delete(int id);
 
    public List queryAll();
 
    public void update(User u);
 
}
 
实现接口内方法
 
package dao;
 
 
 
import org.hibernate.Session;
 
import org.hibernate.SessionFactory;
 
import org.hibernate.query.Query;
 
import pojo.User;
 
 
 
import java.util.List;
 
 
 
public class UserDaoImpl implements UserDao {
 
 
 
    @Override
 
    public void insert(User u){
 
        SessionFactory sf = hibernateUtil.getSessionFactory();
 
        Session session =sf.getCurrentSession();
 
        //开启事务
 
        org.hibernate.Transaction transaction = session.beginTransaction();
 
        session.save(u);
 
        transaction.commit();
 
        sf.close();
 
 
 
    }
 
 
 
    @Override
 
    public void delete(int id){
 
        SessionFactory sf = hibernateUtil.getSessionFactory();
 
        Session session =sf.getCurrentSession();
 
        //开启事务
 
        org.hibernate.Transaction transaction = session.beginTransaction();
 
        session.delete(id);
 
        transaction.commit();
 
        sf.close();
 
    }
 
 
 
    @Override
 
    public List queryAll(){
 
        SessionFactory sf = hibernateUtil.getSessionFactory();
 
        Session session =sf.getCurrentSession();
 
        //开启事务
 
        org.hibernate.Transaction transaction = session.beginTransaction();
 
        Query query = session.createQuery("from  User ");
 
        List users = query.list();
 
        transaction.commit();
 
        sf.close();
 
        return users;
 
 
 
    }
 
 
 
    @Override
 
    public void update(User u){
 
        SessionFactory sf = hibernateUtil.getSessionFactory();
 
        Session session =sf.getCurrentSession();
 
        //开启事务
 
        org.hibernate.Transaction transaction = session.beginTransaction();
 
        session.update(u);
 
        transaction.commit();
 
        sf.close();
 
 
 
    }
 
}
 
创建insert action 去调用insert方法
 
package action;
 
 
 
import dao.UserDao;
 
import dao.UserDaoImpl;
 
import pojo.User;
 
import javax.servlet.ServletException;
 
import javax.servlet.http.HttpServletRequest;
 
import javax.servlet.http.HttpServletResponse;
 
import java.io.IOException;
 
 
 
public class Insert {
 
        public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
            User u = new User();
 
            UserDao ud = new UserDaoImpl();
 
            u.setName(request.getParameter("name"));
 
            u.setAge(Integer.parseInt(request.getParameter("age")));
 
            u.setGender(request.getParameter("gender"));
 
            try {
 
                ud.insert(u);
 
            } catch (Exception e) {
 
                // TODO Auto-generated catch block
 
                e.printStackTrace();
 
            }
 
        }
 
        
 
}
 
编写控制器center
 
package service;
 
 
 
import action.Insert;
 
import action.query;
 
 
 
import javax.servlet.ServletException;
 
import javax.servlet.http.HttpServlet;
 
import javax.servlet.http.HttpServletRequest;
 
import javax.servlet.http.HttpServletResponse;
 
import java.io.IOException;
 
 
 
public class center extends HttpServlet {
 
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
        String uri = req.getRequestURI();
 
        System.out.println(uri);
 
        if(uri.equals("/u/insert")){
 
            new Insert().execute(req,resp);
 
        }
 
 
 
    }
 
}
 
配置web.xml
 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
 
         version="4.0">
 
        center
 
        service.center
 
        center
 
        /u/*

在打开的表单中填入数据

成功添加

数据库中数据如下

delete,update,query操作和insert一样

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值