JavaWeb多表操作之映射关系的建立

对象关系映射(Object Relation Mapping),指的是数据库表和对象之间的一种映射关系。在建立对象映射时,通常情况下会采用以下形式:

  • 一对多

    在一的一方,建立多的一方的集合,由于考虑到集合中的对象必须是唯一的,所以通常会采用Set集合实现,由于一对多的查询方式较为复杂而且不利于维护,所以通常采用多对一的查询方式

     public class Grade implements Serializable {
         private Integer gradeId;
         private String gradeName;
         private String gradeDesc;
         private Set<Student> students ; //一对多
         
         public Integer getGradeId() {
             return gradeId;
         }
         public void setGradeId(Integer gradeId){
             this.gradeId =gradeId;
         }
         public String getGradeName() {
             return gradeName;
         }
         public void setGradeName(String gradeName) {
             this.gradeName =gradeName;
         }
         public String getGradeDesc() {
             return gradeDesc;
         }
         public void setGradeDesc(String gradeDesc) {
             this.gradeDesc =gradeDesc;
         }
         public Set<Student> getStudents() {     
             return students;
         }
         public void setStudents(Set<Student> students) {
             this.students = students;
         }
     }

  • 多对一

    在多的一方,建立对一的一方的引用。

 public class Student implements Serializable {
     private Integer studentNO ;
     private String loginPwd;
     private String studentName ;
     private String sex ;
     private String phone ;
     private String address;
     private Date borndate ;
     private String email ;
     private String identityCard ;
     private Grade grade ;   //多对一
     public Integer getStudentNO() {
         return studentNO;
     }
     public void setStudentNO(Integer studentNO) {
         this.studentNO =studentNO;
     }
     public String getLoginPwd() {
         return loginPwd;
     }
     public void setLoginPwd(String loginPwd) {
         this.loginPwd =loginPwd;
     }
     public String getStudentName() {
         return studentName;
     }
     public void setStudentName(String studentName) {
         this.studentName =studentName;
     }
     public String getSex(){
         return sex;
     }
     public void setSex(String sex) {
         this.sex = sex;
     }
     public String getPhone() {
         return phone;
     }
     public void setPhone(String phone) {
         this.phone = phone;
     }
     public String getAddress() {
         return address;
     }
     public void setAddress(String address){
         this.address =address;
     }
     public Date getBorndate() {
         return borndate;
     }
     public void setBorndate(Date borndate){
         this.borndate =borndate;
     }
     public String getEmail() {
         return email;
     }
     public void setEmail(String email) {
         this.email = email;
     }
     public String getIdentityCard() {
         return identityCard;
     }
     public void setIdentityCard(String identityCard) {
         this.identityCard =identityCard;
     }
     public Grade getGrade(){
         return grade;
     }
     public void setGrade(Grade grade) {
         this.grade = grade;
     }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在IDEA中进行JavaWeb多表查询,可以按照以下步骤进行操作: 1.在项目中创建一个JavaBean类,用于存储查询结果。 2.在web.xml文件中配置servletservlet-mapping,用于处理请求和响应。 3.在JSP页面中编写前端代码,包括表单和展示查询结果的表格。 4.在servlet中编写后端代码,连接数据库,执行多表查询操作,并将结果存储到JavaBean中。 5.将JavaBean中的数据传递到JSP页面,展示查询结果。 以下是一个简单的JavaWeb多表查询的示例代码: JavaBean类: ```java public class User { private int id; private String name; private String email; private String phone; // 省略getter和setter方法 } ``` JSP页面: ```html <form action="query" method="post"> <input type="text" name="name" placeholder="请输入用户名"> <button type="submit">查询</button> </form> <table> <tr> <th>ID</th> <th>姓名</th> <th>邮箱</th> <th>电话</th> </tr> <c:forEach var="user" items="${users}"> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.email}</td> <td>${user.phone}</td> </tr> </c:forEach> </table> ``` servlet代码: ```java public class QueryServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); List<User> users = new ArrayList<>(); try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456"); String sql = "SELECT * FROM user WHERE name=?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, name); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { User user = new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setEmail(rs.getString("email")); user.setPhone(rs.getString("phone")); users.add(user); } rs.close(); pstmt.close(); conn.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } request.setAttribute("users", users); request.getRequestDispatcher("result.jsp").forward(request, response); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值