系统管理模块_岗位管理_实现CRUD功能的具体步骤并设计Role实体
1,设计实体/表
设计实体 --> JavaBean --> hbm.xml --> 建表
设计Role实体
1 public classRole {2 privateLong id;3 privateString name;4 privateString description;5 publicLong getId() {6 returnid;7 }8 public voidsetId(Long id) {9 this.id =id;10 }11 publicString getName() {12 returnname;13 }14 public voidsetName(String name) {15 this.name =name;16 }17 publicString getDescription() {18 returndescription;19 }20 public voidsetDescription(String description) {21 this.description =description;22 }23 }
映射文件
加到hibernate.cfg.xml配置中,让它知道有这个映射文件才能建表
运行测试类,创建SessionFactory时就会创建itcast_role表
//测试SessionFactory
@Testpublic void testSessionFactory() throwsException {
SessionFactory sessionFactory= (SessionFactory)ac.getBean("sessionFactory");
System.out.println(sessionFactory);
}
2,分析有几个功能,对应几个请求。
添加、修改、删除成功后 要重定向到列表功能,这样在刷新页面时才不会出现“又做一次增、删、改”的操作。
列表与删除功能都是只有一个请求
添加与修改功能都是有两个请求
增删改查共4个功能,6个请求,需要在Action中有6个对应的处理方法。
作用
方法名
返回值
对应的JSP页面
列表
list()
list
list.jsp
删除
delete()
toList
添加页面
addUI()
addUI
addUI.jsp
添加
add()
toList
修改页面
editUI()
editUI
editUI.jsp
修改
edit()
toList
toList的配置为:type="redirectAction" actionName=“xxAction_list”
role_list
===================================================================
请求数量地址栏
转发1不变在一个功能之间的来回跳转
重定向2变化在多个功能之间的跳转
role_*---> {1}代表第一个方法
*号代表
role_listlist
role_addUIaddUI
role_deletedelete
3,实现功能:
1,写Action类,写Action中的方法,确定Service中的方法。
先完成列表和删除功能
1 @Controller2 @Scope("prototype")3 public class RoleAction extendsActionSupport{4 //在Action里面要用到Service,用注解@Resource,另外在RoleServiceImpl类上要添加注解@Service
5 @Resource6 privateRoleService roleService;7
8 privateLong id;9 /**
10 * 列表11 */
12 publicString list() {13 List roleList =roleService.findAll();14 ActionContext.getContext().put("roleList", roleList);//用ognl里的#号来获取map的东西
15 return "list";16 }17 /**
18 * 删除19 */
20 publicString delete() {21 roleService.delete(id);22 return "toList";23 }24 /**
25 * 添加页面26 */
27 publicString addUI() {28 return "addUI";29 }30 /**
31 * 添加32 */
33 publicString add() {34 return "toList";35 }36 /**
37 * 修改页面38 */
39 publicString editUI() {40 return "editUI";41 }42 /**
43 * 修改44 */
45 publicString edit() {46 return "toList";47 }48 //--------------
49 publicLong getId() {50 returnid;51 }52 public voidsetId(Long id) {53 this.id =id;54 }55 }
在struts.xml文件中配置
/WEB-INF/jsp/roleAction/list.jsp
/WEB-INF/jsp/roleAction/addUI.jsp
/WEB-INF/jsp/roleAction/editUI.jsp
role_list
2,写Service方法,确定Dao中的方法。
先完成列表和删除功能
RoleService.java
//接口中只有方法的声明,没有方法的实现
public interfaceRoleService {//查询所有
ListfindAll();//删除
voiddelete(Long id);
}
RoleServiceImpl.java
//在Action中要调用Service,要写下面两个注解
@Service
@Transactional//业务层要管理实务,控制开关事务
public class RoleServiceImpl implementsRoleService{//Service里要调用Dao,得到它通过注入
@ResourceprivateRoleDao roleDao;public ListfindAll() {returnroleDao.findAll();
}public voiddelete(Long id) {
roleDao.delete(id);
}
}
3,写Dao方法。
RoleDao.java
public interface RoleDao extends BaseDao{
}
列表与删除等公共方法都在继承的BaseDao里有
RoleDaoImpl.java
//放到容器里面,以供Service使用Dao的接口与实现类
@Repositorypublic class RoleDaoImpl extends BaseDaoImpl implementsRoleDao{
}
4,写JSP
list.jsp
,,,删除
访问:http://localhost:8080/ItcastOA/role_list.action即可看到列表
实现添加和修改功能
1,写Action类,写Action中的方法,确定Service中的方法。
RoleAction.java
1 @Controller2 @Scope("prototype")3 public class RoleAction extendsActionSupport{4 //在Action里面要用到Service,用注解@Resource,另外在RoleServiceImpl类上要添加注解@Service
5 @Resource6 privateRoleService roleService;7
8 privateLong id;9 privateString name;10 privateString description;11 /**
12 * 列表13 */
14 publicString list() {15 List roleList =roleService.findAll();16 ActionContext.getContext().put("roleList", roleList);//用ognl里的#号来获取map的东西
17 return "list";18 }19
20 /**
21 * 删除22 */
23 publicString delete() {24 roleService.delete(id);25 return "toList";26 }27 /**
28 * 添加页面29 */
30 publicString addUI() {31 return "addUI";32 }33 /**
34 * 添加35 */
36 publicString add() {37 //封装到对象中
38 Role role = newRole();39 role.setName(name);//名称和说明怎么得到,跟id一样声明字段,setget方法
40 role.setDescription(description);41
42 //保存到数据库中
43 roleService.save(role);44 return "toList";45 }46 /**
47 * 修改页面48 */
49 publicString editUI() {50 //准备回显的数据
51 Role role =roleService.getById(id);52 //ActionContext.getContext().getValueStack().push(role);//放到栈顶
53 this.name=role.getName();54 this.description =role.getDescription();55 return "editUI";56 }57 /**
58 * 修改59 */
60 publicString edit() {61 //1.从数据库中获取原对象
62 Role role = roleService.getById(id);//role是根据id来的63
64 //2.设置要修改的属性
65 role.setName(name);66 role.setDescription(description);67 //3.更新到数据库
68 roleService.update(role);69
70 return "toList";71 }72 //--------------
73 publicLong getId() {74 returnid;75 }76 public voidsetId(Long id) {77 this.id =id;78 }79 publicString getName() {80 returnname;81 }82 public voidsetName(String name) {83 this.name =name;84 }85 publicString getDescription() {86 returndescription;87 }88 public voidsetDescription(String description) {89 this.description =description;90 }91 }
2,写Service方法,确定Dao中的方法。
RoleService.java
//接口中只有方法的声明,没有方法的实现
public interfaceRoleService {//查询所有
ListfindAll();//删除
voiddelete(Long id);//保存
voidsave(Role role);
Role getById(Long id);//更新
voidupdate(Role role);
}
3,写Dao方法。
RoleDao.java
public interface RoleDao extends BaseDao{
}
4,写JSP
addUI.jsp
editUI.jsp