mirror of
https://github.com/qiurunze123/miaosha.git
synced 2023-11-19 22:41:03 +08:00
mybatis xml 写法解析
This commit is contained in:
parent
9c73ca56a5
commit
d053fbcf6c
|
@ -11,6 +11,7 @@
|
|||
</annotationProcessing>
|
||||
<bytecodeTargetLevel>
|
||||
<module name="miaosha" target="1.6" />
|
||||
<module name="springcloud-server" target="1.8" />
|
||||
</bytecodeTargetLevel>
|
||||
</component>
|
||||
</project>
|
|
@ -2,5 +2,6 @@
|
|||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/springcloud-server" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
1081
.idea/workspace.xml
1081
.idea/workspace.xml
File diff suppressed because it is too large
Load Diff
|
@ -121,4 +121,8 @@ redis的数量不是库存,他的作用仅仅只是为了阻挡多余的请求
|
|||
块时产生的同步访问,那么,让每个线程拥有它自己的对象实例<br>
|
||||
注意:局部变量是同步或局部线程的一个好的替代,它总是能够保证线程安全。唯一可能限制你这样做的是你的应用设计约束<br>
|
||||
|
||||
所以设计threadlocal存储user不会对对象产生影响,每次进来一个请求都会产生自身的线程变量来存储
|
||||
所以设计threadlocal存储user不会对对象产生影响,每次进来一个请求都会产生自身的线程变量来存储
|
||||
|
||||
### <font color=#0099ff size=3 >15.mybatis如何使用注解与xml配置?</font><br>
|
||||
本文使用的是注解方法开发所以不做过多解释<br>
|
||||
下面仔细讲解以下如何详细使用xml开发<br>
|
194
pom.xml
194
pom.xml
|
@ -1,111 +1,119 @@
|
|||
<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>
|
||||
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.geekq</groupId>
|
||||
<artifactId>miaosha</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>1.5.8.RELEASE</version>
|
||||
</parent>
|
||||
<groupId>com.geekq</groupId>
|
||||
<artifactId>miaosha</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>1.5.8.RELEASE</version>
|
||||
</parent>
|
||||
|
||||
<name>miaosha</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<name>miaosha</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
<version>18.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
<version>18.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.mybatis.spring.boot</groupId>
|
||||
<artifactId>mybatis-spring-boot-starter</artifactId>
|
||||
<version>1.3.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mybatis.spring.boot</groupId>
|
||||
<artifactId>mybatis-spring-boot-starter</artifactId>
|
||||
<version>1.3.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid</artifactId>
|
||||
<version>1.0.5</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid</artifactId>
|
||||
<version>1.0.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>redis.clients</groupId>
|
||||
<artifactId>jedis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>redis.clients</groupId>
|
||||
<artifactId>jedis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>1.2.38</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>1.2.38</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-validation</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-validation</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-amqp</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-amqp</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-amqp</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-amqp</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</dependencies>
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
</build>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
|
@ -1,15 +1,30 @@
|
|||
package com.geekq.miaosha;
|
||||
|
||||
import com.geekq.miaosha.domain.MiaoshaUser;
|
||||
import org.apache.ibatis.io.Resources;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
||||
/**
|
||||
* mybatis xml 写法的配置测试类
|
||||
*/
|
||||
public class Test {
|
||||
public static void main(String[] args) {
|
||||
DemoTask demoTask = new DemoTask();
|
||||
DemoTask demoTask1 = new DemoTask();
|
||||
DemoTask demoTask2 = new DemoTask();
|
||||
Thread t = new Thread(demoTask);
|
||||
t.start();
|
||||
new Thread(demoTask).start();
|
||||
new Thread(demoTask2).start();
|
||||
public static void main(String[] args) throws IOException {
|
||||
|
||||
//读取配置文件
|
||||
Reader reader = Resources.getResourceAsReader("config.xml");
|
||||
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
|
||||
|
||||
|
||||
SqlSession session = sessionFactory.openSession();
|
||||
|
||||
String statement = "com.geekq.miaosha.dao.UserMapper.getMiaoShaUserById" ;
|
||||
MiaoshaUser user = session.selectOne(statement,"18612766134");
|
||||
|
||||
System.out.println(user.toString());
|
||||
}
|
||||
}
|
||||
|
|
27
src/main/java/com/geekq/miaosha/common/ResponseCode.java
Normal file
27
src/main/java/com/geekq/miaosha/common/ResponseCode.java
Normal file
|
@ -0,0 +1,27 @@
|
|||
package com.geekq.miaosha.common;
|
||||
|
||||
/**
|
||||
* 响应类
|
||||
*/
|
||||
public enum ResponseCode {
|
||||
SUCCESS(0, "SUCCESS"),
|
||||
ERROR(1, "ERROR"),
|
||||
NEED_LOGIN(10, "NEED_LOGIN"),
|
||||
ILLEGAL_ARGUMENT(2, "ILLEGAL_ARGUMENT");
|
||||
|
||||
private final int code;
|
||||
private final String desc;
|
||||
|
||||
private ResponseCode(int code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
}
|
78
src/main/java/com/geekq/miaosha/common/ServerResponse.java
Normal file
78
src/main/java/com/geekq/miaosha/common/ServerResponse.java
Normal file
|
@ -0,0 +1,78 @@
|
|||
package com.geekq.miaosha.common;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
|
||||
//保证序列化的时候 不会有空
|
||||
public class ServerResponse<T> implements Serializable {
|
||||
|
||||
private int status ;
|
||||
private String msg ;
|
||||
private T data ;
|
||||
private ServerResponse( int status ){
|
||||
this.status =status;
|
||||
}
|
||||
private ServerResponse( int status ,T data){
|
||||
this.status =status;
|
||||
this.data = data;
|
||||
}
|
||||
private ServerResponse( int status ,String msg ,T data){
|
||||
this.status =status;
|
||||
this.msg = msg ;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
private ServerResponse( int status ,String msg ){
|
||||
this.status =status;
|
||||
this.msg = msg ;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public boolean isSuccess(){
|
||||
return this.status == ResponseCode.SUCCESS.getCode();
|
||||
}
|
||||
|
||||
public int getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public T getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public static <T> ServerResponse<T> createBySuccess(){
|
||||
return new ServerResponse<T>(ResponseCode.SUCCESS.getCode());
|
||||
}
|
||||
|
||||
public static <T> ServerResponse<T> createBySuccessMessage(String msg){
|
||||
return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg);
|
||||
}
|
||||
|
||||
public static <T> ServerResponse<T> createBySuccess(T data){
|
||||
return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),data);
|
||||
}
|
||||
|
||||
public static <T> ServerResponse<T> createBySuccess(String msg,T data){
|
||||
return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg,data);
|
||||
}
|
||||
|
||||
public static <T> ServerResponse<T> createByError(){
|
||||
return new ServerResponse<T>(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getDesc());
|
||||
}
|
||||
|
||||
public static <T> ServerResponse<T> createByErrorMessage(String errorMsg){
|
||||
return new ServerResponse<T>(ResponseCode.ERROR.getCode(),errorMsg);
|
||||
}
|
||||
public static <T> ServerResponse<T> createByErrorCodeMessage(int errorCode , String errorMsg){
|
||||
return new ServerResponse<T>(errorCode,errorMsg);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,14 +1,17 @@
|
|||
package com.geekq.miaosha.controller;
|
||||
|
||||
import com.geekq.miaosha.result.CodeMsg;
|
||||
import com.geekq.miaosha.dao.UserMapper;
|
||||
import com.geekq.miaosha.domain.MiaoshaUser;
|
||||
import com.geekq.miaosha.result.Result;
|
||||
import com.geekq.miaosha.service.MiaoShaUserService;
|
||||
import com.geekq.miaosha.vo.LoginVo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
@ -18,24 +21,54 @@ import javax.validation.Valid;
|
|||
@RequestMapping("/login")
|
||||
public class LoginController {
|
||||
|
||||
private static Logger log = LoggerFactory.getLogger(LoginController.class) ;
|
||||
private static Logger log = LoggerFactory.getLogger(LoginController.class);
|
||||
|
||||
@Autowired
|
||||
private MiaoShaUserService userService ;
|
||||
private MiaoShaUserService userService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private UserMapper userMapper;
|
||||
|
||||
@RequestMapping("/to_login")
|
||||
public String tologin(LoginVo loginVo ){
|
||||
public String tologin(LoginVo loginVo) {
|
||||
log.info(loginVo.toString());
|
||||
return "login" ;
|
||||
return "login";
|
||||
}
|
||||
|
||||
@RequestMapping("/do_login")
|
||||
@ResponseBody
|
||||
public Result<Boolean> dologin(HttpServletResponse response , @Valid LoginVo loginVo ){
|
||||
public Result<Boolean> dologin(HttpServletResponse response, @Valid LoginVo loginVo) {
|
||||
log.info(loginVo.toString());
|
||||
userService.login(response , loginVo);
|
||||
return Result.success(true);
|
||||
userService.login(response, loginVo);
|
||||
return Result.success(true);
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = "/register", method = RequestMethod.POST)
|
||||
public Result<String> register(MiaoshaUser user) {
|
||||
return userService.insertMiaoShaUser(user);
|
||||
}
|
||||
|
||||
@RequestMapping("/mybatis")
|
||||
public void mybatisXml() {
|
||||
//
|
||||
int count = userMapper.getMiaoShaUserNum();
|
||||
System.out.println(count);
|
||||
MiaoshaUser user = userMapper.getMiaoShaUserById(Long.valueOf("18612766134"));
|
||||
System.out.println(user);
|
||||
//
|
||||
// MiaoshaUser miaoshaUser =new MiaoshaUser();
|
||||
// miaoshaUser.setId(Long.valueOf("1234569879"));
|
||||
// miaoshaUser.setNickname("test");
|
||||
// Long num = userMapper.insertMiaoShaUser(miaoshaUser);
|
||||
|
||||
MiaoshaUser upmiaoshaUser =new MiaoshaUser();
|
||||
upmiaoshaUser.setId(Long.valueOf("1234569879"));
|
||||
upmiaoshaUser.setNickname("test1");
|
||||
userMapper.updateMiaoShaUser(upmiaoshaUser);
|
||||
|
||||
userMapper.deleteMiaoShaUser(Long.valueOf("1234569879"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package com.geekq.miaosha.controller;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/user/")
|
||||
public class UserController {
|
||||
/**
|
||||
* 用户登录
|
||||
* @param username
|
||||
* @param password
|
||||
* @param session
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "/login",method = RequestMethod.POST)
|
||||
public Object login(String username , String password , HttpSession session){
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -1,10 +1,7 @@
|
|||
package com.geekq.miaosha.dao;
|
||||
|
||||
import com.geekq.miaosha.domain.MiaoshaUser;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@Mapper
|
||||
public interface MiaoShaUserDao {
|
||||
|
@ -15,4 +12,9 @@ public interface MiaoShaUserDao {
|
|||
|
||||
@Update("update miaosha_user set password = #{password} where id = #{id}")
|
||||
public void update(MiaoshaUser toBeUpdate);
|
||||
}
|
||||
|
||||
|
||||
@Insert("insert into miaosha_user (id , nickname ,password , salt ,head,register_date,last_login_date)value (#{id},#{nickname},#{password},#{salt},#{nickname},#{head},#{register_date},#{last_login_date}) ")
|
||||
public long insertMiaoShaUser(MiaoshaUser miaoshaUser);
|
||||
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
package com.geekq.miaosha.dao;
|
||||
|
||||
import com.geekq.miaosha.domain.MiaoshaUser;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
@Mapper
|
||||
public interface MiaoshaUserDao {
|
||||
|
||||
@Select("select * from miaosha_user where id = #{id}")
|
||||
public MiaoshaUser getById(@Param("id") long id);
|
||||
}
|
30
src/main/java/com/geekq/miaosha/dao/UserMapper.java
Normal file
30
src/main/java/com/geekq/miaosha/dao/UserMapper.java
Normal file
|
@ -0,0 +1,30 @@
|
|||
package com.geekq.miaosha.dao;
|
||||
|
||||
import com.geekq.miaosha.domain.MiaoshaUser;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* mybatis xml 写法
|
||||
*/
|
||||
@Mapper
|
||||
public interface UserMapper {
|
||||
int countbyMenuId();
|
||||
MiaoshaUser getMiaoShaUserById(Long phoneId);
|
||||
//秒杀对象获取 mybatis的#与$的区别
|
||||
List<MiaoshaUser> queryMiaoShaUserOrderByColumn(String column);
|
||||
|
||||
|
||||
//查询总条数
|
||||
public int getMiaoShaUserNum();
|
||||
|
||||
public Long insertMiaoShaUser(MiaoshaUser user);
|
||||
|
||||
//更改表数据
|
||||
void updateMiaoShaUser(MiaoshaUser user) ;
|
||||
|
||||
//删除表数据
|
||||
|
||||
void deleteMiaoShaUser(long id );
|
||||
}
|
|
@ -59,4 +59,18 @@ public class MiaoshaUser {
|
|||
public void setLoginCount(Integer loginCount) {
|
||||
this.loginCount = loginCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MiaoshaUser{" +
|
||||
"id=" + id +
|
||||
", nickname='" + nickname + '\'' +
|
||||
", password='" + password + '\'' +
|
||||
", salt='" + salt + '\'' +
|
||||
", head='" + head + '\'' +
|
||||
", registerDate=" + registerDate +
|
||||
", lastLoginDate=" + lastLoginDate +
|
||||
", loginCount=" + loginCount +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,11 @@ public class CodeMsg {
|
|||
|
||||
//通用的错误码
|
||||
public static CodeMsg SUCCESS = new CodeMsg(0, "success");
|
||||
|
||||
public static CodeMsg SUCCESS_RESIGETER = new CodeMsg(200,"注册成功!");
|
||||
|
||||
public static CodeMsg RESIGETER_FAIL = new CodeMsg(300,"注册失败!");
|
||||
|
||||
public static CodeMsg SERVER_ERROR = new CodeMsg(500100, "服务端异常");
|
||||
public static CodeMsg BIND_ERROR = new CodeMsg(500101, "参数校验异常:%s");
|
||||
public static CodeMsg REQUEST_ILLEGAL = new CodeMsg(500102, "请求非法");
|
||||
|
|
|
@ -1,45 +1,66 @@
|
|||
package com.geekq.miaosha.result;
|
||||
|
||||
public class Result<T> {
|
||||
private int code ;
|
||||
private String msg ;
|
||||
private T data ;
|
||||
private int code;
|
||||
private String msg;
|
||||
private T data;
|
||||
|
||||
|
||||
/**
|
||||
* 成功时候的调用
|
||||
*
|
||||
* @param data
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> Result<T> success( T data ){
|
||||
return new Result<T>(data) ;
|
||||
public static <T> Result<T> success(T data) {
|
||||
return new Result<T>(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册时候调用
|
||||
*
|
||||
* @param msg
|
||||
* @param data
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> Result<T> success(CodeMsg msg) {
|
||||
|
||||
return new Result<T>(CodeMsg.SUCCESS_RESIGETER);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 失败的时候调用
|
||||
*
|
||||
* @param cm
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
public static <T> Result<T> error(CodeMsg cm){
|
||||
return new Result<T>(cm) ;
|
||||
public static <T> Result<T> error(CodeMsg cm) {
|
||||
return new Result<T>(cm);
|
||||
}
|
||||
|
||||
// public Result(CodeMsg msg, T data) {
|
||||
// this.code = msg.getCode();
|
||||
// this.msg = msg.getMsg();
|
||||
// this.data = data;
|
||||
// }
|
||||
|
||||
private Result(CodeMsg cm) {
|
||||
if(cm ==null){
|
||||
return ;
|
||||
private Result(CodeMsg cm) {
|
||||
if (cm == null) {
|
||||
return;
|
||||
}
|
||||
this.code = cm.getCode() ;
|
||||
this.msg = cm.getMsg() ;
|
||||
this.code = cm.getCode();
|
||||
this.msg = cm.getMsg();
|
||||
}
|
||||
|
||||
|
||||
private Result(T data) {
|
||||
this.code = 0 ;
|
||||
this.msg = "success" ;
|
||||
this.data = data ;
|
||||
private Result(T data) {
|
||||
this.code = 0;
|
||||
this.msg = "success";
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
package com.geekq.miaosha.service;
|
||||
|
||||
public interface IUserService {
|
||||
|
||||
Object login(String username , String password) ;
|
||||
|
||||
}
|
|
@ -7,8 +7,10 @@ import com.geekq.miaosha.exception.GlobleException;
|
|||
import com.geekq.miaosha.redis.MiaoShaUserKey;
|
||||
import com.geekq.miaosha.redis.RedisService;
|
||||
import com.geekq.miaosha.result.CodeMsg;
|
||||
import com.geekq.miaosha.result.Result;
|
||||
import com.geekq.miaosha.utils.UUIDUtil;
|
||||
import com.geekq.miaosha.vo.LoginVo;
|
||||
import com.sun.org.apache.bcel.internal.classfile.Code;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -74,6 +76,17 @@ public class MiaoShaUserService {
|
|||
return true;
|
||||
}
|
||||
|
||||
public Result<String> insertMiaoShaUser(MiaoshaUser miaoshaUser){
|
||||
|
||||
long resultRegister = miaoShaUserDao.insertMiaoShaUser(miaoshaUser);
|
||||
|
||||
if(resultRegister == 0){
|
||||
throw new GlobleException(CodeMsg.RESIGETER_FAIL);
|
||||
}
|
||||
|
||||
return Result.success(CodeMsg.SUCCESS_RESIGETER);
|
||||
}
|
||||
|
||||
public boolean login(HttpServletResponse response , LoginVo loginVo) {
|
||||
if(loginVo ==null){
|
||||
throw new GlobleException(CodeMsg.SERVER_ERROR);
|
||||
|
|
|
@ -8,10 +8,13 @@ spring.thymeleaf.encoding=UTF-8
|
|||
spring.thymeleaf.mode=HTML5
|
||||
|
||||
#mybatis
|
||||
mybatis.type-aliases-package=com.imooc.miaosha.domain
|
||||
mybatis.type-aliases-package=com.geekq.miaosha.domain
|
||||
#开启驼峰转换
|
||||
mybatis.configuration.map-underscore-to-camel-case=true
|
||||
mybatis.mapperLocations = classpath:com/imooc/miaosha/dao/*.xml
|
||||
#mybatis.mapperLocations = classpath:com/geekq/miaosha/dao/*.xml
|
||||
mybatis.mapperLocations=classpath:mybatis/mapper/*.xml
|
||||
#add mybatis
|
||||
mybatis.config-locations=classpath:mybatis/config.xml
|
||||
#datasource
|
||||
spring.datasource.url=jdbc:mysql://localhost:3306/miaosha?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
|
||||
spring.datasource.username=root
|
||||
|
|
11
src/main/resources/mybatis/config.xml
Normal file
11
src/main/resources/mybatis/config.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
|
||||
<configuration>
|
||||
|
||||
<typeAliases>
|
||||
<typeAlias alias="miaoshauser1" type="com.geekq.miaosha.domain.MiaoshaUser"/>
|
||||
</typeAliases>
|
||||
<!-- <mappers>
|
||||
<mapper resource="/mybatis/mapper/UserMapper.xml"></mapper>
|
||||
</mappers>-->
|
||||
</configuration>
|
62
src/main/resources/mybatis/mapper/UserMapper.xml
Normal file
62
src/main/resources/mybatis/mapper/UserMapper.xml
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
|
||||
<mapper namespace="com.geekq.miaosha.dao.UserMapper">
|
||||
|
||||
<!--结果集映射-->
|
||||
<resultMap id="BaseResultMap" type="com.geekq.miaosha.domain.MiaoshaUser">
|
||||
<id column="id" property="id" jdbcType="BIGINT"/>
|
||||
<result column="nickname" property="nickname" jdbcType="VARCHAR"/>
|
||||
<result column="salt" property="salt" jdbcType="VARCHAR"/>
|
||||
<result column="head" property="head" jdbcType="VARCHAR"/>
|
||||
<result column="register_date" property="registerDate" jdbcType="TIMESTAMP"/>
|
||||
<result column="last_login_date" property="lastLoginDate" jdbcType="TIMESTAMP"/>
|
||||
<result column="login_Count" property="loginCount" jdbcType="INTEGER"/>
|
||||
</resultMap>
|
||||
|
||||
<!--增加一条数据-->
|
||||
|
||||
<insert id="insertMiaoShaUser" parameterType="com.geekq.miaosha.domain.MiaoshaUser" keyProperty="id">
|
||||
|
||||
insert into miaosha_user (id, nickname, salt, register_date,last_login_date,login_Count ) values
|
||||
(#{id,jdbcType=BIGINT},#{nickname,jdbcType=VARCHAR},
|
||||
#{salt,jdbcType=VARCHAR},#{registerDate,jdbcType=DATE},#{lastLoginDate,jdbcType=DATE},
|
||||
#{loginCount,jdbcType=INTEGER}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!--更新一条数据-->
|
||||
|
||||
<update id="updateMiaoShaUser" >
|
||||
update miaosha_user set nickname = #{nickname},
|
||||
login_Count = #{loginCount}
|
||||
where id=#{id}
|
||||
</update>
|
||||
|
||||
<!--删除一条数据-->
|
||||
<delete id="deleteMiaoShaUser" parameterType="Long">
|
||||
delete from miaosha_user
|
||||
where id = #{id,jdbcType=BIGINT}
|
||||
</delete>
|
||||
|
||||
|
||||
<sql id="Base_Column_List"> id, nickname, salt, register_date,last_login_date,login_Count </sql>
|
||||
|
||||
<select id="getMiaoShaUserById" parameterType="LONG" resultType="miaoshauser">
|
||||
SELECT
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM miaosha_user WHERE id = #{id}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getMiaoShaUserNum" resultType="int">
|
||||
select count(*) from miaosha_user
|
||||
</select>
|
||||
|
||||
|
||||
<select id="countbyMenuId" parameterType="java.lang.Integer"
|
||||
resultType="java.lang.Integer"> select count(*) from miaosha_user
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
|
@ -48,10 +48,10 @@
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<button class="btn btn-primary btn-block" type="reset" onclick="reset()">重置</button>
|
||||
<button class="btn btn-primary btn-block" type="reset" onclick="reset()">重置</button>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<button class="btn btn-primary btn-block" type="submit" onclick="login()">登录</button>
|
||||
<button class="btn btn-primary btn-block" type="submit" onclick="login()">登录</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -8,10 +8,13 @@ spring.thymeleaf.encoding=UTF-8
|
|||
spring.thymeleaf.mode=HTML5
|
||||
|
||||
#mybatis
|
||||
mybatis.type-aliases-package=com.imooc.miaosha.domain
|
||||
mybatis.type-aliases-package=com.geekq.miaosha.domain
|
||||
#开启驼峰转换
|
||||
mybatis.configuration.map-underscore-to-camel-case=true
|
||||
mybatis.mapperLocations = classpath:com/imooc/miaosha/dao/*.xml
|
||||
#mybatis.mapperLocations = classpath:com/geekq/miaosha/dao/*.xml
|
||||
mybatis.mapperLocations=classpath:mybatis/mapper/*.xml
|
||||
#add mybatis
|
||||
mybatis.config-locations=classpath:mybatis/config.xml
|
||||
#datasource
|
||||
spring.datasource.url=jdbc:mysql://localhost:3306/miaosha?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
|
||||
spring.datasource.username=root
|
||||
|
|
Binary file not shown.
BIN
target/classes/com/geekq/miaosha/common/ResponseCode.class
Normal file
BIN
target/classes/com/geekq/miaosha/common/ResponseCode.class
Normal file
Binary file not shown.
BIN
target/classes/com/geekq/miaosha/common/ServerResponse.class
Normal file
BIN
target/classes/com/geekq/miaosha/common/ServerResponse.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
target/classes/com/geekq/miaosha/controller/UserController.class
Normal file
BIN
target/classes/com/geekq/miaosha/controller/UserController.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
target/classes/com/geekq/miaosha/dao/UserMapper.class
Normal file
BIN
target/classes/com/geekq/miaosha/dao/UserMapper.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
target/classes/com/geekq/miaosha/service/IUserService.class
Normal file
BIN
target/classes/com/geekq/miaosha/service/IUserService.class
Normal file
Binary file not shown.
Binary file not shown.
11
target/classes/mybatis/config.xml
Normal file
11
target/classes/mybatis/config.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
|
||||
<configuration>
|
||||
|
||||
<typeAliases>
|
||||
<typeAlias alias="miaoshauser1" type="com.geekq.miaosha.domain.MiaoshaUser"/>
|
||||
</typeAliases>
|
||||
<!-- <mappers>
|
||||
<mapper resource="/mybatis/mapper/UserMapper.xml"></mapper>
|
||||
</mappers>-->
|
||||
</configuration>
|
62
target/classes/mybatis/mapper/UserMapper.xml
Normal file
62
target/classes/mybatis/mapper/UserMapper.xml
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
|
||||
<mapper namespace="com.geekq.miaosha.dao.UserMapper">
|
||||
|
||||
<!--结果集映射-->
|
||||
<resultMap id="BaseResultMap" type="com.geekq.miaosha.domain.MiaoshaUser">
|
||||
<id column="id" property="id" jdbcType="BIGINT"/>
|
||||
<result column="nickname" property="nickname" jdbcType="VARCHAR"/>
|
||||
<result column="salt" property="salt" jdbcType="VARCHAR"/>
|
||||
<result column="head" property="head" jdbcType="VARCHAR"/>
|
||||
<result column="register_date" property="registerDate" jdbcType="TIMESTAMP"/>
|
||||
<result column="last_login_date" property="lastLoginDate" jdbcType="TIMESTAMP"/>
|
||||
<result column="login_Count" property="loginCount" jdbcType="INTEGER"/>
|
||||
</resultMap>
|
||||
|
||||
<!--增加一条数据-->
|
||||
|
||||
<insert id="insertMiaoShaUser" parameterType="com.geekq.miaosha.domain.MiaoshaUser" keyProperty="id">
|
||||
|
||||
insert into miaosha_user (id, nickname, salt, register_date,last_login_date,login_Count ) values
|
||||
(#{id,jdbcType=BIGINT},#{nickname,jdbcType=VARCHAR},
|
||||
#{salt,jdbcType=VARCHAR},#{registerDate,jdbcType=DATE},#{lastLoginDate,jdbcType=DATE},
|
||||
#{loginCount,jdbcType=INTEGER}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!--更新一条数据-->
|
||||
|
||||
<update id="updateMiaoShaUser" >
|
||||
update miaosha_user set nickname = #{nickname},
|
||||
login_Count = #{loginCount}
|
||||
where id=#{id}
|
||||
</update>
|
||||
|
||||
<!--删除一条数据-->
|
||||
<delete id="deleteMiaoShaUser" parameterType="Long">
|
||||
delete from miaosha_user
|
||||
where id = #{id,jdbcType=BIGINT}
|
||||
</delete>
|
||||
|
||||
|
||||
<sql id="Base_Column_List"> id, nickname, salt, register_date,last_login_date,login_Count </sql>
|
||||
|
||||
<select id="getMiaoShaUserById" parameterType="LONG" resultType="miaoshauser">
|
||||
SELECT
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM miaosha_user WHERE id = #{id}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getMiaoShaUserNum" resultType="int">
|
||||
select count(*) from miaosha_user
|
||||
</select>
|
||||
|
||||
|
||||
<select id="countbyMenuId" parameterType="java.lang.Integer"
|
||||
resultType="java.lang.Integer"> select count(*) from miaosha_user
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
|
@ -48,10 +48,10 @@
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<button class="btn btn-primary btn-block" type="reset" onclick="reset()">重置</button>
|
||||
<button class="btn btn-primary btn-block" type="reset" onclick="reset()">重置</button>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<button class="btn btn-primary btn-block" type="submit" onclick="login()">登录</button>
|
||||
<button class="btn btn-primary btn-block" type="submit" onclick="login()">登录</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user