前言
之前我们已经搭建好了 SSM 框架的基本工程结构,本文将会举一个简单的Demo用于说明SSM框架下增删改查的用法。
数据库准备工作
创建一个数据库
为了和之间搭建的工程保持一致,我在这里将数据库命名为ssm_db,编码方式采用UTF-8。
关于 SSM框架数据库部分 内容可以参考 SSM框架之JDBC配置
创建表结构
创建表名为user的表,表结构如下:
名称 类型 备注 id int 主键 自增长 username vachar 无 password vachar 无 或者你可以直接执行我写好的sql脚本创建表结构。 ssm_db.sql 如下:
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Version : 50716
Source Host : localhost
Source Database : ssm_db
Target Server Version : 50716
File Encoding : utf-8
Date: 03/24/2017 15:12:31 PM
*/
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar (255) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS = 1;
代码部分
dao 层代码
(1) java /com/demo/dao/entity 目录下 UserEntity.java 如下
package com.demo.dao.entity; /** * 用户实体类 * * @author Wwwwei */ public class UserEntity { private Integer id; //用户id private String username;//用户名 private String password;//用户密码 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; } }
(2) java/com/demo/dao 目录下 UserDao.java 如下
package com.demo.dao; import com.demo.dao.entity.UserEntity; /** * 用户Dao类 * * @author Wwwwei */ public interface UserDao { /** * 插入用户记录 * * @param userEntity * @return */ Integer insert(UserEntity userEntity); /** * 删除用户记录 * * @param id * @return */ Integer delete(Integer id); /** * 更新用户记录 * * @param userEntity * @return */ Integer update(UserEntity userEntity); /** * 根据用户id查找用户 * * @param id * @return */ UserEntity selectById(Integer id); }
(3) Resource s/mappers 目录下 UserDao.xml 如下
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ""> <mapper namespace="com.demo.dao.UserDao"> <insert id="insert" parameterType="com.demo.dao.entity.UserEntity"> <selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER"> SELECT LAST_INSERT_ID() </selectKey> INSERT INTO user(id,username,password) VALUES(#{id},#{username},#{password}); </insert> <update id="update" parameterType="com.demo.dao.entity.UserEntity"> UPDATE user SET id=#{id},username=#{username},password=#{password} WHERE id=#{id} </update> <select id="selectById" resultType="com.demo.dao.entity.UserEntity" parameterType="java.lang.Integer"> SELECT * FROM user WHERE id=#{id}; </select> <delete id="delete" parameterType="java.lang.Integer"> DELETE FROM user WHERE id=#{id} </delete> </mapper>
service 层代码
(1) java/com/demo/service 目录下 UserService.java 如下
package com.demo.service; import com.demo.dao.entity.UserEntity; /** * 用户服务类 * * @author Wwwwei */ public interface UserService { /** * 创建用户 * * @param userEntity * @return */ Integer createUser(UserEntity userEntity); /** * 更新用户 * * @param userEntity * @return */ Integer updateUser(UserEntity userEntity); /** * 删除用户 * * @param id * @return */ Integer deleteUser(Integer id); /** * 根据用户id查询用户 * * @param id * @return */ UserEntity getUserById(Integer id); }
(2) java/com/demo/service/impl 目录下 UserServiceImpl.java 如下
package com.demo.service.impl; import com.demo.dao.UserDao; import com.demo.dao.entity.UserEntity; import com.demo.service.UserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** * 用户服务实现类 * * @author Wwwwei */ @Service public class UserServiceImpl implements UserService { @Resource private UserDao userDao; public Integer createUser(UserEntity userEntity) { return userDao.insert(userEntity); } public Integer updateUser(UserEntity userEntity) { return userDao.update(userEntity); } public Integer deleteUser(Integer id) { return userDao.delete(id); } public UserEntity getUserById(Integer id) { return userDao.selectById(id); } }