月考技能
2018-07-25 本文已影响0人
恨别A鸟惊心
[TOC]
1.新建数据库之后 使用myeclipse创建一个新的连接
2.导包 一次性成功 (Struts - Spring -Hibernate)
3.添加配置文件
1》web.xml
2》applicationContext.xml
3》修改applicationContext.xml
1.数据库名称
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/yk">
</property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
2.删除以下实体映射
<list>
<value>entity/Shop.hbm.xml</value>
<value>entity/Blank.hbm.xml</value>
</list>
4.生成实体 以及实体映射
5.注意包名 小写
6.建立实体和实体之间多对一的联系
1》删除 多这边的 外键
private Integer id;
private String name;
private String sex;
private String hobby;
private String tel;
private String address;
private Integer did; (删除)
2》删除这个外键对应的配置
<class name="entity.Leader" table="leader" catalog="yk">
<property name="did" type="java.lang.Integer">
<column name="did" />
</property>(删除)
</class>
3》添加一的对象 以及 get 和set方法
private Integer id;
private String name;
private String sex;
private String hobby;
private String tel;
private String address;
private Dept dept;(添加)
4》添加两者的关系配置
<class name="entity.Leader" table="leader" catalog="yk">
<many-to-one name="dept" class="entity.Dept" column="did"></many-to-one>
</class>
7.编写dao层
1》写接口
public interface LeaderDao {
//模糊分页查询
int count(String name);
List<Leader> findLeader(int start,int pageSize,String name);
//新增
void addLeader(Leader leader);
//修改
void update(Leader leader);
}
2》实现类
@Repository("leaderDao")
public class LeaderDaoImpl extends HibernateDaoSupport implements LeaderDao{
public int count(String name) {
// TODO Auto-generated method stub
return getSession().createQuery("from Leader where name like '%"+name+"%'")
.list().size();
}
public List<Leader> findLeader(int start, int pageSize, String name) {
// TODO Auto-generated method stub
return getSession().createQuery("from Leader where name like '%"+name+"%'")
.setFirstResult(start)
.setMaxResults(pageSize)
.list();
}
public void addLeader(Leader leader) {
// TODO Auto-generated method stub
getSession().save(leader);
}
public void update(Leader leader) {
// TODO Auto-generated method stub
getSession().update(leader);
}
}
8.编写service层
1》写接口
public interface LeaderService {
Page findLeaderByPage(int cur,String name);
void insert(Leader leader);
void update(Leader leader);
}
2》写实现类
@Service("leaderService")
public class LeaderServiceImpl implements LeaderService {
@Autowired
private LeaderDao leaderDao;
public Page findLeaderByPage(int cur, String name) {
// TODO Auto-generated method stub
//1.创建分页类
Page page=new Page();
//2.设置总行数
page.setCount(leaderDao.count(name));
//3.设置总页数
page.setTotal();
//4.设置当前页
if(cur<=1){
cur=1;
}else if(cur>page.getTotal()){
cur=page.getTotal();
}
page.setCur(cur);
//5.查询当前页的数据
List<Leader> leaders = leaderDao.findLeader((cur-1)*page.getPageSize(), page.getPageSize(), name);
page.setDatas(leaders);
return page;
}
public void insert(Leader leader) {
// TODO Auto-generated method stub
leaderDao.addLeader(leader);
}
public void update(Leader leader) {
// TODO Auto-generated method stub
leaderDao.update(leader);
}
}
-
编写控制层
@Controller public class LeaderController { @Autowired private LeaderService leaderService; //模糊查询 private int cur=1; private String name=""; public String findLeaderByPage(){ Page page = leaderService.findLeaderByPage(cur, name); ActionContext.getContext().put("page", page); return "index"; } //新增 private Leader leader; public String insert(){ leaderService.insert(leader); return "index"; } //修改 public String update(){ leaderService.update(leader); return "index"; }
public int getCur() {
return cur;
}
public void setCur(int cur) {
this.cur = cur;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Leader getLeader() {
return leader;
}
public void setLeader(Leader leader) {
this.leader = leader;
}
}
#### **10.配置struts.xml**
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" namespace="/" extends="json-default">
<action name="leader_*" class="controller.LeaderController" method="{1}">
<result name="index">index.jsp</result>
</action>
</package>
</struts>
11.编写页面
1》编写index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<c:if test="${page == null}">
<c:redirect url="leader_findLeaderByPage"></c:redirect>
</c:if>
<form action="leader_findLeaderByPage">
<input type="text" name="name" value="${name}"/> <input type="submit" value="搜索">
</form>
<table>
<tr>
<td>编号</td>
<td>姓名</td>
<td>性别</td>
<td>爱好</td>
<td>电话</td>
<td>地址</td>
<td>部门名称</td>
<td>操作</td>
</tr>
<c:forEach var="data" items="${page.datas}">
<tr>
<td>${data.id}</td>
<td>${data.name}</td>
<td>${data.sex}</td>
<td>${data.hobby}</td>
<td>${data.tel}</td>
<td>${data.address}</td>
<td>${data.dept.dname}</td>
<td><a href="#">修改</a></td>
</tr>
</c:forEach>
</table>
<a href="leader_findLeaderByPage?cur=1&name=${name}">首页</a>
<a href="leader_findLeaderByPage?cur=${page.cur-1}&name=${name}">上一页</a>
<a href="leader_findLeaderByPage?cur=${page.cur+1}&name=${name}">下一页</a>
<a href="leader_findLeaderByPage?cur=${page.total}&name=${name}">尾页</a>
</body>
</html>
2》编写add.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'add.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="leader_insert" method="post">
姓名:<input type="text" name="leader.name"/><br/>
性别:<input type="radio" value="男" name="leader.sex">男
<input type="radio" value="女" name="leader.sex">女 <br/>
爱好:<input type="text" name="leader.hobby"/><br/>
电话:<input type="text" name="leader.tel"/><br/>
地址:<input type="text" name="leader.address"/><br/>
部门:<select name="leader.dept.did">
<option value="1">销售部</option>
<option value="2">开发部</option>
<option value="3">人事部</option>
</select><br/>
<input type="submit" value="新增">
</form>
</body>
</html>
3》编写update.jsp
1、修改index页面的修改链接
<c:forEach var="data" items="${page.datas}">
<tr>
<td>${data.id}</td>
<td>${data.name}</td>
<td>${data.sex}</td>
<td>${data.hobby}</td>
<td>${data.tel}</td>
<td>${data.address}</td>
<td>${data.dept.dname}</td>
<td><a href="update.jsp?id=${data.id}&name=${data.name}&sex=${data.sex}&hobby=${data.hobby}&tel=${data.tel}&address=${data.address}&did=${data.dept.did}">修改</a></td>
</tr>
</c:forEach>
2、编写update.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'add.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="leader_update" method="post">
<input type="hidden" name="leader.id" value="${param.id}">
姓名:<input type="text" name="leader.name" value="${param.name}"/><br/>
性别:<input type="radio" value="男" name="leader.sex"
<c:if test="${param.sex == '男'}">
checked
</c:if>
>男
<input type="radio" value="女" name="leader.sex"
<c:if test="${param.sex == '女'}">
checked
</c:if>
>女 <br/>
爱好:<input type="text" name="leader.hobby" value="${param.hobby}"/><br/>
电话:<input type="text" name="leader.tel" value="${param.tel}"/><br/>
地址:<input type="text" name="leader.address" value="${param.address}"/><br/>
部门:<select name="leader.dept.did">
<option value="1">销售部</option>
<option value="2">开发部</option>
<option value="3">人事部</option>
</select><br/>
<input type="submit" value="修改">
</form>
</body>
</html>