使用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<User> 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<User> queryAll(){
        SessionFactory sf = hibernateUtil.getSessionFactory();
        Session session =sf.getCurrentSession();
        //开启事务
        org.hibernate.Transaction transaction = session.beginTransaction();
        Query query = session.createQuery("from  User ");
        List<User> 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

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         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">
 
    <servlet>
        <servlet-name>center</servlet-name>
        <servlet-class>service.center</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>center</servlet-name>
        <url-pattern>/u/*</url-pattern>
    </servlet-mapping>
 
</web-app>
在打开的表单中填入数据

成功添加

数据库中数据如下

delete,update,query操作和insert一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值