Hibernate+Maven+Struts2——实现增删查改CURD的步骤详解

首先,让我们来看一下我们要实现的效果图


接下来,上博主的代码架构



接下来直接进入主题:

1.创建数据库的表


2.创建项目

用Eclipse创建一个Maven Project项目

3.导入hibernate相关的架包到项目

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Maven_Hibenate01</groupId>
  <artifactId>Maven_Hibenate01</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>Maven_Hibenate01 Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <properties>
  		<argLine>-Dfile.encoding=UTF-8</argLine>
  </properties>
  
  <dependencies>
	    <dependency>
	         <groupId>junit</groupId>
	         <artifactId>junit</artifactId>
	         <version>4.12</version>
	         <scope>test</scope>
	    </dependency>
	    <!-- 加入Servlet依赖 -->
	    <dependency>
	    	<groupId>javax.servlet</groupId>
	    	<artifactId>javax.servlet-api</artifactId>
	    	<version>3.1.0</version>
	    	<scope>provided</scope>
		</dependency>
		
		<!-- 加入hibernate依赖 -->
		<dependency>
	   		<groupId>org.hibernate</groupId>
	   		<artifactId>hibernate-core</artifactId>
	   		<version>5.2.10.Final</version>
		</dependency>
	
		<!-- 加入Struts2依赖 -->
		<dependency>
	    	<groupId>org.apache.struts</groupId>
	    	<artifactId>struts2-core</artifactId>
	    	<version>2.5.12</version>
		</dependency>
		<dependency>
	    	<groupId>org.apache.struts</groupId>
	    	<artifactId>struts2-convention-plugin</artifactId>
	    	<version>2.5.12</version>
		</dependency>
	
		 <!--json-lib依赖-->  
		<dependency>  
		    <groupId>net.sf.json-lib</groupId>  
		    <artifactId>json-lib</artifactId>  
		    <version>2.4</version>  
		    <classifier>jdk15</classifier>  
		</dependency>
		
		<!-- 加入MySQL依赖 -->
		<dependency>
	   		<groupId>mysql</groupId>
	   		<artifactId>mysql-connector-java</artifactId>
	   		<version>5.1.18</version>
		</dependency>
	    
	    
  </dependencies>
  
  <build>
    <finalName>Maven_Hibenate01</finalName>
  </build>
</project>

 4.配置hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
            <!--  配置数据库的连接信息 -->
            <property name="connection.username">root</property>
            <property name="connection.password">123</property>
            <property name="connection.url">jdbc:mysql://localhost:3306/test?characterEncoding=utf8</property>
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            
            <!-- 关联映射文件 -->
            <mapping resource="com/yhl/entity/User.hbm.xml"/>
    
    </session-factory>
</hibernate-configuration>

5.创建实体类User.java和映射文件 User.hbm.xml(映射文件和实体对象必须在同一个包下)

package com.yhl.entity;

public class User {
	   private int u_id;//编号
	   private String u_name;//用户名
	   private String u_sex;//性别
	   
	   public User() {
		
	   }
	   public User(int u_id) {
		   this.u_id = u_id;
	   }
	   public User(String u_name, String u_sex) {
		   super();
		   this.u_name = u_name;
		   this.u_sex = u_sex;
	   }
	   public User(int u_id, String u_name, String u_sex) {
		   this.u_id = u_id;
		   this.u_name = u_name;
		   this.u_sex = u_sex;
	   }
	   
	   public int getU_id() {
		   return u_id;
	   }
	   public void setU_id(int u_id) {
		   this.u_id = u_id;
	   }
	   public String getU_name() {
		   return u_name;
	   }
	   public void setU_name(String u_name) {
		   this.u_name = u_name;
	   }
	   public String getU_sex() {
		   return u_sex;
	   }
	   public void setU_sex(String u_sex) {
		   this.u_sex = u_sex;
	   }   
	   
}


6.写Dao层

接口UserDao.java

package com.yhl.dao;

import java.util.List;
import com.yhl.entity.User;

public interface UserDao {

	/**
	 * 查询所有
	 */
	public List<User> getAll();
	
	/**
	 * 添加一行信息
	 */
	public int AddUser(User user);
	
	/**
	 * 根据ID删除一行信息
	 */
	public int DeleteUser(int u_id);
	
	/**
	 * 修改用户信息
	 */
	public int UpadteUser(User user);
}
实现类UserDaoImp.java
package com.yhl.dao;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.yhl.entity.User;

public class UserDaoImp implements UserDao{
	
	
    private Configuration configuration;//1.实例化配置对象 加载映射文件hibernate.cfg.xml
	private SessionFactory sessionFactory;//2.创建会话工厂
	private Session session;//3.创建会话
	private Transaction transaction;//4.开启事务
	
	/**
	 * 查看所有
	 */
	public List<User> getAll() {
			 configuration = new Configuration().configure();
			 sessionFactory = configuration.buildSessionFactory();
			 session = sessionFactory.openSession();
			 transaction = session.beginTransaction();
			 //查询所有
		     List<User> list=session.createCriteria(User.class).list();
			 //提交事物
	    	 transaction.commit();
	    	 session.close();
	    	 sessionFactory.close();
		     return list;
	}

	/**
	 * 添加
	 */
	public int AddUser(User user) {
		   configuration = new Configuration().configure();
		   sessionFactory = configuration.buildSessionFactory();
		   session = sessionFactory.openSession();
		   transaction = session.beginTransaction();
		   //添加一行信息
		   User users=new User(user.getU_name(), user.getU_sex());
		   Serializable Serializable = session.save(users);
	       int a=(Integer) Serializable;
	       System.out.println(a);
		   //提交事物
	   	   transaction.commit();
	       session.close();
	   	   sessionFactory.close();
		   return 0;
	}

	/**
	 * 删除
	 */
	public int DeleteUser(int uid) {
		   configuration = new Configuration().configure();
		   sessionFactory = configuration.buildSessionFactory();
		   session = sessionFactory.openSession();
		   transaction = session.beginTransaction();
		   //删除一行信息
		   User user=new User();
		   user.setU_id(uid);
		   session.delete(user);
		   //提交事物
	   	   transaction.commit();
	   	   session.close();
	   	   sessionFactory.close();
		   return 0;
	}

	/**
	 * 修改
	 */
	public int UpadteUser(User user) {
		   configuration = new Configuration().configure();
		   sessionFactory = configuration.buildSessionFactory();
		   session = sessionFactory.openSession();
		   transaction = session.beginTransaction();
		   //修改
		   User users=session.get(User.class, user.getU_id());
		   users.setU_name(user.getU_name());
		   users.setU_sex(user.getU_sex());
		   session.update(users);
		   //提交事物
	       transaction.commit();
	       session.close();
	   	   sessionFactory.close();
		   return 0;
	}
}

7.写Action

package com.yhl.action;

import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.yhl.dao.UserDao;
import com.yhl.dao.UserDaoImp;

import net.sf.json.JSONArray;

public class GetAllUserAtion extends ActionSupport{
		@Override
		public String execute(){
			   System.out.println("查看所有的Ation进来了。。。。。。");
			   UserDao userDao=new UserDaoImp();
			   try {
				     HttpServletResponse resp = ServletActionContext.getResponse();
				     resp.setContentType("text/html;charset=UTF-8");
				     JSONArray jsonArray=JSONArray.fromObject(userDao.getAll());
					 PrintWriter pw;
					 pw = resp.getWriter();
					 pw.write(jsonArray.toString());
					 pw.close();
			   } catch (Exception e) {
					 e.printStackTrace();
			   }
			   return null;
		}
	
	
}
package com.yhl.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.yhl.dao.UserDao;
import com.yhl.dao.UserDaoImp;
import com.yhl.entity.User;

public class AddAction extends ActionSupport{
	 HttpServletResponse resp=ServletActionContext.getResponse();
	 HttpServletRequest req=ServletActionContext.getRequest();
     UserDao dao=new UserDaoImp();
	 
     private int u_id;
     private String u_name;
     private String u_sex;
     
     @Override
	 public String execute() throws Exception {
    	    resp.setContentType("text/html; charset=UTF-8");
		    req.setCharacterEncoding("UTF-8");
		    dao.AddUser(new User(u_id, u_name, u_sex));
		    return null;
	 }
	
     public int getU_id() {
    	 return u_id;
     }
     public void setU_id(int u_id) {
    	 this.u_id = u_id;
     }
     public String getU_name() {
    	 return u_name;
     }
     public void setU_name(String u_name) {
    	 this.u_name = u_name;
     }
     public String getU_sex() {
    	 return u_sex;
     }
     public void setU_sex(String u_sex) {
    	 this.u_sex = u_sex;
     }
    
}
package com.yhl.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.yhl.dao.UserDao;
import com.yhl.dao.UserDaoImp;

public class DeleteAction extends ActionSupport{
	   HttpServletResponse resp=ServletActionContext.getResponse();
	   HttpServletRequest req=ServletActionContext.getRequest();
       UserDao dao=new UserDaoImp();
     
	   private int u_id;
	   @Override
	   public String execute() throws Exception {
			System.out.println("删除的Action进来了。。。。。。");
			 resp.setContentType("text/html; charset=UTF-8");
			 req.setCharacterEncoding("UTF-8");
			 System.out.println(u_id);
			 dao.DeleteUser(u_id);
			 return null;
	   }
	
		public int getU_id() {
			return u_id;
		}
		public void setU_id(int u_id) {
			this.u_id = u_id;
		}
	
}
package com.yhl.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.yhl.dao.UserDao;
import com.yhl.dao.UserDaoImp;
import com.yhl.entity.User;

public class UpdateAction extends ActionSupport {
	   HttpServletResponse resp=ServletActionContext.getResponse();
	   HttpServletRequest req=ServletActionContext.getRequest();
       UserDao dao=new UserDaoImp();
     
       private int u_id;
       private String u_name;
       private String u_sex;
       @Override
       public String execute() throws Exception {
    	   System.out.println("修改的Action进来了。。。。。。");
    	   resp.setContentType("text/html; charset=UTF-8");
    	   req.setCharacterEncoding("UTF-8");
    	   dao.UpadteUser(new User(u_id, u_name, u_sex));
    	   return null;
       }
	
       public int getU_id() {
    	   return u_id;
       }
       public void setU_id(int u_id) {
    	   this.u_id = u_id;
       }
       public String getU_name() {
    	   return u_name;
       }
       public void setU_name(String u_name) {
    	   this.u_name = u_name;
       }
       public String getU_sex() {
    	   return u_sex;
       }
       public void setU_sex(String u_sex) {
    	   this.u_sex = u_sex;
       }
}

8.写struts.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
      <!-- 打开方法的动态调用 -->
 	  <constant name="struts.enable.DynamicMethodInvocation" value="true" />
	     <package name="mupackage" namespace="/" extends="struts-default">
		       <action name="selectuser" class="com.yhl.action.GetAllUserAtion"></action>
		       <action name="adduser" class="com.yhl.action.AddAction"></action>
		       <action name="deltetuser" class="com.yhl.action.DeleteAction"></action>
		       <action name="updateuser" class="com.yhl.action.UpdateAction"></action>
	     </package>
</struts>

9.配置web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  
  <!-- Struts2核心过滤器配置 -->
  	<filter>
  		<filter-name>struts2</filter-name>
  		<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  	</filter>
  	<filter-mapping>
  		<filter-name>struts2</filter-name>
  		<url-pattern>*.action</url-pattern>
  	</filter-mapping>
</web-app>

10.写jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hibenate+Struts2+Maven+EasyUI实现增删查改</title>

<!-- 引入easyui库 -->
<link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">   
<link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">
<script type="text/javascript" src="easyui/jquery.min.js"></script> 
<script type="text/javascript" src="easyui/jquery.easyui.min.js"></script> 
<script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>

<script type="text/javascript">
var DBindex;
 $(function(){
	$('#dg').datagrid({    
	    url:'selectuser.action',
	    loadMsg:'正在拼命加载中...',
	    columns:[[    
	        {field:'u_id',title:'编号',width:100,align:'center'},    
	        {field:'u_name',title:'用户名',width:100,align:'center',"editor":{type:'validatebox'}},  
	        {field:'u_sex',title:'性别',width:100,align:'center',"editor":{type:'validatebox'}},
	    ]],onDblClickRow:function(index,row){
	    	DBindex=index;
	    	$('#dg').datagrid('beginEdit',index); 	
		  },onClickRow:function(index,row){
			  DBindex=index;
		  },toolbar: [{
			iconCls: 'icon-add',
			text:"添加",
			handler: function(){
				DBindex=0;
				$('#dg').datagrid('insertRow',{
					index:0,	// 索引从0开始
					row: {}
				});
				$('#dg').datagrid('beginEdit',0);
			}
		},'-',{
			iconCls: 'icon-remove',
			text:"删除",
			handler: function(){
				var row=$('#dg').datagrid("getRows")[DBindex];
				if(row!=null){
					var u_id=row["u_id"];
					$.post("deltetuser.action",
							{"u_id":u_id},
							function(data){
								$('#dg').datagrid('reload');
							});
				}
			}
		},'-',{
			iconCls: 'icon-save',
			text:"保存",
			handler: function(){
				$('#dg').datagrid('endEdit',DBindex); 
				var row=$('#dg').datagrid("getRows")[DBindex]; 
				if(row!=null){
					var u_name=row["u_name"];
					var u_sex=row["u_sex"];
					$.post("adduser.action",
							{"u_name":u_name,"u_sex":u_sex},
							function(data){
								$('#dg').datagrid('reload');
							});
			     }
				
			}
		},'-',{
			iconCls: 'icon-edit',
			text:"修改",
			handler: function(){
				$('#dg').datagrid('endEdit',DBindex); 
				var row=$('#dg').datagrid("getRows")[DBindex]; 
				if(row!=null){
					var u_id=row["u_id"];
					var u_name=row["u_name"];
					var u_sex=row["u_sex"];
					$.post("updateuser.action",
							{"u_id":u_id,"u_name":u_name,"u_sex":u_sex},
							function(data){
								$('#dg').datagrid('reload');
							});
			     }
				
			}
		}]

	});  
});
</script>
</head>


<body>
	<table id="dg" style="width:301px;height:500px"></table> 
</body>
</html>


附:EasyUI下载地址







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值