CREATE TABLE `user` ( `id` varchar(30) NOT NULL COMMENT '用户 openid', `session_key` varchar(30) DEFAULT NULL COMMENT '用户 session_key', `nickname` varchar(20) DEFAULT NULL COMMENT '用户昵称', `role` int(2) DEFAULT NULL COMMENT '角色类型 0是管理员,1是用户,2是员工', `phone_number` varchar(20) DEFAULT NULL COMMENT '用户手机号', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `phone_UNIQUE` (`phone_number`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';和CREATE TABLE `user_account` ( `id` int(10) NOT NULL AUTO_INCREMENT, `user_id` varchar(30) CHARACTER SET utf8mb4 NOT NULL COMMENT '用户id', `password` varchar(50) COLLATE utf8mb4_bin NOT NULL COMMENT '用户密码', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `user_id_idx` (`user_id`), CONSTRAINT `user_id_idx` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;,用mybatis的注解插入数据
时间: 2023-08-12 08:45:17 浏览: 54
可以使用@Insert注解来插入数据,如下所示:
```
@Insert("INSERT INTO user (id, session_key, nickname, role, phone_number, create_time, update_time) VALUES (#{id}, #{sessionKey}, #{nickname}, #{role}, #{phoneNumber}, #{createTime}, #{updateTime})")
void insertUser(User user);
@Insert("INSERT INTO user_account (user_id, password, create_time, update_time) VALUES (#{userId}, #{password}, #{createTime}, #{updateTime})")
void insertUserAccount(UserAccount userAccount);
```
其中,User和UserAccount为对应的实体类,#{xxx}为占位符,对应实体类的属性。
相关问题
CREATE TABLE user ( id varchar(30) NOT NULL COMMENT '用户 openid', session_key varchar(30) DEFAULT NULL COMMENT '用户 session_key', nickname varchar(20) DEFAULT NULL COMMENT '用户昵称', role int(2) DEFAULT NULL COMMENT '角色类型 0是管理员,1是用户,2是员工', phone_number varchar(20) DEFAULT NULL COMMENT '用户手机号', create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (id), UNIQUE KEY phone_UNIQUE (phone_number) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';和CREATE TABLE user_account ( id int(10) NOT NULL AUTO_INCREMENT, user_id varchar(30) CHARACTER SET utf8mb4 NOT NULL COMMENT '用户id', password varchar(50) COLLATE utf8mb4_bin NOT NULL COMMENT '用户密码', create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (id), KEY user_id_idx (user_id), CONSTRAINT user_id_idx FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;,用mybatis的注解插入数据(用一个语句进行两张表的插入)
可以使用MyBatis的多参数注解@Param来实现一条语句插入两张表的操作,示例代码如下:
```
@Insert("INSERT INTO user (id, session_key, nickname, role, phone_number, create_time, update_time) VALUES (#{user.id}, #{user.sessionKey}, #{user.nickname}, #{user.role}, #{user.phoneNumber}, #{user.createTime}, #{user.updateTime}); " +
"INSERT INTO user_account (user_id, password, create_time, update_time) VALUES (#{userAccount.userId}, #{userAccount.password}, #{userAccount.createTime}, #{userAccount.updateTime})")
void insertUserAndAccount(@Param("user") User user, @Param("userAccount") UserAccount userAccount);
```
其中,@Param("xxx")表示给参数取别名,对应多参数方法中的参数名。需要注意的是,两个INSERT语句之间需要使用分号隔开。
id INT AUTO_INCREMENT PRIMARY KEY, openid VARCHAR(255) NOT NULL, session_key VARCHAR(255) NOT NULL, nickname VARCHAR(255) NOT NULL, avatar VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 插入10条数据的语句
以下是向 w_user 表插入 10 条数据的 SQL 语句示例:
```sql
INSERT INTO w_user (openid, session_key, nickname, avatar)
VALUES
('openid1', 'session_key1', 'nickname1', 'avatar1'),
('openid2', 'session_key2', 'nickname2', 'avatar2'),
('openid3', 'session_key3', 'nickname3', 'avatar3'),
('openid4', 'session_key4', 'nickname4', 'avatar4'),
('openid5', 'session_key5', 'nickname5', 'avatar5'),
('openid6', 'session_key6', 'nickname6', 'avatar6'),
('openid7', 'session_key7', 'nickname7', 'avatar7'),
('openid8', 'session_key8', 'nickname8', 'avatar8'),
('openid9', 'session_key9', 'nickname9', 'avatar9'),
('openid10', 'session_key10', 'nickname10', 'avatar10');
```
请注意,这只是一个示例,您可以根据实际情况调整插入的数据。每条数据对应一个用户的 openid、session_key、nickname 和 avatar。如有需要,请根据实际情况修改数据内容。