springmvc mybatis 配置一对多的关系使用 <association> 及实体类写法2Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配自动为该对象填充属性值。支持

来源:互联网 发布:java 解压war包 编辑:程序博客网 时间:2024/05/19 16:34

1.mybatis.xml:

<mapper namespace="ssmy.dao.UserDao">
<resultMap type="ssmy.dto.User " id="User ">
 <!--<resultMap type="User" id="User"> 如果在sprin文件里配置初始化  mybatis里配置了别名就是有-->
        <!-- 用id属性来映射主键字段 -->
        <id property="id" column="id" jdbcType="INTEGER"/>
        <!-- 用result属性来映射非主键字段 -->
        <result property="username;" column="username;" jdbcType="VARCHAR"/>
        <result property="password;" column="password;" jdbcType="TIMESTAMP"/>
        <result property="email" column="email" jdbcType="VARCHAR"/>
        <!--saleChance 对应实体类CusDevPlan private SaleChance saleChance; // 销售机会的引用变量 -->
    <association  property="address" column="addressid" select="ssmy.dao.UserDao.findSaleChanceById">
    </association> 
    </resultMap>
</mapper>


2.实体类;

package com.atguigu.springmvc.entities;


public class Address {


private String province;
private String city;


public String getProvince() {
return province;
}


public void setProvince(String province) {
this.province = province;
}


public String getCity() {
return city;
}


public void setCity(String city) {
this.city = city;
}


@Override
public String toString() {
return "Address [province=" + province + ", city=" + city + "]";
}

}


package com.atguigu.springmvc.entities;


public class User {

private Integer id;

private String username;
private String password;


private String email;
private int age;

private Address address;


public Integer getId() {
return id;
}


public void setId(Integer id) {
this.id = id;
}


public String getUsername() {
return username;
}


public void setUsername(String username) {
this.username = username;
}


public String getPassword() {
return password;
}


public void setPassword(String password) {
this.password = password;
}


public String getEmail() {
return email;
}


public void setEmail(String email) {
this.email = email;
}


public int getAge() {
return age;
}


public void setAge(int age) {
this.age = age;
}


public Address getAddress() {
return address;
}


public void setAddress(Address address) {
this.address = address;
}


// @Override
// public String toString() {
// return "User [username=" + username + ", password=" + password
// + ", email=" + email + ", age=" + age + ", address=" + address
// + "]";
// }

@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password="
+ password + ", email=" + email + ", age=" + age + "]";
}

public User(String username, String password, String email, int age) {
super();
this.username = username;
this.password = password;
this.email = email;
this.age = age;
}


public User(Integer id, String username, String password, String email,
int age) {
super();
this.id = id;
this.username = username;
this.password = password;
this.email = email;
this.age = age;
}


public User() {}
}

3.后台方法


/**
* Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配, 自动为该对象填充属性值。支持级联属性。
* 如:dept.deptId、dept.address.tel 等
*/
@RequestMapping("/testPojo")
public String testPojo(User user) {
System.out.println("testPojo: " + user);
return SUCCESS;
}

4.页面


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>


<a href="springmvc/testRedirect">Test Redirect</a>
<br><br>


<a href="springmvc/testView">Test View</a>
<br><br>


<a href="springmvc/testViewAndViewResolver">Test ViewAndViewResolver</a>
<br><br>

<!--  
模拟修改操作
1. 原始数据为: 1, Tom, 123456,tom@atguigu.com,12
2. 密码不能被修改.
3. 表单回显, 模拟操作直接在表单填写对应的属性值
-->
<form action="springmvc/testModelAttribute" method="Post">
<input type="hidden" name="id" value="1"/>
username: <input type="text" name="username" value="Tom"/>
<br>
email: <input type="text" name="email" value="tom@atguigu.com"/>
<br>
age: <input type="text" name="age" value="12"/>
<br>
<input type="submit" value="Submit"/>
</form>
<br><br>


<a href="springmvc/testSessionAttributes">Test SessionAttributes</a>
<br><br>


<a href="springmvc/testMap">Test Map</a>
<br><br>


<a href="springmvc/testModelAndView">Test ModelAndView</a>
<br><br>


<a href="springmvc/testServletAPI">Test ServletAPI</a>
<br><br>


<form action="springmvc/testPojo" method="post">
username: <input type="text" name="username"/>
<br>
password: <input type="password" name="password"/>
<br>
email: <input type="text" name="email"/>
<br>
age: <input type="text" name="age"/>
<br>
city: <input type="text" name="address.city"/>
<br>
province: <input type="text" name="address.province"/>
<br>
<input type="submit" value="Submit"/>
</form>
<br><br>


<a href="springmvc/testCookieValue">Test CookieValue</a>
<br><br>


<a href="springmvc/testRequestHeader">Test RequestHeader</a>
<br><br>

<a href="springmvc/testRequestParam?username=atguigu&age=11">Test RequestParam</a>
<br><br>

<form action="springmvc/testRest/1" method="post">
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="TestRest PUT"/>
</form>
<br><br>

<form action="springmvc/testRest/1" method="post">
<input type="hidden" name="_method" value="DELETE"/>
<input type="submit" value="TestRest DELETE"/>
</form>
<br><br>

<form action="springmvc/testRest" method="post">
<input type="submit" value="TestRest POST"/>
</form>
<br><br>

<a href="springmvc/testRest/1">Test Rest Get</a>
<br><br>


<a href="springmvc/testPathVariable/1">Test PathVariable</a>
<br><br>


<a href="springmvc/testAntPath/mnxyz/abc">Test AntPath</a>
<br><br>


<a href="springmvc/testParamsAndHeaders?username=atguigu&age=10">Test ParamsAndHeaders</a>
<br><br>

<form action="springmvc/testMethod" method="POST">
<input type="submit" value="submit"/>
</form>


<br><br>
<a href="springmvc/testMethod">Test Method</a>


<br><br>
<a href="springmvc/testRequestMapping">Test RequestMapping</a>

<br><br>
<a href="helloworld">Hello World</a>

</body>
</html>

阅读全文
0 0
原创粉丝点击