0、创建如下oracle的命令

  1. create table HOTALINFO
  2. (
  3. HOTALID NUMBER(10) not null,
  4. HOTALNAME VARCHAR2(50) not null,
  5. HOTALADDRESS VARCHAR2(100) not null
  6. )
  7. ;
  8. comment on table HOTALINFO
  9. is '酒店信息表';
  10. comment on column HOTALINFO.HOTALID
  11. is '酒店编号';
  12. comment on column HOTALINFO.HOTALNAME
  13. is '酒店名称';
  14. comment on column HOTALINFO.HOTALADDRESS
  15. is '酒店地址';
  16. alter table HOTALINFO
  17. add constraint PK_HOTALID primary key (HOTALID);
  18.  
  19. create table SPORTSMAN
  20. (
  21. SPORTID NUMBER(10) not null,
  22. SPORTNAME VARCHAR2(50) not null,
  23. NATIONALITY VARCHAR2(50) not null,
  24. HOTALID NUMBER(10) not null,
  25. INTAKETIME DATE not null,
  26. LEAVETIME DATE not null
  27. )
  28. ;
  29.  
  30. comment on table SPORTSMAN
  31. is '运动员信息表';
  32. comment on column SPORTSMAN.SPORTID
  33. is '运动员编号';
  34. comment on column SPORTSMAN.SPORTNAME
  35. is '运动员姓名';
  36. comment on column SPORTSMAN.NATIONALITY
  37. is '国籍';
  38. comment on column SPORTSMAN.HOTALID
  39. is '酒店编号';
  40. comment on column SPORTSMAN.INTAKETIME
  41. is '入住时间';
  42. comment on column SPORTSMAN.LEAVETIME
  43. is '离开时间';
  44.  
  45. alter table SPORTSMAN
  46. add constraint PK_SPORTID primary key (SPORTID);
  47. alter table SPORTSMAN
  48. add constraint FK_HOTELID foreign key (HOTALID)
  49. references HOTALINFO (HOTALID);
  50.  
  51. -- Create sequence
  52. create sequence SEQ_HOTALID
  53. minvalue 1
  54. maxvalue 999999
  55. start with 1
  56. increment by 1
  57. cache 30;
  58.  
  59. create sequence SEQ_SPORTID
  60. minvalue 1
  61. maxvalue 99999
  62. start with 1
  63. increment by 1
  64. cache 30;
  65.  
  66. insert into HOTALINFO (HOTALID, HOTALNAME, HOTALADDRESS)
  67. values (SEQ_HOTALID.nextval, '帝豪酒店', '南京中央门-30');
  68. insert into HOTALINFO (HOTALID, HOTALNAME, HOTALADDRESS)
  69. values (SEQ_HOTALID.nextval, '格林豪泰', '南京宣武门-30');
  70. insert into HOTALINFO (HOTALID, HOTALNAME, HOTALADDRESS)
  71. values (SEQ_HOTALID.nextval, '7天假日', '北京中央门-30');
  72. insert into HOTALINFO (HOTALID, HOTALNAME, HOTALADDRESS)
  73. values (SEQ_HOTALID.nextval, '99酒店', '南京大厂门-30');
  74. commit;
  75.  
  76. insert into SPORTSMAN (SPORTID, SPORTNAME, NATIONALITY, HOTALID, INTAKETIME, LEAVETIME)
  77. values (SEQ_SPORTID.nextval, '张三', '英国', 1, to_date('05-04-2014', 'dd-mm-yyyy'), to_date('18-04-2014', 'dd-mm-yyyy'));
  78. insert into SPORTSMAN (SPORTID, SPORTNAME, NATIONALITY, HOTALID, INTAKETIME, LEAVETIME)
  79. values (SEQ_SPORTID.nextval, '李四', '韩国', 1, to_date('06-04-2014', 'dd-mm-yyyy'), to_date('17-04-2014', 'dd-mm-yyyy'));
  80. insert into SPORTSMAN (SPORTID, SPORTNAME, NATIONALITY, HOTALID, INTAKETIME, LEAVETIME)
  81. values (SEQ_SPORTID.nextval, '王五', '日本', 1, to_date('07-04-2014', 'dd-mm-yyyy'), to_date('16-04-2014', 'dd-mm-yyyy'));
  82. insert into SPORTSMAN (SPORTID, SPORTNAME, NATIONALITY, HOTALID, INTAKETIME, LEAVETIME)
  83. values (SEQ_SPORTID.nextval, '马六', '中国', 2, to_date('08-04-2014', 'dd-mm-yyyy'), to_date('15-04-2014', 'dd-mm-yyyy'));
  84. insert into SPORTSMAN (SPORTID, SPORTNAME, NATIONALITY, HOTALID, INTAKETIME, LEAVETIME)
  85. values (SEQ_SPORTID.nextval, '小猪', '法国', 3, to_date('09-04-2014', 'dd-mm-yyyy'), to_date('14-04-2014', 'dd-mm-yyyy'));
  86. insert into SPORTSMAN (SPORTID, SPORTNAME, NATIONALITY, HOTALID, INTAKETIME, LEAVETIME)
  87. values (SEQ_SPORTID.nextval, '菜菜', '外国', 4, to_date('10-04-2014', 'dd-mm-yyyy'), to_date('13-04-2014', 'dd-mm-yyyy'));
  88. insert into SPORTSMAN (SPORTID, SPORTNAME, NATIONALITY, HOTALID, INTAKETIME, LEAVETIME)
  89. values (SEQ_SPORTID.nextval, '放大', '是的', 4, to_date('03-03-2013', 'dd-mm-yyyy'), to_date('06-05-2014', 'dd-mm-yyyy'));
  90. insert into SPORTSMAN (SPORTID, SPORTNAME, NATIONALITY, HOTALID, INTAKETIME, LEAVETIME)
  91. values (SEQ_SPORTID.nextval, '答复', '的', 1, to_date('03-03-2013', 'dd-mm-yyyy'), to_date('06-05-2014', 'dd-mm-yyyy'));
  92. insert into SPORTSMAN (SPORTID, SPORTNAME, NATIONALITY, HOTALID, INTAKETIME, LEAVETIME)
  93. values (SEQ_SPORTID.nextval, '', '', 3, to_date('05-04-2014', 'dd-mm-yyyy'), to_date('05-04-2014', 'dd-mm-yyyy'));
  94. insert into SPORTSMAN (SPORTID, SPORTNAME, NATIONALITY, HOTALID, INTAKETIME, LEAVETIME)
  95. values (SEQ_SPORTID.nextval, '按到', '中国', 4, to_date('03-03-2013', 'dd-mm-yyyy'), to_date('04-04-2014', 'dd-mm-yyyy'));
  96. commit;

oracle的脚本

1、项目实现如下功能

(1)分页查询所有

(2)分页查询下一页

(3)、模糊查询

(4)、模糊分页查询下一页

(5)、修改第一条

(6)、查看修改结果

(7)、添加

(8)、查看添加后的结果

(9) 删除第二条查看删除结果

2、创建如下项目结构

3、在entity包下创建HotalInfo.java

  1. package com.entity;
  2.  
  3. import java.io.Serializable;
  4. import java.util.HashSet;
  5. import java.util.Set;
  6.  
  7. /**
  8. * 1.一方:酒店
  9. * @author Holly老师
  10. *
  11. */
  12. public class HotalInfo implements Serializable{
  13. private static final long serialVersionUID = 1L;
  14. /**
  15. * 酒店id
  16. */
  17. private Integer hotalid;
  18. /**
  19. * 酒店名称
  20. */
  21. private String hotalname;
  22. /**
  23. * 酒店地址
  24. */
  25. private String hotaladdress;
  26.  
  27. /**
  28. * 一方引入set集合:一对多
  29. */
  30. private Set<Sportsman> sportsmans=new HashSet<Sportsman>();
  31.  
  32. public HotalInfo() {
  33. }
  34.  
  35. public HotalInfo(String hotalname, String hotaladdress) {
  36. this.hotalname = hotalname;
  37. this.hotaladdress = hotaladdress;
  38. }
  39.  
  40. public HotalInfo(Integer hotalid, String hotalname, String hotaladdress) {
  41. this.hotalid = hotalid;
  42. this.hotalname = hotalname;
  43. this.hotaladdress = hotaladdress;
  44. }
  45.  
  46. public HotalInfo(Integer hotalid, String hotalname, String hotaladdress,
  47. Set<Sportsman> sportsmans) {
  48. this.hotalid = hotalid;
  49. this.hotalname = hotalname;
  50. this.hotaladdress = hotaladdress;
  51. this.sportsmans = sportsmans;
  52. }
  53.  
  54. public Integer getHotalid() {
  55. return hotalid;
  56. }
  57. public void setHotalid(Integer hotalid) {
  58. this.hotalid = hotalid;
  59. }
  60. public String getHotalname() {
  61. return hotalname;
  62. }
  63. public void setHotalname(String hotalname) {
  64. this.hotalname = hotalname;
  65. }
  66. public String getHotaladdress() {
  67. return hotaladdress;
  68. }
  69. public void setHotaladdress(String hotaladdress) {
  70. this.hotaladdress = hotaladdress;
  71. }
  72.  
  73. public Set<Sportsman> getSportsmans() {
  74. return sportsmans;
  75. }
  76.  
  77. public void setSportsmans(Set<Sportsman> sportsmans) {
  78. this.sportsmans = sportsmans;
  79. }
  80.  
  81. @Override
  82. public String toString() {
  83. return "HotalInfo [hotaladdress=" + hotaladdress + ", hotalid="
  84. + hotalid + ", hotalname=" + hotalname + "]";
  85. }
  86.  
  87. }

HotalInfo.java

4、在entity包下创建Sportsman.java

  1. package com.entity;
  2.  
  3. import java.util.Date;
  4.  
  5. /**
  6. * 2.多方:运动员
  7. * @author Holly老师
  8. *
  9. */
  10. public class Sportsman {
  11. /**
  12. * 运动员编号
  13. */
  14. private Integer sportid;
  15. /**
  16. * 运动员姓名
  17. */
  18. private String sportname;
  19. /**
  20. * 国籍
  21. */
  22. private String nationality;
  23. /**
  24. * 入住时间
  25. */
  26. private Date intaketime;
  27. /**
  28. * 离开时间
  29. */
  30. private Date leavetime;
  31.  
  32. /**
  33. * 多对一:配置对象
  34. */
  35. private HotalInfo hotalinfo;
  36.  
  37. public Sportsman() {
  38. }
  39.  
  40. public Sportsman(String sportname, String nationality, Date intaketime,
  41. Date leavetime, HotalInfo hotalinfo) {
  42. this.sportname = sportname;
  43. this.nationality = nationality;
  44. this.intaketime = intaketime;
  45. this.leavetime = leavetime;
  46. this.hotalinfo = hotalinfo;
  47. }
  48.  
  49. public Sportsman(Integer sportid, String sportname, String nationality,
  50. Date intaketime, Date leavetime, HotalInfo hotalinfo) {
  51. this.sportid = sportid;
  52. this.sportname = sportname;
  53. this.nationality = nationality;
  54. this.intaketime = intaketime;
  55. this.leavetime = leavetime;
  56. this.hotalinfo = hotalinfo;
  57. }
  58.  
  59. public Integer getSportid() {
  60. return sportid;
  61. }
  62.  
  63. public void setSportid(Integer sportid) {
  64. this.sportid = sportid;
  65. }
  66.  
  67. public String getSportname() {
  68. return sportname;
  69. }
  70.  
  71. public void setSportname(String sportname) {
  72. this.sportname = sportname;
  73. }
  74.  
  75. public String getNationality() {
  76. return nationality;
  77. }
  78.  
  79. public void setNationality(String nationality) {
  80. this.nationality = nationality;
  81. }
  82.  
  83. public Date getIntaketime() {
  84. return intaketime;
  85. }
  86.  
  87. public void setIntaketime(Date intaketime) {
  88. this.intaketime = intaketime;
  89. }
  90.  
  91. public Date getLeavetime() {
  92. return leavetime;
  93. }
  94.  
  95. public void setLeavetime(Date leavetime) {
  96. this.leavetime = leavetime;
  97. }
  98.  
  99. public HotalInfo getHotalinfo() {
  100. return hotalinfo;
  101. }
  102.  
  103. public void setHotalinfo(HotalInfo hotalinfo) {
  104. this.hotalinfo = hotalinfo;
  105. }
  106.  
  107. @Override
  108. public String toString() {
  109. return "Sportsman [hotalinfo=" + hotalinfo + ", intaketime="
  110. + intaketime + ", leavetime=" + leavetime + ", nationality="
  111. + nationality + ", sportid=" + sportid + ", sportname="
  112. + sportname + "]";
  113. }
  114.  
  115. }

Sportsman.java

5、在entity包下创建HotalInfo.hbm.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
  3. <hibernate-mapping>
  4. <!--一方配置: name是实体类的全路径,table是数据库表名-->
  5. <class name="com.entity.HotalInfo" lazy="false" table="HOTALINFO">
  6.  
  7. <!-- 1.主键配置 ,name是类字段名。type是数据类型,column是列名-->
  8. <id name="hotalid" type="java.lang.Integer" column="HOTALID">
  9. <generator class="sequence">
  10. <!-- 主键是自增长序列 -->
  11. <param name="sequence">SEQ_HOTALID</param>
  12. </generator>
  13. </id>
  14. <!-- 2.普通属性配置 -->
  15. <property name="hotalname" type="java.lang.String" column="HOTALNAME"/>
  16. <property name="hotaladdress" type="java.lang.String" column="HOTALADDRESS"/>
  17.  
  18. <!-- 3. 一对多配置:-->
  19. <set name="sportsmans" table="SPORTSMAN">
  20. <!--外键列 -->
  21. <key column="HOTALID"></key>
  22.  
  23. <!-- 集合对应的实体类路径 -->
  24. <one-to-many class="com.entity.Sportsman"/>
  25. </set>
  26.  
  27. </class>
  28. </hibernate-mapping>

HotalInfo.hbm.xml

6、在entity包下创建Sportsman.hbm.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
  3. <hibernate-mapping>
  4. <!-- 多方配置: -->
  5. <class name="com.entity.Sportsman" table="SPORTSMAN">
  6. <!-- 1.主键配置 -->
  7. <id name="sportid" type="java.lang.Integer" column="SPORTID">
  8. <!-- 主键自增长 -->
  9. <generator class="sequence">
  10. <param name="sequence">SEQ_SPORTID</param>
  11. </generator>
  12. </id>
  13. <!-- 2.普通属性配置 -->
  14. <property name="sportname" type="java.lang.String" column="SPORTNAME"/>
  15. <property name="nationality" type="java.lang.String" column="NATIONALITY"/>
  16. <property name="intaketime" type="java.util.Date" column="INTAKETIME"/>
  17. <property name="leavetime" type="java.util.Date" column="LEAVETIME"/>
  18.  
  19. <!-- 3.多对一配置 -->
  20. <!-- name是该类对应的外键类的对象名,class为外键类的全路径,column为外键列 -->
  21. <many-to-one name="hotalinfo" class="com.entity.HotalInfo" column="HOTALID"/>
  22. </class>
  23. </hibernate-mapping>

Sportsman.hbm.xml

7、在dao包下创建HotalInfoDao.java

  1. package com.dao;
  2.  
  3. import java.util.List;
  4.  
  5. import com.entity.HotalInfo;
  6.  
  7. /**
  8. * 一方:酒店数据访问层接口
  9. * @author Holly老师
  10. *
  11. */
  12. public interface HotalInfoDao {
  13. /**
  14. * 1.查询所有
  15. * @return
  16. */
  17. public List<HotalInfo> query();
  18. /**
  19. * 2.根据id查询
  20. * @param id
  21. * @return
  22. */
  23. HotalInfo queryById(Integer id);
  24.  
  25. }

HotalInfoDao.java

8、在dao包下创建SportsmanDao.java

  1. package com.dao;
  2.  
  3. import java.util.List;
  4.  
  5. import com.entity.Sportsman;
  6.  
  7. /**
  8. * 多方:运动员数据访问层接口
  9. * @author Holly老师
  10. *
  11. */
  12. public interface SportsmanDao {
  13. /**
  14. * 1.分页查询
  15. * @param pageSize 页面大小
  16. * @param pageNo 当前页
  17. * @return 分页集合
  18. */
  19. List<Sportsman> queryPage(Integer pageSize,Integer pageNo);
  20.  
  21. /**
  22. * 2.插入一个对象
  23. * @param obj 携带数据的对象
  24. * @return 受影响的行数
  25. */
  26. int insert(Sportsman obj);
  27.  
  28. /**
  29. * 3.根据id删除
  30. * @param id
  31. * @return
  32. */
  33. int delete(Sportsman obj);
  34.  
  35. /**
  36. * 4.修改对象
  37. * @param obj 携带数据的对象
  38. * @return 受影响的行数
  39. */
  40. int update(Sportsman obj);
  41.  
  42. /**
  43. * 5.根据id查询
  44. * @param id
  45. * @return
  46. */
  47. Sportsman queryById(Integer id);
  48.  
  49. /**
  50. * 6.查询总条数
  51. */
  52. Integer totalCount();
  53.  
  54. /**
  55. * 7.模糊条件分页查询
  56. * @param pageSize 页面大小
  57. * @param pageNo 当前页
  58. * @param likeparam 模糊条件
  59. * @return
  60. */
  61. List<Sportsman> queryPageLike(Integer pageSize,Integer pageNo,String likeparam);
  62. /**
  63. * 8.模糊条件查询总条数
  64. * @return
  65. */
  66. Integer totalCountLike(String likeparam);
  67. }

SportsmanDao.java

9、在dao.impl包下创建HotalInfoDaoImpl.java

  1. package com.dao.impl;
  2.  
  3. import java.util.List;
  4.  
  5. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
  6.  
  7. import com.dao.HotalInfoDao;
  8. import com.entity.HotalInfo;
  9. /**
  10. * 一方:酒店
  11. * @author Holly老师
  12. *
  13. */
  14. public class HotalInfoDaoImpl extends HibernateDaoSupport implements HotalInfoDao {
  15. /**
  16. * 1.查询所有区域信息
  17. */
  18. public List<HotalInfo> query() {
  19.  
  20. List<HotalInfo> list=getHibernateTemplate().find("from HotalInfo");
  21.  
  22. return list;
  23. }
  24. /**
  25. * 2.根据id查询
  26. */
  27. public HotalInfo queryById(Integer id) {
  28. //根据主键查询
  29. HotalInfo hotalInfo=getHibernateTemplate().get(HotalInfo.class, id);
  30. return hotalInfo;
  31. }
  32.  
  33. }

HotalInfoDaoImpl.java

10、在dao.impl包下创建SportsmanDaoImpl.java

  1. package com.dao.impl;
  2.  
  3. import java.util.List;
  4.  
  5. import org.hibernate.Query;
  6. import org.hibernate.Session;
  7. import org.springframework.dao.DataAccessException;
  8. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
  9.  
  10. import com.dao.SportsmanDao;
  11. import com.entity.Sportsman;
  12. /**
  13. * 多方:运动员数据访问层实现类
  14. * @author Holly老师
  15. *
  16. */
  17. public class SportsmanDaoImpl extends HibernateDaoSupport
  18. implements SportsmanDao {
  19. /**
  20. * 1.删除
  21. */
  22. public int delete(Sportsman obj) {
  23. try {
  24. getHibernateTemplate().delete(obj);
  25.  
  26. return 1;
  27. } catch (DataAccessException e) {
  28. e.printStackTrace();
  29. return 0;
  30. }
  31. }
  32. /**
  33. * 2.添加
  34. */
  35. public int insert(Sportsman obj) {
  36. try {
  37. getHibernateTemplate().save(obj);
  38. return 1;
  39. } catch (DataAccessException e) {
  40. e.printStackTrace();
  41. return 0;
  42. }
  43. }
  44. /**
  45. * 3.根据id查询
  46. */
  47. public Sportsman queryById(Integer id) {
  48. try {
  49. //根据主键id查询
  50. Sportsman man=getHibernateTemplate().get(Sportsman.class, id);
  51. return man;
  52. } catch (DataAccessException e) {
  53. // TODO Auto-generated catch block
  54. e.printStackTrace();
  55. return null;
  56. }
  57. }
  58. /**
  59. * 4.分页查询
  60. */
  61. public List<Sportsman> queryPage(Integer pageSize, Integer pageNo) {
  62. //4.1 获取session对象
  63. Session session=getHibernateTemplate().getSessionFactory().openSession();
  64.  
  65. //4.2 创建Query对象
  66. Query query=session.createQuery("from Sportsman");
  67.  
  68. //4.3 查询起始行数据3-5
  69. query.setFirstResult((pageNo-1)*pageSize);
  70.  
  71. //4.4 查询结束行数据
  72. query.setMaxResults(pageSize);
  73.  
  74. //4.5 分页查询
  75. List<Sportsman> list=query.list();
  76.  
  77. //4.6 关闭session(?)
  78.  
  79. //4.7 返回集合
  80. return list;
  81. }
  82. /**
  83. * 5.模糊分页查询
  84. * 查询 运行员的信息
  85. */
  86. public List<Sportsman> queryPageLike(Integer pageSize, Integer pageNo,
  87. String likeparam) {
  88. //5.1 获取session对象
  89. Session session=getHibernateTemplate().getSessionFactory().openSession();
  90.  
  91. //5.2 将string类型酒店id的类型转换为Integer 类型
  92. Integer id=Integer.parseInt(likeparam);
  93. // Integer id=likeparam;
  94.  
  95. //5.3定义hql语句
  96. String hql="from Sportsman a where a.hotalinfo.hotalid=:id";
  97.  
  98. //5.4 创建Query对象
  99. Query query=session.createQuery(hql);
  100.  
  101. //5.5为命名参数赋值(第一个id是sql中:id)
  102. query.setParameter("id", id);
  103.  
  104. //5.6 查询起始行
  105. query.setFirstResult((pageNo-1)*pageSize);
  106.  
  107. //5.7查询结束行
  108. query.setMaxResults(pageSize);
  109.  
  110. //5.8 模糊分页查询
  111. List<Sportsman> list=query.list();
  112.  
  113. //5.9 关闭session(?)
  114. //5.10 返回集合
  115. return list;
  116. }
  117. /**
  118. * 6.求出总记录数
  119. */
  120. public Integer totalCount() {
  121. //6.1 获取session对象
  122. Session session=getHibernateTemplate().getSessionFactory().openSession();
  123.  
  124. //6.2 定义hql语句
  125. String hql="select count(*) from Sportsman";
  126.  
  127. //6.3定义Query对象
  128. Query query=session.createQuery(hql);
  129.  
  130. //6.4使用唯一结果查询方法
  131. String count=query.uniqueResult().toString();
  132.  
  133. //6.5 Stirng 装换为integer
  134. Integer totalCount=Integer.parseInt(count);
  135.  
  136. //6.6返回记录数
  137. return totalCount;
  138. }
  139. /**
  140. * 7.求模糊总记录条数
  141. */
  142. public Integer totalCountLike(String likeparam) {
  143. //7.1 获取session对象
  144. Session session=getHibernateTemplate().getSessionFactory().openSession();
  145.  
  146. //7.2 定义hql语句
  147. String hql="select count(*) from Sportsman a " +
  148. "where a.hotalinfo.hotalid=:id";
  149.  
  150. //7.3 创建Query对象
  151. Query query=session.createQuery(hql);
  152.  
  153. //7.4 id类型转换
  154. Integer id=Integer.parseInt(likeparam);
  155.  
  156. //7.5 为命名参数赋值
  157. query.setParameter("id", id);
  158.  
  159. //7.6 查询唯一结果
  160. String count=query.uniqueResult().toString();
  161.  
  162. //7.7 类型转换
  163. Integer totalCount=Integer.parseInt(count);
  164.  
  165. //7.8 返回记录数
  166. return totalCount;
  167. }
  168.  
  169. /**
  170. * 8.修改
  171. */
  172. public int update(Sportsman obj) {
  173. try {
  174. getHibernateTemplate().update(obj);
  175. return 1;
  176. } catch (DataAccessException e) {
  177. e.printStackTrace();
  178. return 0;
  179. }
  180. }
  181.  
  182. }

SportsmanDaoImpl.java

11、在service包下创建HotalInfoService.java

  1. package com.service;
  2.  
  3. import java.util.List;
  4.  
  5. import com.entity.HotalInfo;
  6.  
  7. /**
  8. * 一方:酒店业务接口
  9. * @author Holly老师
  10. *
  11. */
  12. public interface HotalInfoService {
  13. /**
  14. * 1.查询所有
  15. * @return
  16. */
  17. public List<HotalInfo> query();
  18. /**
  19. * 2.根据id查询
  20. * @param id
  21. * @return
  22. */
  23. HotalInfo queryById(Integer id);
  24.  
  25. }

HotalInfoService.java

12、在service包下创建SportsmanService.java

  1. package com.service;
  2.  
  3. import java.util.List;
  4.  
  5. import com.entity.Sportsman;
  6.  
  7. /**
  8. * 运动员数据访问层接口
  9. * @author Holly老师
  10. *
  11. */
  12. public interface SportsmanService {
  13. /**
  14. * 1.分页查询
  15. * @param pageSize 页面大小
  16. * @param pageNo 当前页
  17. * @return 分页集合
  18. */
  19. List<Sportsman> queryPage(Integer pageSize,Integer pageNo);
  20.  
  21. /**
  22. * 2.插入一个对象
  23. * @param obj 携带数据的对象
  24. * @return 受影响的行数
  25. */
  26. int insert(Sportsman obj);
  27.  
  28. /**
  29. * 3.根据id删除
  30. * @param id
  31. * @return
  32. */
  33. int delete(Sportsman obj);
  34.  
  35. /**
  36. * 4.修改对象
  37. * @param obj 携带数据的对象
  38. * @return 受影响的行数
  39. */
  40. int update(Sportsman obj);
  41.  
  42. /**
  43. * 5.根据id查询
  44. * @param id
  45. * @return
  46. */
  47. Sportsman queryById(Integer id);
  48.  
  49. /**
  50. * 6.查询总条数
  51. */
  52. Integer totalCount();
  53.  
  54. /**
  55. * 7.模糊条件分页查询
  56. * @param pageSize 页面大小
  57. * @param pageNo 当前页
  58. * @param likeparam 模糊条件
  59. * @return
  60. */
  61. List<Sportsman> queryPageLike(Integer pageSize,Integer pageNo,String likeparam);
  62. /**
  63. * 8.模糊条件查询总条数
  64. * @return
  65. */
  66. Integer totalCountLike(String likeparam);
  67. }

SportsmanService.java

13、在service.impl包下创建HotalInfoServiceImpl.java

  1. package com.service.impl;
  2.  
  3. import java.util.List;
  4.  
  5. import com.dao.HotalInfoDao;
  6. import com.entity.HotalInfo;
  7. import com.service.HotalInfoService;
  8. /**
  9. * 一方:业务逻辑接口
  10. * @author Holly老师
  11. *
  12. */
  13. public class HotalInfoServiceImpl implements HotalInfoService {
  14. /**
  15. * 在spring中注入数据访问
  16. */
  17. private HotalInfoDao oneDao;
  18.  
  19. public HotalInfoDao getOneDao() {
  20. return oneDao;
  21. }
  22.  
  23. public void setOneDao(HotalInfoDao oneDao) {
  24. this.oneDao = oneDao;
  25. }
  26.  
  27. /**
  28. * 查询所有
  29. */
  30. public List<HotalInfo> query() {
  31.  
  32. return oneDao.query();
  33. }
  34. /**
  35. * 根据id查询
  36. */
  37. public HotalInfo queryById(Integer id) {
  38.  
  39. return oneDao.queryById(id);
  40. }
  41.  
  42. }

HotalInfoServiceImpl.java

14、在service.impl包下创建SportsmanServiceImpl.java

  1. package com.service.impl;
  2.  
  3. import java.util.List;
  4.  
  5. import com.dao.SportsmanDao;
  6. import com.entity.Sportsman;
  7. import com.service.SportsmanService;
  8. /**
  9. *多方:业务逻辑接口实现类
  10. * @author Holly老师
  11. *
  12. */
  13. public class SportsmanServiceImpl implements SportsmanService {
  14. /**
  15. * Spring中注入数据访问层dao:多方
  16. */
  17. private SportsmanDao manyDao;
  18.  
  19. public SportsmanDao getManyDao() {
  20. return manyDao;
  21. }
  22.  
  23. public void setManyDao(SportsmanDao manyDao) {
  24. this.manyDao = manyDao;
  25. }
  26. /**
  27. * 1.删除
  28. */
  29. public int delete(Sportsman obj) {
  30. // TODO Auto-generated method stub
  31. return manyDao.delete(obj);
  32. }
  33. /**
  34. * 2.添加
  35. */
  36. public int insert(Sportsman obj) {
  37. return manyDao.insert(obj);
  38. }
  39. /**
  40. * 3.根据id查询
  41. */
  42. public Sportsman queryById(Integer id) {
  43. return manyDao.queryById(id);
  44. }
  45. /**
  46. * 4.普通分页查询
  47. */
  48. public List<Sportsman> queryPage(Integer pageSize, Integer pageNo) {
  49. return manyDao.queryPage(pageSize, pageNo);
  50. }
  51. /**
  52. * 5.模糊分页查询
  53. */
  54. public List<Sportsman> queryPageLike(Integer pageSize, Integer pageNo,
  55. String likeparam) {
  56. // TODO Auto-generated method stub
  57. return manyDao.queryPageLike(pageSize, pageNo, likeparam);
  58. }
  59. /**
  60. * 6.获取总条数
  61. */
  62. public Integer totalCount() {
  63. return manyDao.totalCount();
  64. }
  65. /**
  66. * 7.条件查询总条数
  67. */
  68. public Integer totalCountLike(String likeparam) {
  69. // TODO Auto-generated method stub
  70. return manyDao.totalCountLike(likeparam);
  71. }
  72. /**
  73. * 8.修改
  74. */
  75. public int update(Sportsman obj) {
  76. // TODO Auto-generated method stub
  77. return manyDao.update(obj);
  78. }
  79.  
  80. }

SportsmanServiceImpl.java

15、在action包下创建SportsmanAction.java

  1. package com.action;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpSession;
  8.  
  9. import org.apache.struts2.ServletActionContext;
  10. import org.hibernate.mapping.Array;
  11.  
  12. import com.entity.HotalInfo;
  13. import com.entity.Sportsman;
  14. import com.opensymphony.xwork2.ActionSupport;
  15. import com.service.HotalInfoService;
  16. import com.service.SportsmanService;
  17. /**
  18. * 多方:控制层
  19. * @author Holly老师
  20. *
  21. */
  22. public class SportsmanAction extends ActionSupport {
  23. /**
  24. * 1.在Spring中注入service层对象
  25. */
  26. private HotalInfoService oneService; //一方service
  27. private SportsmanService manyService; //多方service
  28.  
  29. /**
  30. * 3.Struts 给一方对象注入数据
  31. */
  32. private HotalInfo oneObj;
  33.  
  34. /**
  35. * 3.Struts 给多方对象注入数据
  36. * @return
  37. */
  38. private Sportsman manyObj;
  39.  
  40. /**
  41. * 4.查询单条
  42. * @return
  43. */
  44. public String findById(){
  45. //6.1 获取request对象
  46. HttpServletRequest request=ServletActionContext.getRequest();
  47.  
  48. //6.2 判断参数id是否接到
  49. if(manyObj!=null){
  50. Integer id=manyObj.getSportid();
  51.  
  52. //6.2.1 根据id查询
  53. Sportsman many=manyService.queryById(id);
  54. //6.2.2 对象放入
  55. request.setAttribute("many", many);
  56. return SUCCESS;
  57.  
  58. }else{
  59. System.out.println("id没有接到");
  60. return ERROR;
  61. }
  62. }
  63.  
  64. /**
  65. * 5.分页查询和模糊分页查询
  66. * @return
  67. */
  68. public String likePage(){
  69. //5.1 获取request对象
  70. HttpServletRequest request=ServletActionContext.getRequest();
  71.  
  72. //5.2 获取pageNo参数
  73. String no=request.getParameter("pageNo");
  74.  
  75. //5.3 转换
  76. Integer pageNo=1;
  77. if(no!=null){
  78. pageNo=Integer.parseInt(no);
  79. }
  80.  
  81. //5.4 获取输入框的的条件
  82. Integer param=0;
  83. if(manyObj!=null){
  84. //通过struts2注入的对象中获取值
  85. param= manyObj.getHotalinfo().getHotalid();
  86. System.out.println("输入框值:"+param);
  87. }
  88.  
  89. //由于后台传递的是String ,所以这里
  90. String likeparam=param.toString();
  91.  
  92. //5.5 定义页面大小
  93. Integer pageSize=3;
  94.  
  95. //5.6 判断模糊分页和普通分页
  96. List<Sportsman> list=new ArrayList<Sportsman>();
  97. Integer totalCount=null;
  98. Integer totalPage=null;
  99. if(likeparam!=null && !likeparam.equals("0")){
  100. //5.6.1 获取条件区域id模糊分页查询集合
  101. list=manyService.queryPageLike(pageSize, pageNo, likeparam);
  102.  
  103. for (Sportsman sportsman : list) {
  104. System.out.println(sportsman);
  105. }
  106. //5.6.2 查询总条数
  107. totalCount= manyService.totalCountLike(likeparam);
  108.  
  109. //5.6.3 计算总页数
  110. totalPage=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
  111.  
  112. //5.6.4 将前台需要的数据给request
  113. request.setAttribute("list", list);
  114. request.setAttribute("totalCount", totalCount);
  115. request.setAttribute("totalPage", totalPage);
  116. request.setAttribute("pageNo", pageNo);
  117. request.setAttribute("likeparam", likeparam);
  118. //**
  119.  
  120. }else{
  121. //5.7 查询所有分页
  122. list=manyService.queryPage(pageSize, pageNo);
  123.  
  124. //5.6.2 查询总条数
  125. totalCount= manyService.totalCount();
  126.  
  127. //5.6.3 计算总页数
  128. totalPage=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
  129.  
  130. // 获取session对象
  131. HttpSession session=request.getSession();
  132.  
  133. //查询one放所有数据
  134. List<HotalInfo> onelist=oneService.query();
  135. //
  136. session.setAttribute("onelist", onelist);
  137.  
  138. //将前台需要的数据给request
  139. request.setAttribute("list", list);
  140. request.setAttribute("totalCount", totalCount);
  141. request.setAttribute("totalPage", totalPage);
  142. request.setAttribute("pageNo", pageNo);
  143. request.setAttribute("likeparam", likeparam);
  144.  
  145. }
  146. System.out.println("likeparam:"+likeparam);
  147. return SUCCESS;
  148. }
  149.  
  150. /**
  151. * 6.修改
  152. * @return
  153. */
  154. public String updateMany(){
  155. if(manyObj!=null){
  156. HotalInfo one =oneService.queryById(manyObj.getHotalinfo().getHotalid());
  157. System.out.println("修改one:"+one);
  158.  
  159. manyObj.setHotalinfo(one);
  160. HttpServletRequest request=ServletActionContext.getRequest();
  161. System.out.println("修改many:"+manyObj);
  162.  
  163. Integer num=manyService.update(manyObj);
  164. return SUCCESS;
  165. }else{
  166. return ERROR;
  167. }
  168.  
  169. }
  170. /**
  171. * 7.删除
  172. * @return
  173. */
  174. public String deleteMany(){
  175. if(manyObj!=null){
  176. //根据多方的id重新查询整条数据=对象
  177. Sportsman many=manyService.queryById(manyObj.getSportid());
  178. //删除对象
  179. Integer num=manyService.delete(many);
  180. return SUCCESS;
  181. }else{
  182. return ERROR;
  183. }
  184.  
  185. }
  186. /**
  187. * 8.添加
  188. */
  189. public String insertMany(){
  190. //判断多方对象是否为空
  191. if( manyObj!=null){
  192. System.out.println("save的manyObj:"+manyObj);
  193. //根据多方中一方对象属性的id查询,一方数据
  194. HotalInfo one=oneService.queryById(manyObj.getHotalinfo().getHotalid());
  195.  
  196. //将查询到的一方数据赋值给多方的一方对象属性
  197. manyObj.setHotalinfo(one);
  198.  
  199. //多方的添加操作
  200. Integer num=manyService.insert(manyObj) ;
  201. if(num>0){
  202. System.out.println("添加查询");
  203. return SUCCESS;
  204. }else{
  205. System.out.println("添加失败");
  206. return ERROR;
  207. }
  208. }else{
  209. System.out.println("save没接到manyObj:"+manyObj);
  210. return ERROR;
  211.  
  212. }
  213. }
  214.  
  215. public HotalInfoService getOneService() {
  216. return oneService;
  217. }
  218. public void setOneService(HotalInfoService oneService) {
  219. this.oneService = oneService;
  220. }
  221. public SportsmanService getManyService() {
  222. return manyService;
  223. }
  224. public void setManyService(SportsmanService manyService) {
  225. this.manyService = manyService;
  226. }
  227. public HotalInfo getOneObj() {
  228. return oneObj;
  229. }
  230. public void setOneObj(HotalInfo oneObj) {
  231. this.oneObj = oneObj;
  232. }
  233. public Sportsman getManyObj() {
  234. return manyObj;
  235. }
  236. public void setManyObj(Sportsman manyObj) {
  237. this.manyObj = manyObj;
  238. }
  239.  
  240. }

SportsmanAction.java

16、在WebRoot下WEB-INF下创建applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:aop="http://www.springframework.org/schema/aop"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xmlns:mvc="http://www.springframework.org/schema/mvc"
  7. xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  8. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  9. xsi:schemaLocation="http://www.springframework.org/schema/beans
  10. http://www.springframework.org/schema/beans/spring-beans.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop.xsd
  13. http://www.springframework.org/schema/context
  14. http://www.springframework.org/schema/context/spring-context.xsd
  15. http://www.springframework.org/schema/tx
  16. http://www.springframework.org/schema/tx/spring-tx.xsd
  17. http://www.springframework.org/schema/mvc
  18. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  19. ">
  20.  
  21. <!-- 1.定义数据源 -->
  22. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  23. <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
  24. <property name="jdbcUrl" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
  25. <property name="user" value="ssh"/>
  26. <property name="password" value="sys"/>
  27. <!-- 最小连接数 -->
  28. <property name="minPoolSize" value="1"/>
  29. <!-- 最大连接数 -->
  30. <property name="maxPoolSize" value="100"/>
  31. <!-- 初始化连接数 -->
  32. <property name="initialPoolSize" value="1"/>
  33. <!-- 最大等待时间 -->
  34. <property name="maxIdleTime" value="30"/>
  35. </bean>
  36.  
  37. <!-- 2.创建Session工厂 :地址session工厂bean-->
  38. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  39. <!-- 2.1 注入数据源 -->
  40. <property name="dataSource" ref="dataSource"/>
  41.  
  42. <!-- 2.2 注册引入映射的hibernate的xml文件 -->
  43. <property name="mappingResources">
  44. <list>
  45. <value>com/entity/HotalInfo.hbm.xml</value>
  46. <value>com/entity/Sportsman.hbm.xml</value>
  47. </list>
  48. </property>
  49.  
  50. <!-- 2.3 hibernate显示sql,格式化,方言配置 -->
  51. <property name="hibernateProperties">
  52. <props>
  53. <prop key="hibernate.show_sql">true</prop>
  54. <prop key="hibernate.format_sql">true</prop>
  55. <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
  56. </props>
  57. </property>
  58. </bean>
  59.  
  60. <!-- 3.事务管理 -->
  61. <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  62. <property name="sessionFactory" ref="sessionFactory"/>
  63. </bean>
  64.  
  65. <!-- 4.dao注入session -->
  66. <!-- id任意的 -->
  67. <bean id="oneDao" class="com.dao.impl.HotalInfoDaoImpl">
  68. <property name="sessionFactory" ref="sessionFactory"/>
  69. </bean>
  70. <bean id="manyDao" class="com.dao.impl.SportsmanDaoImpl">
  71. <property name="sessionFactory" ref="sessionFactory"/>
  72. </bean>
  73.  
  74. <!-- 5.service注入dao -->
  75. <bean id="oneService" class="com.service.impl.HotalInfoServiceImpl">
  76. <!-- name是固定的,ref的值是上一个bean的id -->
  77. <property name="oneDao" ref="oneDao"/>
  78. </bean>
  79. <bean id="manyService" class="com.service.impl.SportsmanServiceImpl">
  80. <!-- name是固定的,ref的值是上一个bean的id -->
  81. <property name="manyDao" ref="manyDao"/>
  82. </bean>
  83.  
  84. <!-- 6.action注入service -->
  85. <bean id="manyAction" class="com.action.SportsmanAction" scope="prototype">
  86. <property name="oneService" ref="oneService"/>
  87. <property name="manyService" ref="manyService"/>
  88. </bean>
  89. </beans>

applicationContext.xml

17、在src下创建struts.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "struts-2.1.7.dtd" >
  3. <struts>
  4. <!-- 乱码处理 -->
  5. <constant name="struts.i18n.encoding" value="UTF-8"/>
  6. <package name="default" namespace="/" extends="struts-default">
  7. <!-- 全局配置 -->
  8. <global-results>
  9. <result name="error">error.jsp</result>
  10. </global-results>
  11.  
  12. <!-- 注意全局配置和默认action首启项不能同时存在,并且,默认首期项,在web.xml,拦截的时候最好不要设置为以.action结尾才会起作用, -->
  13. <!--
  14. <default-action-ref name="page"/>
  15. -->
  16. <!-- name是请求的action的地址,
  17. class是spring中注入的action的bean的id,
  18. method是action类中对应的方法 -->
  19. <!-- 分页查询 和模糊分页查询-->
  20. <action name="page" class="manyAction" method="likePage">
  21. <result name="success">index.jsp</result>
  22. </action>
  23.  
  24. <!-- 删除 -->
  25. <action name="delete" class="manyAction" method="deleteMany">
  26. <result name="success" type="redirectAction">page</result>
  27. </action>
  28.  
  29. <!-- 查询单条 -->
  30. <action name="findById" class="manyAction" method="findById">
  31. <result name="success">update.jsp</result>
  32. </action>
  33.  
  34. <!-- 修改 -->
  35. <action name="update" class="manyAction" method="updateMany">
  36. <result name="success" type="redirectAction">page</result>
  37. </action>
  38.  
  39. <!-- 添加 -->
  40. <action name="save" class="manyAction" method="insertMany">
  41. <result name="success" type="redirectAction">page</result>
  42. </action>
  43. </package>
  44. </struts>

struts.xml

18、在WebRoot下WEB-INF下创建web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <!-- -->
  8. <listener>
  9. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  10. </listener>
  11.  
  12. <filter>
  13. <filter-name>struts2</filter-name>
  14. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  15. </filter>
  16. <filter-mapping>
  17. <filter-name>struts2</filter-name>
  18. <url-pattern>*.action</url-pattern>
  19. </filter-mapping>
  20.  
  21. <filter>
  22. <filter-name>characterEncodingFilter</filter-name>
  23. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  24. <init-param>
  25. <param-name>encoding</param-name>
  26. <param-value>UTF-8</param-value>
  27. </init-param>
  28. </filter>
  29. <filter-mapping>
  30. <filter-name>characterEncodingFilter</filter-name>
  31. <url-pattern>/</url-pattern>
  32. </filter-mapping>
  33. <welcome-file-list>
  34. <welcome-file>index.jsp</welcome-file>
  35. </welcome-file-list>
  36. </web-app>

web.xml

19、在WebRoot下创建index.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <base href="<%=basePath%>">
  12.  
  13. <title>My JSP 'index.jsp' starting page</title>
  14. <meta http-equiv="pragma" content="no-cache">
  15. <meta http-equiv="cache-control" content="no-cache">
  16. <meta http-equiv="expires" content="0">
  17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  18. <meta http-equiv="description" content="This is my page">
  19. <!--
  20. <link rel="stylesheet" type="text/css" href="styles.css">
  21. -->
  22. </head>
  23.  
  24. <body>
  25. <center>
  26. <h3>运动员住宿管理系统</h3>
  27. <table border="1">
  28. <tr>
  29. <td colspan="7">
  30. <form action="page.action" method="post">
  31. 酒店:<select name="manyObj.hotalinfo.hotalid">
  32. <option value="0" selected="selected">不限</option>
  33.  
  34. <c:forEach var="i" items="${onelist}" >
  35. <c:choose>
  36. <c:when test="${likeparam eq i.hotalid}">
  37. <option value="${i.hotalid}" selected="selected">${i.hotalname}</option>
  38. </c:when>
  39. <c:otherwise>
  40. <option value="${i.hotalid}">${i.hotalname}</option>
  41. </c:otherwise>
  42. </c:choose>
  43. </c:forEach>
  44.  
  45. </select>
  46. <input type="submit" value="查询"/>
  47. <a href="add.jsp">添加运动员信息</a>
  48. </form>
  49. </td>
  50. </tr>
  51. <tr><td>序号</td><td>酒店名称</td><td>酒店地址</td>
  52. <td>运动员姓名</td><td>入住时间</td><td>离开时间</td><td>操作</td></tr>
  53. <c:forEach var="i" items="${list}">
  54.  
  55. <tr><td>${i.sportid}</td><td>${i.hotalinfo.hotalname}</td>
  56. <td>${i.hotalinfo.hotaladdress}</td>
  57. <td>${i.sportname}</td>
  58. <td>${i.intaketime}</td>
  59. <td>${i.leavetime}</td>
  60. <td>
  61. <a href="findById.action?manyObj.sportid=${i.sportid}">修改</a>
  62. <a href="delete.action?manyObj.sportid=${i.sportid}">删除</a></td>
  63. </tr>
  64. </c:forEach>
  65. <tr><td colspan="7" align="center">
  66.  
  67. <c:choose>
  68. <c:when test="${likeparam eq 0}">
  69.  
  70. 第${pageNo}/${totalPage}页 &nbsp;&nbsp;
  71. <a href="page.action?pageNo=${pageNo}">首页</a> &nbsp;&nbsp;
  72. <c:choose>
  73. <c:when test="${pageNo gt 1}">
  74. <a href="page.action?pageNo=${pageNo-1}">上一页</a> &nbsp;&nbsp;
  75. </c:when>
  76. <c:otherwise>
  77. <a href="javascript:alert('已经是第一页!');">上一页</a> &nbsp;&nbsp;
  78. </c:otherwise>
  79. </c:choose>
  80.  
  81. <c:choose>
  82. <c:when test="${pageNo lt totalPage}">
  83. <a href="page.action?pageNo=${pageNo+1}">下一页</a> &nbsp;&nbsp;
  84. </c:when>
  85. <c:otherwise>
  86. <a href="javascript:alert('已经是最后一页!');">上一页</a> &nbsp;&nbsp;
  87. </c:otherwise>
  88. </c:choose>
  89.  
  90. <a href="page.action?pageNo=${totalPage}">末页</a> &nbsp;&nbsp;
  91. 共${totalCount}条
  92.  
  93. </c:when>
  94.  
  95. <c:otherwise>
  96.  
  97. 第${pageNo}/${totalPage}页 &nbsp;&nbsp;
  98. <a href="page.action?pageNo=${pageNo}&manyObj.hotalinfo.hotalid=${likeparam}">首页</a> &nbsp;&nbsp;
  99. <c:choose>
  100. <c:when test="${pageNo gt 1}">
  101. <a href="page.action?pageNo=${pageNo-1}&manyObj.hotalinfo.hotalid=${likeparam}">上一页</a> &nbsp;&nbsp;
  102. </c:when>
  103. <c:otherwise>
  104. <a href="javascript:alert('已经是第一页!');">上一页</a> &nbsp;&nbsp;
  105. </c:otherwise>
  106. </c:choose>
  107.  
  108. <c:choose>
  109. <c:when test="${pageNo lt totalPage}">
  110. <a href="page.action?pageNo=${pageNo+1}&manyObj.hotalinfo.hotalid=${likeparam}">下一页</a> &nbsp;&nbsp;
  111. </c:when>
  112. <c:otherwise>
  113. <a href="javascript:alert('已经是最后一页!');">上一页</a> &nbsp;&nbsp;
  114. </c:otherwise>
  115. </c:choose>
  116.  
  117. <a href="page.action?pageNo=${totalPage}&manyObj.hotalinfo.hotalid=${likeparam}">末页</a> &nbsp;&nbsp;
  118. 共${totalCount}条
  119.  
  120. </c:otherwise>
  121. </c:choose>
  122.  
  123. </td>
  124. </tr>
  125. </table>
  126. </center>
  127. </body>
  128. </html>

index.jsp

20、在WebRoot下创建add.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <base href="<%=basePath%>">
  12.  
  13. <title>My JSP 'update.jsp' starting page</title>
  14.  
  15. <meta http-equiv="pragma" content="no-cache">
  16. <meta http-equiv="cache-control" content="no-cache">
  17. <meta http-equiv="expires" content="0">
  18. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  19. <meta http-equiv="description" content="This is my page">
  20. <!--
  21. <link rel="stylesheet" type="text/css" href="styles.css">
  22. -->
  23.  
  24. </head>
  25.  
  26. <body>
  27. <center>
  28. <h3>添加运动员信息</h3>
  29. <form action="save.action" method="post">
  30. <table border="1">
  31. <tr>
  32. <td>酒店:</td>
  33. <td>
  34. <select name="manyObj.hotalinfo.hotalid">
  35. <option value="0" selected="selected">不限</option>
  36. <c:forEach var="i" items="${onelist}" >
  37. <c:choose>
  38. <c:when test="${likeparam eq i.hotalid}">
  39. <option value="${i.hotalid}" selected="selected">${i.hotalname}</option>
  40. </c:when>
  41. <c:otherwise>
  42. <option value="${i.hotalid}">${i.hotalname}</option>
  43. </c:otherwise>
  44. </c:choose>
  45. </c:forEach>
  46. </select>
  47. </td>
  48. </tr>
  49. <tr><td>运动员姓名:</td>
  50. <td><input type="text" name="manyObj.sportname"/></td>
  51. </tr>
  52. <tr><td>国籍:</td>
  53. <td><input type="text" name="manyObj.nationality"/></td>
  54. </tr>
  55. <tr><td>入住时间:</td><td><input type="text" name="manyObj.intaketime"/></td></tr>
  56. <tr><td>离店时间:</td><td><input type="text" name="manyObj.leavetime"/></td></tr>
  57. <tr><td colspan="2" align="center">
  58. <input type="submit" value="添加"/>
  59. <input type="reset" value="取消"/>
  60. </td></tr>
  61. </table>
  62. </form>
  63. </center>
  64. </body>
  65. </html>

add.jsp

21、在WebRoot下创建update.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <base href="<%=basePath%>">
  12.  
  13. <title>My JSP 'update.jsp' starting page</title>
  14.  
  15. <meta http-equiv="pragma" content="no-cache">
  16. <meta http-equiv="cache-control" content="no-cache">
  17. <meta http-equiv="expires" content="0">
  18. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  19. <meta http-equiv="description" content="This is my page">
  20. <!--
  21. <link rel="stylesheet" type="text/css" href="styles.css">
  22. -->
  23.  
  24. </head>
  25.  
  26. <body>
  27. <center>
  28. <h3>运动员信息维护页</h3>
  29. <form action="update.action?manyObj.sportid=${many.sportid}" method="post">
  30. <table border="1">
  31. <tr>
  32. <td>酒店:</td>
  33. <td>
  34. <select name="manyObj.hotalinfo.hotalid">
  35. <option value="0" selected="selected">不限</option>
  36. <c:forEach var="i" items="${onelist}" >
  37. <c:choose>
  38. <c:when test="${likeparam eq i.hotalid}">
  39. <option value="${i.hotalid}" selected="selected">${i.hotalname}</option>
  40. </c:when>
  41. <c:otherwise>
  42. <option value="${i.hotalid}">${i.hotalname}</option>
  43. </c:otherwise>
  44. </c:choose>
  45. </c:forEach>
  46. </select>
  47. </td>
  48. </tr>
  49. <tr><td>运动员姓名:</td>
  50. <td><input type="text" name="manyObj.sportname" value="${many.sportname}"/></td>
  51. </tr>
  52. <tr><td>国籍:</td>
  53. <td><input type="text" name="manyObj.nationality" value="${many.nationality}"/></td>
  54. </tr>
  55. <tr><td>入住时间:</td><td><input type="text" name="manyObj.intaketime" value="${many.intaketime}"/></td></tr>
  56. <tr><td>离店时间:</td><td><input type="text" name="manyObj.leavetime" value="${many.leavetime}"/></td></tr>
  57. <tr><td colspan="2" align="center">
  58. <input type="submit" value="更新"/>
  59. <input type="reset" value="取消"/>
  60. </td></tr>
  61. </table>
  62. </form>
  63. </center>
  64. </body>
  65. </html>

update.jsp

SSH 两个表全套增删改(运动员住宿管理)的更多相关文章

  1. 2.SSH 两个表全套增删改(运动员住宿管理)

    0.创建如下oracle的命令 create table HOTALINFO ( HOTALID ) not null, HOTALNAME ) not null, HOTALADDRESS ) no ...

  2. 2.Mybatis入门程序(单表的增删改成)

    这里讲的单表的增删改查,是由mapper代理的增删改查,先来看看步骤: 1.jar包的导入 2.配置全局的配置文件 3.建立接口 4.编写mapper.xml 5.测试 工程结构:这个你们自己可以调整 ...

  3. 1.MyBaits无代理全套增删改

    一.mybatis使用的准备工作 1.找到mybatis所需要的jar文件: mybatis-3.2.3.jar mybatis-spring-1.2.1.jar 2.解压mybatis-3.2.3. ...

  4. python全栈开发day61-django简单的出版社网站展示,添加,删除,编辑(单表的增删改查)

    day61 django内容回顾: 1. 下载: pip install django==1.11.14 pip install -i 源 django==1.11.14 pycharm 2. 创建项 ...

  5. MYSQL数据类型 表基本操作 表记录增删改 单表查询

    一.数据类型 常用的数据类型如下: 整数:int,bit 小数:decimal 字符串:varchar,char 日期时间: date, time, datetime 枚举类型(enum) 特别说明的 ...

  6. Hibernate5笔记2--单表的增删改查操作

    单表的增删改查操作: (1)定义获取Session和SessionFactory的工具类: package com.tongji.utils; import org.hibernate.Session ...

  7. django模型层 关于单表的增删改查

    关于ORM MTV或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库, 通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...

  8. MySQL数据库之表的增删改查

    目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...

  9. Django学习笔记(10)——Book单表的增删改查页面

    一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...

随机推荐

  1. tuple 可更改的列表和不可更改的元组

    tuple([iterable]) Return a tuple whose items are the same and in the same order as iterable's items. ...

  2. MATLAB中的多项式运算

    作者:长沙理工大学 交通运输工程学院 王航臣 1.多项式求根 在MATLAB中求取多项式的根用roots函数. 函数:roots 功能:一元高次方程求解. 语法:roots(c) 说明:返回一个列向量 ...

  3. Linode VPS上架日本东京2号机房,性能速度评测报告(推荐)

    我非常喜欢的海外免备案vps品牌linode日本机房长期缺货,中国用户想买都买不到.不过近日,陆续有国内朋友收到了Linode邀请,Tokyo 2日本东京机房开启内测,很快正式上架销售. 苦等太久的站 ...

  4. android studio修改项目包名

    公司项目都是用eclipse开发的,但是android studio开发已经是大势所趋了,所以在闲暇之余使用了一下androidstudio,这里对androidstudio更改项目包名做一下总结,因 ...

  5. 微信小程序使用场景及取名“潜”规则

    微信小程序使用场景举例: 1.查看公交 2.登记.选座 3.订票 4.K歌.叫代驾 5.快递查询 6.查看天气 7.医院挂号.拿药.缴费 8.加油充电 9.政务服务 微信公众号“数据三观”认为,小程序 ...

  6. Xcode使用小结1

    工程项目 -> General->launch Screen file这个如果没有设置,则app的可见范围为3.5inch(APP的可见范围是由启动界面决定的) PUSH方法是在navig ...

  7. PyCharm基本使用

    调节PyCharm的背景颜色 File>Settings>Appearance&Behavior>Appearance 在PyCharm中切换Python解释器版本 File ...

  8. shell获取系统时间

    获取系统时间 date -d"yesterday" +"%F %H:%M:%S" #输出昨天这个时候的时间 date -d"tomorrow" ...

  9. tabbar颜色与文字大小,状态栏样式

    tabbar文字颜色与大小 [self.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor wh ...

  10. Eclipse中安装Jdk和配置Python

    要借助Eclipse辅助工作,之前安装配置都是同事帮忙弄的,今天有空来整理一下安装配置步骤 一.安装JDK1.下载JDK,安装JDK,安装完毕,配置JDK环境变量  1)我的电脑右键-属性-高级-点击 ...