将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一样