使用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一样

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值