ssm
pom.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.asaawan</groupId>
<artifactId>ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>../ssm_controller</module>
<module>../ssm_service</module>
<module>../ssm_mapper</module>
<module>../ssm_pojo</module>
</modules>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<spring.version>5.1.9.RELEASE</spring.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--创建多环境-->
<profiles>
<!--定义具体的环境:生产环境-->
<profile>
<!--定义环境对应的唯一名称-->
<id>pro_env</id>
<!--定义环境中专用的属性值-->
<properties>
<jdbc.url>jdbc:mysql://192.168.0.1:3306/ssm_db</jdbc.url>
</properties>
</profile>
<!--定义具体的环境:开发环境-->
<profile>
<id>dev_env</id>
<properties>
<jdbc.url>jdbc:mysql://127.0.0.1:3306/ssm_db</jdbc.url>
</properties>
<!--设置默认启动-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
<dependencyManagement>
<dependencies>
<!--添加自己的工程依赖-->
<!--添加service-->
<dependency>
<groupId>com.asaawan</groupId>
<artifactId>ssm_service</artifactId>
<version>${project.version}</version>
</dependency>
<!--添加mapper-->
<dependency>
<groupId>com.asaawan</groupId>
<artifactId>ssm_mapper</artifactId>
<version>${project.version}</version>
</dependency>
<!--添加pojo-->
<dependency>
<groupId>com.asaawan</groupId>
<artifactId>ssm_pojo</artifactId>
<version>${project.version}</version>
</dependency>
<!--spring环境-->
<!--spring环境-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!--mybatis环境-->
<!--mybatis环境-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<!--mysql环境-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--spring整合jdbc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--spring整合mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.3</version>
</dependency>
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
<!--分页插件坐标-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
<!--springmvc环境-->
<!--springmvc环境-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--jackson相关坐标-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<!--servlet环境-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--其他组件-->
<!--其他组件-->
<!--junit单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--spring整合junit-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!--上传文件-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<!--插件-->
<pluginManagement>
<plugins>
<!-- tomcat插件控制 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!--端口控制-->
<port>80</port>
<!--虚拟目录-->
<path>/</path>
<!--编码(get请求方式)-->
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
<!--maven 设置跳过测试-->
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<!--设置跳过测试-->
<!--<skipTests>true</skipTests>-->
<!--包含指定的测试用例-->
<!--<includes>
<include>**/User*Test.java</include>
</includes>-->
<!--排除指定的测试用例-->
<!--<excludes>
<exclude>**/User*Test.java</exclude>
</excludes>-->
</configuration>
</plugin>
</plugins>
</pluginManagement>
<!--配置资源文件对应的信息-->
<resources>
<resource>
<!--设定配置文件对应的位置目录,支持使用属性动态设定路径-->
<directory>${project.basedir}/src/main/resources</directory>
<!--开启对配置文件的资源加载过滤-->
<filtering>true</filtering>
</resource>
</resources>
<!--配置测试资源文件对应的信息-->
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
</build>
</project>
ssm_controller
pom.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.asaawan</groupId>
<artifactId>ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../ssm/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ssm_controller</artifactId>
<packaging>war</packaging>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<!--导入service-->
<dependency>
<groupId>com.asaawan</groupId>
<artifactId>ssm_service</artifactId>
</dependency>
<!--springmvc环境-->
<!--springmvc环境-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<!--jackson相关坐标-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!--servlet环境-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!--上传文件-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- tomcat插件控制 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
spring-mvc.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 开启 mvc 注解驱动 -->
<mvc:annotation-driven/>
<!-- 将 controller 交由 spring mvc 管理-->
<context:component-scan base-package="com.asaawan.controller"/>
<!--解决使用 form-data 传递参数后端接收不到的问题-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
</beans>
web.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!-- 加载 applicationContext-* 配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
</context-param>
<!--启动服务器时,通过监听器加载spring运行环境-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- spring 过滤添加 utf-8 编码格式-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- spring mvc 配置 servlet -->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<!--不拦截 jsp-->
<url-pattern>/</url-pattern>
<!--拦截所有-->
<!--<url-pattern>/*</url-pattern>-->
</servlet-mapping>
</web-app>
UserController 配置
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping
public Result save(User user) {
boolean flag = userService.save(user);
return flag ? new Result(Code.SAVE_SUCCESS) : new Result(Code.SAVE_ERROR);
}
@PutMapping
public Result update(User user) {
boolean flag = userService.update(user);
return flag ? new Result(Code.UPDATE_SUCCESS) : new Result(Code.UPDATE_ERROR);
}
@DeleteMapping("/{uuid}")
public Result delete(@PathVariable Integer uuid) {
boolean flag = userService.delete(uuid);
return flag ? new Result(Code.DELETE_SUCCESS) : new Result(Code.DELETE_ERROR);
}
@GetMapping("/{uuid}")
public Result get(@PathVariable Integer uuid) {
if(true){throw new CommonException("查询数据失败,请联系管理员!",Code.GET_ERROR);
}
User user = userService.get(uuid);
return user != null ? new Result(Code.GET_SUCCESS, user) : new Result(Code.GET_ERROR);
}
@GetMapping("/{page}/{size}")
public Result getAll(@PathVariable Integer page, @PathVariable Integer size) {
PageInfo<User> info = userService.getAll(page, size);
return info != null ? new Result(Code.GET_SUCCESS, info) : new Result(Code.GET_ERROR);
}
@PostMapping("/login")
public Result login(String username, String password) {
User user = userService.login(username, password);
return user != null ? new Result(Code.GET_SUCCESS, user) : new Result(Code.GET_ERROR);
}
}
封装返回结果
public class Result {
private Integer code;
private Object data;
private String message;
public Result(Integer code) {
this.code = code;
}
public Result(Integer code, Object data) {
this.code = code;
this.data = data;
}
public Result(Integer code, String message) {
this.code = code;
this.message = message;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Override
public String toString() {
return "Result{" +
"code='" + code + '\'' +
", data=" + data +
", message='" + message + '\'' +
'}';
}
}
自定义状态码
public class Code {
/**
* 直接返回 true:1 or false:0
*/
public static final Integer CODE_TRUE = 1;
public static final Integer CODE_FALSE = 0;
/**
* 操作结果编码
*/
public static final Integer SAVE_SUCCESS = 20011;
public static final Integer UPDATE_SUCCESS = 20021;
public static final Integer DELETE_SUCCESS = 20031;
public static final Integer GET_SUCCESS = 20041;
public static final Integer SAVE_ERROR = 20010;
public static final Integer UPDATE_ERROR = 20020;
public static final Integer DELETE_ERROR = 20030;
public static final Integer GET_ERROR = 20040;
/*
* 系统错误编码
*
* 操作权限编码
*
* 校验结果编码
*
*/
}
自定义异常
public class CommonException extends RuntimeException{
private Integer code;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public CommonException(Integer code) {
super();
this.code=code;
}
public CommonException(String message, Integer code) {
super(message);
this.code=code;
}
public CommonException(String message, Throwable cause, Integer code) {
super(message, cause);
this.code=code;
}
public CommonException(Throwable cause, Integer code) {
super(cause);
this.code=code;
}
protected CommonException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace, Integer code) {
super(message, cause, enableSuppression, writableStackTrace);
this.code=code;
}
}
自动拦截 Controller 异常
@ControllerAdvice
public class ProjectExceptionAdvice {
@ExceptionHandler(CommonException.class)
@ResponseBody
//对出现异常的情况进行拦截,并将其处理成统一的页面数据结果格式
public Result doCommonException(CommonException ce){
return new Result(ce.getCode(),ce.getMessage());
}
}
ssm_service
pom.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.asaawan</groupId>
<artifactId>ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../ssm/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ssm_service</artifactId>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<!--导入mapper-->
<dependency>
<groupId>com.asaawan</groupId>
<artifactId>ssm_mapper</artifactId>
</dependency>
<!--spring环境-->
<!--spring环境-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<!--其他组件-->
<!--其他组件-->
<!--junit单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<!--spring整合junit-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
</dependencies>
</project>
applicationContext-service 配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
https://www.springframework.org/schema/tx/spring-tx.xsd">
<!--开启 bean 注解驱动-->
<context:component-scan base-package="com.asaawan.service"/>
<!--开启事务注解驱动-->
<tx:annotation-driven transaction-manager="txManger"/>
<!-- 配置事务管理 -->
<bean id="txManger"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
UserService 配置
@Transactional(readOnly = true)
public interface UserService {
/**
* 存储数据
* @param user user
*/
@Transactional(readOnly = false)
public boolean save(User user);
/**
* 更新数据
* @param user user
*/
@Transactional(readOnly = false)
public boolean update(User user);
/**
* 删除数据
* @param uuid uuid
*/
@Transactional(readOnly = false)
public boolean delete(Integer uuid);
/**
* 根据 uuid 获取数据
* @param uuid uuid
* @return 用户数据
*/
public User get(Integer uuid);
/**
* 获取全部数据
* @return 用户列表
*/
public PageInfo<User> getAll(Integer page, Integer size);
/**
* 根据用户名和密码获取用户数据
* @param username 用户名
* @param password 密码
* @return 返回符合条件的用户数据
*/
public User login(String username,String password);
}
UserServiceImpl 配置
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public boolean save(User user) {
boolean flag = userMapper.save(user);
return flag;
}
@Override
public boolean update(User user) {
boolean flag = userMapper.update(user);
return flag;
}
@Override
public boolean delete(Integer uuid) {
boolean flag = userMapper.delete(uuid);
return flag;
}
@Override
public User get(Integer uuid) {
return userMapper.get(uuid);
}
@Override
public PageInfo<User> getAll(Integer page, Integer size) {
PageHelper.startPage(page, size);
List<User> users = userMapper.getAll();
return new PageInfo<User>(users);
}
@Override
public User login(String username, String password) {
return userMapper.getByUsernameAndPassword(username, password);
}
}
UserServiceTest 配置
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:applicationContext-service.xml", "classpath*:applicationContext-mapper.xml"})
public class UserViceTest {
@Autowired
private UserService userService;
@Test
public void testSave() {
User user = userService.get(1);
user.setUuid(null);
user.setUserName("阎罗天子");
user.setRealName("燕十三");
System.out.println(user);
userService.save(user);
}
@Test
public void testUpdate() {
User user = userService.get(2);
user.setPassWord("123321");
userService.update(user);
}
@Test
public void testDelete() {
userService.delete(5);
}
@Test
public void testGet() {
User user = userService.get(1);
System.out.println(user);
}
@Test
public void testGetAll() {
PageInfo<User> info = userService.getAll(3, 2);
List<User> users = info.getList();
users.forEach(System.out::println);
}
@Test
public void testLogin() {
User user = userService.login("道君", "123456");
System.out.println(user);
}
}
ssm_mapper
pom.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.asaawan</groupId>
<artifactId>ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../ssm/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ssm_mapper</artifactId>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<!--导入 pojo -->
<dependency>
<groupId>com.asaawan</groupId>
<artifactId>ssm_pojo</artifactId>
</dependency>
<!-- spring 环境 -->
<!-- spring 环境 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<!-- mybatis 环境 -->
<!-- mybatis 环境 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<!-- mysql 环境 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- spring 整合 jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<!-- spring 整合 mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</dependency>
<!-- druid 连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
<!--分页插件坐标-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
</dependencies>
</project>
applicationContext-mapper.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!--引入properties配置文件-->
<context:property-placeholder location="classpath*:*.properties"/>
<!-- 数据源配置 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--spring 整合 mybatis-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.asaawan.domain"/>
<!--分页插件-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<prop key="helperDialect">mysql</prop>
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>
<!-- 映射扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.asaawan.mapper"/>
</bean>
</beans>
jdbc.properties 配置
#jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://localhost:3306/ssm_db?useSSL=false&useUnicode=true&characterEncoding=utf8
#jdbc.username=root
#jdbc.password=root
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=${jdbc.url}
jdbc.username=root
jdbc.password=root
UserMapper 配置
public interface UserMapper {
/**
* 存储数据
* @param user user
*/
@Insert("insert into user values(#{uuid},#{userName},#{passWord},#{realName},#{gender},#{birthday})")
public boolean save(User user);
/**
* 更新数据
* @param user user
*/
@Update("update user set userName=#{userName},passWord=#{passWord},realName=#{realName},gender=#{gender},birthday=#{birthday} where uuid=#{uuid}")
public boolean update(User user);
/**
* 删除数据
* @param uuid uuid
*/
@Delete("delete from user where uuid=#{val}")
public boolean delete(Integer uuid);
/**
* 根据 uuid 获取数据
* @param uuid uuid
* @return 用户数据
*/
@Select("select * from user where uuid=#{val}")
public User get(Integer uuid);
/**
* 获取全部数据
* @return 用户列表
*/
@Select("select * from user")
public List<User> getAll();
/**
* 根据用户名和密码获取用户数据
* @param username 用户名
* @param password 密码
* @return 返回符合条件的用户数据
*/
@Select("select * from user where userName=#{userName} and passWord=#{passWord}")
public User getByUsernameAndPassword(@Param("userName") String username, @Param("passWord") String password);
}
ssm_jopo
pom.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.asaawan</groupId>
<artifactId>ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../ssm/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ssm_pojo</artifactId>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<!-- json -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
</dependencies>
</project>
User 配置
public class User {
private Integer uuid;
private String userName;
private String passWord;
private String realName;
private Integer gender;
@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
private Date birthday;
public User() {
}
public User(Integer uuid, String userName, String passWord, String realName, Integer gender, Date birthday) {
this.uuid = uuid;
this.userName = userName;
this.passWord = passWord;
this.realName = realName;
this.gender = gender;
this.birthday = birthday;
}
public Integer getUuid() {
return uuid;
}
public void setUuid(Integer uuid) {
this.uuid = uuid;
}
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 getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "User{" +
"uuid=" + uuid +
", userName='" + userName + '\'' +
", passWord='" + passWord + '\'' +
", realName='" + realName + '\'' +
", gender=" + gender +
", birthday=" + birthday +
'}';
}
}
sql 语句
# 如果存在 ssm_db 则删除数据库
# DROP DATABASE IF EXISTS ssm_db;
# 不存在则创建数据库 ssm_db
CREATE DATABASE IF NOT EXISTS ssm_db;
# 如果存在 user 表则删除
# DROP TABLE IF EXISTS `user`;
# 创建 user 表
CREATE TABLE IF NOT EXISTS `user` (
`uuid` INT(30) NOT NULL AUTO_INCREMENT,
`userName` VARCHAR(255) DEFAULT NULL,
`passWord` VARCHAR(255) DEFAULT NULL,
`realName` VARCHAR(255) DEFAULT NULL,
`gender` INT(1) DEFAULT NULL,
`birthday` DATE DEFAULT NULL,
PRIMARY KEY (`uuid`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-- 插入数据
INSERT INTO `user` VALUES(NULL, '道君', '123456', '张三丰', 1, '1640-12-12'),
(NULL, '道主', '123321', '张道陵', 1, '1640-12-12'),
(NULL, '墨竹', '123456', '罗睺', 1, '1640-12-12'),
(NULL, '昊天', '123456', '张友仁', 1, '1640-12-12'),
(NULL, '阎罗天子', '123456', '燕十三', 1, '1640-12-12'),
(NULL, '王母娘娘', '123456', '西王母', 1, '1640-12-12'),
(NULL, '天蓬元帅', '123456', '猪八戒', 1, '1640-12-12');