许多朋友在学习完了搭建SSH框架之后,就想在SSH框架中添加一个简单的增删改查功能,以此来证明自己,不仅学会了SSH框架,也会用SSH框架实现功能了。接下来我们一起看一下SSH框架实现增删改查的实例。
首先我们看一下jsp页面部分的代码:
index.jsp:
这个页面简单的写了两个超链接,分别用来展示dept表数据和增加dept表数据的。
save.jsp:
这个页面是用来填写部门和地址信息的,填写完了提交就行了。
list.jsp:
这个页面是用来显示编号、部门、地址、操作四列信息的,在操作中我们可以删除或者修改某一列的信息。
update.jsp:
这个页面是进行某一列的修改,修改的内容有部门、地址。
然后我们来看一下配置文件部分的代码。
applicationContext.xml:
这个配置文件是用来指定dao、service、action层的路径,以及配置文件hibernate.cfg.xml的路径。
hibernate.cfg.xml:
这个配置文件时用来添加数据库信息的。
struts.xml:
这个配置文件是后台与前端的jsp页面进行交互的相关内容,也有编码格式的设置。
web.xml
最后呢,就到了我们后台部分的代码了。
Dept类:
package com.entity;
import java.io.Serializable;
public class Dept implements Serializable {
//封装字段
private int deptno;
private String dname;
private String loc;
//无参构造函数
public Dept() {
// TODO Auto-generated constructor stub
}
//有参构造函数
public Dept(int deptno, String dname, String loc) {
super();
this.deptno = deptno;
this.dname = dname;
this.loc = loc;
}
//封装GET SET方法
public int getDeptno() {
return deptno;
}
public void setDeptno(int deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
}
我这里的包名是com.entity,这个类相当于实体类,定义了三个字段,以及三个字段的get()和set()方法的实现。
Dept.hbm.xml:
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
这是一个配置映射文件,写的是实体类中字段的相关内容。
IDeptDao:
package com.dao;
import java.util.List;
import com.entity.Dept;
public interface IDeptDao {
//查询
public List findAll();
//增加
public int save(Dept d);
//删除
public int delete(int id);
//修改
public int update(Dept d);
//根据ID查询
public Dept findById(int id);
}
这是一个配置接口文件,是用来写增删改查的接口的。
DeptDaoImpl类:
package com.dao.impl;
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.dao.IDeptDao;
import com.entity.Dept;
public class DeptDaoImpl
extends HibernateDaoSupport
implements IDeptDao {
public int delete(int id) {
// TODO Auto-generated method stub
try {
//获取对象的id
Dept d=this.getHibernateTemplate().get(Dept.class,id);
//执行删除方法 删除id
this.getHibernateTemplate().delete(d);
//删除成功 return 1;
return 1;
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
System.out.println(e.getStackTrace());
}
return 0;
}
public List findAll() {
// TODO Auto-generated method stub
//查询获取全部的数据
List list=(List) this.getHibernateTemplate().find("from Dept");
return list;
}
public Dept findById(int id) {
// TODO Auto-generated method stub
//查询出对象的id
Dept dd=this.getHibernateTemplate().get(Dept.class, id);
return dd;
}
public int save(Dept d) {
// TODO Auto-generated method stub
try {
//调用我们定义的接口 增加数据
this.getHibernateTemplate().save(d);
return 1;
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
System.out.println(e.getStackTrace());
}
return 0;
}
public int update(Dept d) {
// TODO Auto-generated method stub
try {
//调用我们定义的接口 增加数据
this.getHibernateTemplate().update(d);
return 1;
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
System.out.println(e.getStackTrace());
}
return 0;
}
}
这个类是用来实现IDeptDao接口中的方法的。
IDeptService:
import java.util.List;
import com.entity.Dept;
public interface IDeptService {
//跟我们的dao层一样
public List findAll();
public boolean save(Dept d);
public boolean delete(int id);
public boolean update(Dept d);
public Dept findById(int id);
}
这是业务逻辑层的接口,跟DAO层中的内容差不多。
DeptServiceImpl:
package com.service.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.dao.IDeptDao;
import com.dao.impl.DeptDaoImpl;
import com.entity.Dept;
import com.service.IDeptService;
public class DeptServiceImpl extends HibernateDaoSupport implements IDeptService{
// 调用我们实现类的接口 定义成私有字段进行封装
private IDeptDao idd;
//查询
public List findAll() {
// TODO Auto-generated method stub
return this.idd.findAll();
}
//增加
public boolean save(Dept d) {
// TODO Auto-generated method stub
int aa=this.idd.save(d);
if(aa==0){
return true;
}else{
return false;
}
}
//删除
public boolean delete(int id) {
// TODO Auto-generated method stub
int aa=this.idd.delete(id);
if(aa==0){
return true;
}else{
return false;
}
}
//修改
public boolean update(Dept d) {
// TODO Auto-generated method stub
int aa=this.idd.update(d);
if(aa==0){
return true;
}else{
return false;
}
}
//根据ID查询
public Dept findById(int id) {
// TODO Auto-generated method stub
return this.idd.findById(id);
}
//封装的GET SET方法
public IDeptDao getIdd() {
return idd;
}
public void setIdd(IDeptDao idd) {
this.idd = idd;
}
}
这个类是用来实现IDeptService接口中的方法。
DeptAction:
package com.action;
import java.util.List;
import com.dao.IDeptDao;
import com.entity.Dept;
import com.service.IDeptService;
import com.opensymphony.xwork2.ActionSupport;
public class DeptAction extends ActionSupport {
//定义出来我们的对象名 id 以及泛型集合
private IDeptService ids;
private List list;
private Dept dept;
private int id;
//查询
public String show(){
list=ids.findAll();
return "zhanshi";
}
//删除
public String delete(){
ids.delete(id);
return "find";
}
//预修改
public String prepup(){
dept=ids.findById(id);
return "prepup";
}
//增加
public String save(){
ids.save(dept);
return "find";
}
//修改
public String update(){
ids.update(dept);
return "find";
}
public IDeptService getIds() {
return ids;
}
public void setIds(IDeptService ids) {
this.ids = ids;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public Dept getDept() {
return dept;
}
public void setDept(Dept dept) {
this.dept = dept;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
这是Action层的代码,也是我们java开发中的核心代码。
蛙课资讯07-11 17:20
蛙课资讯09-04 15:27
蛙课资讯06-12 17:09
蛙课资讯06-17 17:37
蛙课资讯06-12 17:07