怎么添加两张没关联的表
前言
那是基本不可能的,但是name属性我们可以使用截取,把截取地址放入第二张表中
这个是数据库表的设计
链接: https://www.processon.com/view/link/60613f6a5653bb2225f68874#map.
一、Controller
代码如下(示例):
// @RequestMapping("/add")
@ResponseBody
public String add(UserRegedit regedit,UserInfo userInfo,String userName){
String s = UUID.randomUUID().toString().substring(1,6).toUpperCase().replace("_","");
regedit.setUserId(s);
int i = userInfoService.add(regedit);
userInfo.setUserId(s);
userInfo.setEmail(regedit.getEmail());
userInfo.setUserName(userName);
int i1 = userInfoService.addAll(userInfo);
if(i1>0&&i>0){
return "注册成功";
}
else {
return "注册失败";
}
}
@RequestMapping("/add")
@ResponseBody
public String add(UserRegedit regedit,UserInfo userInfo,String userName){
String s = UUID.randomUUID().toString().substring(1,6).toUpperCase().replace("_","");
regedit.setUserId(s);
int i = userInfoService.add(regedit);
userInfo.setUserId(s);
userInfo.setEmail(regedit.getEmail());
userInfo.setUserName(userName);
int i1 = userInfoService.addAll(userInfo);
if(i1>0&&i>0){
return "注册成功";
}
else {
return "注册失败";
}
}
这里我们使用的是截取,因为我们只要name属性,所以截取了name的地址
二、Service
代码如下(示例):
1.service接口
int add( UserRegedit regedit);
int addAll(UserInfo userInfo);
2.实现接口
代码如下(示例):
@Autowired
private UserInfoMapper userInfoMapper;
@Override
public int add(UserRegedit regedit) {
return userInfoMapper.add(regedit);
}
@Override
public int addAll(UserInfo userInfo) {
return userInfoMapper.addAll(userInfo);
}
这里我们看到了mapper接口,mapper接口的数据和service的数据是一样的,但是要注意的是mapper接口必须和mapper.xml的名字一致
三、Mapper.xml
<insert id="add" keyProperty="cn.bgs.pojo.UserRegedit">
insert into user_regedit(pk_id,user_id,email,password) value (0,#{userId},#{email},#{password})
</insert>
<insert id="addAll" keyProperty="cn.bgs.pojo.UserInfo">
insert into user_info(pk_id,user_id, user_name,email) value(0,#{userId},#{userName},#{email})
</insert>
这里我们要注意 id的属性一定要和mapper接口的属性名一致,否者会报错
四、jsp页面
五、添加完成后数据库的值
总结
我们不能两表添加,但是可以两张表同时添加,我们只需要截取name属性,把name的地址截取到,这样我们就完成了两张没关联的表的添加