您的位置:首页 > 编程语言 > Java开发

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

2017-08-22 12:04 405 查看
首先,让我们来看一下我们要实现的效果图






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


[b]


[/b]



[b]接下来直接进入主题:
[/b]

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>

[b] 4.[b][b]配置hibernate.cfg.xml[/b][/b]
[/b]

<?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>

[b]5.[b][b][b][b]创建实体类User.java和映射文件 User.hbm.xml(映射文件和实体对象必须在同一个包下)
[/b][/b][/b][/b][/b]
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;
}

}





[b][b]6.写Dao层[/b][/b]
[b][b][b]接口UserDao.java
[/b][/b][/b]

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下载地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息