(一)SSM中mybatis插入
来源:互联网 发布:外汇交易员的收入知乎 编辑:程序博客网 时间:2024/06/06 01:21
在学ssm框架,自己瞎捉摸,看别人教程不如自己先试一下,以后看到更好的方法过来更新
我有一张用户表,一张消息表,消息表有两个字段发送者(sender)和接受者(sendee)存的是用户的ID
sendee字段可以为空,sender不为空
前端传入的值是发送者、接受者用户名,因此要先根据用户名查询用户,以便把用户ID插入消息表
首先创建用户和消息表的实体类(getset方法略去)
包com.pojo;
package com.pojo;public class Message {private int id;private User sender;private User sendee;private String mess;private String emo;private Timestamp time;}package com.pojo;public class User {private int id;private String username;private String password;private String nickname;}然后写sql语句,MessageMapper和UserMapper接口略去
包con.mapper
User.xml<mapper namespace="com.mapper.UserMapper"> <select id="usernameGetUser" parameterType="String" resultType="com.pojo.User"> select * from user where username= #{username} </mapper> </select>Message.java<mapper namespace="com.mapper.MessageMapper"> <insert id="add" parameterType="com.pojo.Message" > insert into message <if test="sendee.id!=''">(sender,sendee,mess,emo,time) values (#{sender.id},#{sendee.id},#{mess},#{emo},#{time}) </if> <if test="sendee.id==''">(sender,mess,emo,time) values (#{sender.id},#{mess},#{emo},#{time})</if> </insert> </mapper>插入传入的值是message对象,其中含两个属性用户类对象sender和sendee的属性id直接写#{sender.id}就行了,因为sendee.id可以为空,写了个判断,如果为空就不插入sendee字段,否则会报外键的错( a foreign key constraint fails)
然后就是Message和user的服务类了
com.impl
@Servicepublic class MessageServiceImpl implements MessageService{@Autowiredprivate MessageMapper messageMapper;// 新增消息public void addMess(Message message) {messageMapper.add(message);}}@Servicepublic class UserServiceImpl implements UserService{@Autowiredprivate UserMapper userMapper;// 根据用户名放回用户public User usernameGetUser(String username) {User usermapper = userMapper.usernameGetUser(username);// 如果参数为空或者没查到返回一个空的Userif(username==null||username.equals("")||usermapper==null){return new User();}return usermapper;}}用了Spring的自动装配,addMess()方法就是调用messageMapper的add()方法,传入message对象就行了;
usernameGetUser()方法就是根据用户名返回用户对象,如果没查到那么就返回一个空的User(否则sql语句中if判断语句会报错:(id,null))
然后就是控制类了
com.controller
@Controller@RequestMappingpublic class MessageController {@Autowiredprivate MessageServiceImpl messageServiceImpl;@Autowiredprivate UserServiceImpl userServiceImpl;private Message message = new Message();// 增加消息@RequestMapping("/addMessage")public void addMess(String sender,String sendee,String mess,String emo) {Timestamp time = new Timestamp(new Date().getTime());//System.out.println(time.toString());message.setTime(time);// 根据用户名查到用户赋值到messagemessage.setSender(userServiceImpl.usernameGetUser(sender));message.setSendee(userServiceImpl.usernameGetUser(sendee));message.setMess(mess);message.setEmo(emo);messageServiceImpl.addMess(message);}}这样从addMessage路径过来的请求就能插入一条消息记录了,sender参数不能为空,sendee参数可以为空
阅读全文
0 0
- (一)SSM中mybatis插入
- SSM框架之MyBatis(一)
- SSM框架集成(一)mybatis+spring
- (二)SSM中mybatis一对一查询
- SSM+mybatis数据库实现百万数据分页取出并分页插入Excel中
- SSM(Spring+SpringMVC+MyBatis)框架学习心路历程【一】
- ssm框架搭建(一)-Dao层搭建-mybatis
- SSM框架(一)之SSM框架整合(Spring,SpringMVC,MyBatis)
- intelij中ssm基本配置(一)
- ssm-ssm整合(springmvc+mybatis)
- Mybatis入门实例(1) - SSM(一)
- SSM框架-MyBatis进阶篇(一)
- mybatis中批量插入数据(MYSQL)
- Oracle批量插入(Mybatis中)
- MyBatis中批量插入
- MyBatis中批量插入
- MyBatis中批量插入
- SSM(springMVC+spring+MyBatis)
- 猜拳游戏(基于python面向对象3)
- 学习新浪微博计数服务
- Nuttx buttons example: undefined reference to 'poll’
- iOS圆形图片裁剪,以及原型图片外面加一个圆环
- Reactor 模式+代码讲解
- (一)SSM中mybatis插入
- 图像处理中的梯度
- 分表总结
- http 如何强转为 https,几行JS 代码就搞定了,网上说得很难一样!还有如何自定义 404页面
- pandas read_csv(中文名称 中文路径)
- 启动eclipse时候提示错误Error:Could not create the Java Virtual Machine. Error:A Fatal exception has occurred
- Java面试String,StringBuffer,StringBuilder的区别
- POJ 3669 Meteor Shower
- 仿支付宝首页体验效果(Swift版本)