DataSource.java
package com.ocean.dataSourceConfig;
import java.lang.annotation.*;
/**
* Created with IDEA
* author:QinWei
* Date:2018/12/11
* Time:11:17
*/
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataSource {
DataSourceEnum value() default DataSourceEnum.DB1;
}
DataSourceAspect.java
package com.ocean.dataSourceConfig;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
* Created with IDEA
* author:QinWei
* Date:2018/12/11
* Time:11:18
*/
@Component
@Slf4j
@Aspect
@Order(-1)
public class DataSourceAspect {
@Pointcut("@within(com.ocean.dataSourceConfig.DataSource) || @annotation(com.ocean.dataSourceConfig.DataSource)")
public void pointCut(){
}
@Before("pointCut() && @annotation(dataSource)")
public void doBefore(DataSource dataSource){
log.info("选择数据源---"+dataSource.value().getValue());
DataSourceContextHolder.setDataSource(dataSource.value().getValue());
}
@After("pointCut()")
public void doAfter(){
DataSourceContextHolder.clear();
}
}
DataSourceContextHolder.java
package com.ocean.dataSourceConfig;
/**
* Created with IDEA
* author:QinWei
* Date:2018/12/11
* Time:11:16
*/
public class DataSourceContextHolder {
private static final ThreadLocal<String> contextHolder = new InheritableThreadLocal<>();
/**
* 设置数据源
* @param db
*/
public static void setDataSource(String db){
contextHolder.set(db);
}
/**
* 取得当前数据源
* @return
*/
public static String getDataSource(){
return contextHolder.get();
}
/**
* 清除上下文数据
*/
public static void clear(){
contextHolder.remove();
}
}
DataSourceEnum.java
package com.ocean.dataSourceConfig;
/**
* Created with IDEA
* author:QinWei
* Date:2018/12/11
* Time:11:17
*/
public enum DataSourceEnum {
DB1("db1"),DB2("db2");
private String value;
DataSourceEnum(String value){this.value=value;}
public String getValue() {
return value;
}
}
MultipleDataSource.java
package com.ocean.dataSourceConfig;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
/**
* Created with IDEA
* author:QinWei
* Date:2018/12/11
* Time:11:16
*/
public class MultipleDataSource extends AbstractRoutingDataSource{
@Override
protected Object determineCurrentLookupKey() {
return DataSourceContextHolder.getDataSource();
}
}
DruidConfiguration.java,
MyBatiesPlusConfiguration.java
SwaggerConfiguration.java
package com.ocean.dataSourceConfig.Configuration;
/**
* Created with IDEA
* author:QinWei
* Date:2018/12/11
* Time:11:20
*/
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DruidConfiguration {
@Bean
public ServletRegistrationBean startViewServlet(){
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
// IP白名单
servletRegistrationBean.addInitParameter("allow","127.0.0.1");
// IP黑名单(共同存在时,deny优先于allow)
servletRegistrationBean.addInitParameter("deny","127.0.0.1");
//控制台管理用户
servletRegistrationBean.addInitParameter("loginUsername","admin");
servletRegistrationBean.addInitParameter("loginPassword","123456");
//是否能够重置数据
servletRegistrationBean.addInitParameter("resetEnable","false");
return servletRegistrationBean;
}
@Bean
public FilterRegistrationBean statFilter(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
//添加过滤规则
filterRegistrationBean.addUrlPatterns("/*");
//忽略过滤的格式
filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
package com.ocean.dataSourceConfig.Configuration;
/**
* Created with IDEA
* author:QinWei
* Date:2018/12/11
* Time:11:21
*/
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import com.ocean.dataSourceConfig.DataSourceEnum;
import com.ocean.dataSourceConfig.MultipleDataSource;
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.type.JdbcType;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Profile;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
@Configuration
@MapperScan("com.ocean.mapper.*")
public class MyBatiesPlusConfiguration {
/*
* 分页插件,自动识别数据库类型
* 多租户,请参考官网【插件扩展】
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 开启 PageHelper 的支持
// paginationInterceptor.setL(true);
return paginationInterceptor;
}
/**
* SQL执行效率插件
*/
@Bean
@Profile({"dev","qa"})// 设置 dev test 环境开启
public PerformanceInterceptor performanceInterceptor() {
PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
performanceInterceptor.setMaxTime(1000);
performanceInterceptor.setFormat(true);
return performanceInterceptor;
}
@Bean(name = "db1")
@ConfigurationProperties(prefix = "spring.datasource.druid.db1" )
public DataSource db1() {
return DruidDataSourceBuilder.create().build();
}
@Bean(name = "db2")
@ConfigurationProperties(prefix = "spring.datasource.druid.db2" )
public DataSource db2() {
return DruidDataSourceBuilder.create().build();
}
/**
* 动态数据源配置
* @return
*/
@Bean
@Primary
public DataSource multipleDataSource(@Qualifier("db1") DataSource db1, @Qualifier("db2") DataSource db2) {
MultipleDataSource multipleDataSource = new MultipleDataSource();
Map< Object, Object > targetDataSources = new HashMap<>();
targetDataSources.put(DataSourceEnum.DB1.getValue(), db1);
targetDataSources.put(DataSourceEnum.DB2.getValue(), db2);
//添加数据源
multipleDataSource.setTargetDataSources(targetDataSources);
//设置默认数据源
multipleDataSource.setDefaultTargetDataSource(db1);
return multipleDataSource;
}
@Bean("sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory() throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(multipleDataSource(db1(),db2()));
//sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapper/*/*Mapper.xml"));
MybatisConfiguration configuration = new MybatisConfiguration();
//configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
configuration.setJdbcTypeForNull(JdbcType.NULL);
configuration.setMapUnderscoreToCamelCase(true);
configuration.setCacheEnabled(false);
sqlSessionFactory.setConfiguration(configuration);
sqlSessionFactory.setPlugins(new Interceptor[]{ //PerformanceInterceptor(),OptimisticLockerInterceptor()
paginationInterceptor() //添加分页功能
});
//sqlSessionFactory.setGlobalConfig(globalConfiguration());
return sqlSessionFactory.getObject();
}
/*@Bean
public GlobalConfiguration globalConfiguration() {
GlobalConfiguration conf = new GlobalConfiguration(new LogicSqlInjector());
conf.setLogicDeleteValue("-1");
conf.setLogicNotDeleteValue("1");
conf.setIdType(0);
//conf.setMetaObjectHandler(new MyMetaObjectHandler());
conf.setDbColumnUnderline(true);
conf.setRefresh(true);
return conf;
}*/
}
package com.ocean.dataSourceConfig.Configuration;
/**
* Created with IDEA
* author:QinWei
* Date:2018/12/11
* Time:11:23
*/
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.ocean.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("多数据源 SSM 测试服务")
.description("多数据源 SSM 测试文档")
.termsOfServiceUrl("http://www.seawaterbt.com")
//.contact(new Contact("海水不甜","http://www.seawaterbt.com","809318068@qq.com"))
.version("1.0")
.build();
}
}
application.yml配置
server:
port: 8585
#spring
spring:
thymeleaf:
prefix: classpath:/templates/pages/
suffix: .html
mode: HTML5
encoding: UTF-8
cache: false
resources:
chain:
strategy:
content:
paths: /**
datasource:
druid:
db1:
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/shiro?useUnicode=true&characterEncoding=utf8&useSSL=false
initialSize: 5
minIdle: 5
maxActive: 20
db2:
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/shiro1?useUnicode=true&characterEncoding=utf8&useSSL=false
initialSize: 5
minIdle: 5
maxActive: 20
#仅支持mybatisplus3.0版本以上
redis:
database: 1 #索引(默认为0)
host: localhost #地址
port: 6379 #端口号
#password: #连接密码(默认空)
pool:
max-idle: 8 #连接池中的最大空闲连接
min-idle: 0 #连接池中的最小空闲连接
max-active: 8 #连接池最大连接数(使用负值表示没有限制)
max-wait: -1 #连接池最大阻塞等待时间(使用负值表示没有限制)
#sentinel:
#master: mymaster # 哨兵监听的Redis server的名称
#nodes:
#127.0.0.1:26379,127.0.0.1:26479,127.0.0.1:26579 #哨兵的配置列表
timeout: 0 #连接超时时间(毫秒)
mybatis-plus:
mapper-locations: classpath:/mapping/*Mapper.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.ocean.pojo
global-config:
#刷新mapper 调试神器
db-config:
#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
id-type: auto
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
field-strategy: IGNORED
#驼峰下划线转换
column-underline: true
#数据库大写下划线转换
#capital-mode: true
#逻辑删除配置
logic-delete-value: 1
logic-not-delete-value: 0
sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
db-type: mysql
refresh: true
#自定义填充策略接口实现
#meta-object-handler: com.baomidou.springboot.xxx
#自定义SQL注入器
#sql-injector: com.baomidou.springboot.xxx
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
# 打印sql
logging:
level:
com.ocean.mapper : debug
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.ocean</groupId>
<artifactId>springboot-mybatis-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>springboot-mybatis-demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- spring mvc支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 阿里巴巴druid数据库连接池 -->
<!-- druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--对Jsp支持 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- 支持jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--启动时启动内置tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0-RC3</version>
</dependency>
<!-- spring boot devtools 依赖包. -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-all</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.23</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.jolbox</groupId>
<artifactId>bonecp-spring</artifactId>
<version>0.7.1.RELEASE</version>
</dependency>
<dependency>
<groupId>com.jolbox</groupId>
<artifactId>bonecp-spring</artifactId>
<version>0.7.1.RELEASE</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<!-- pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration> <!--设置程序执行的主类-->
<mainClass>com.ocean.SpringbootMybatisDemoApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
启动类
package com.ocean;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
//@EnableScheduling
//@PropertySource(value = { "classpath:mysql.properties" })
@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class
})
@MapperScan(basePackages = {"com.ocean.mapper"})//扫描数据访问接口
public class SpringbootMybatisDemoApplication extends SpringBootServletInitializer {
private static Log logger = LogFactory.getLog(SpringbootMybatisDemoApplication.class);
//为了打包springboot项目
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
public static void main(String[] args) {
logger.debug("=================开始成功=================");
SpringApplication.run(SpringbootMybatisDemoApplication.class, args);
logger.debug("=================启动成功=================");
}
}
mapper层
package com.ocean.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ocean.pojo.UserInfo;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
public interface UserInfoMapper extends BaseMapper<UserInfo> {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table userinfo
*
* @mbggenerated
*/
@Override
int insert(UserInfo record) ;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table userInfo
*
* @mbggenerated
*/
int insertSelective(UserInfo record);
//这个方式我自己单独加的方法
@Select("select * from user_info")
List<UserInfo> findAllUser(Page<UserInfo> page) ;
Integer selectUserName(@Param("name") String name);
UserInfo login(UserInfo user);
@Insert("insert into user_info (user_name,password,create_time) values (#{userName},md5(#{password}),#{createTime})")
void insertUser(UserInfo user);
}
service层和实现类
package com.ocean.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ocean.pojo.UserInfo;
import java.util.List;
public interface UserInfoService extends IService<UserInfo> {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table userinfo
*
* @mbggenerated
*/
int insert(UserInfo record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table userInfo
*
* @mbggenerated
*/
int insertSelective(UserInfo record) throws Exception;
//这个方式我自己单独加的方法
List<UserInfo> findAllUser(Page<UserInfo> page) ;
Integer selectUserName(String name);
UserInfo login(UserInfo user);
void inserts(UserInfo user);
}
package com.ocean.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ocean.dataSourceConfig.DataSource;
import com.ocean.dataSourceConfig.DataSourceEnum;
import com.ocean.mapper.UserInfoMapper;
import com.ocean.pojo.UserInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper,UserInfo> implements UserInfoService {
@Resource
private UserInfoMapper userfodao;
@Override
public int insert(UserInfo record) {
return userfodao.insert(record);
}
@Override
public int insertSelective(UserInfo record) {
return 0;
}
@Override
@DataSource(DataSourceEnum.DB1)
public List<UserInfo> findAllUser(Page<UserInfo> page) {
return userfodao.findAllUser(page);
}
@Override
public Integer selectUserName(String name) {
return userfodao.selectUserName(name) ;
}
@Override
public UserInfo login(UserInfo user) {
return userfodao.login( user);
}
@Override
@DataSource(DataSourceEnum.DB2) //选择DB
public void inserts(UserInfo user) {
userfodao.insertUser(user);
}
}
controller层
package com.ocean.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ocean.SpringbootMybatisDemoApplication;
import com.ocean.common.Md5;
import com.ocean.common.Message;
import com.ocean.pojo.UserInfo;
import com.ocean.service.UserInfoService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
public class UserController {
private static Log logger = LogFactory.getLog(UserController.class);
@Autowired
private UserInfoService userService;
@RequestMapping("/register")
public String hello(UserInfo users) throws Exception{
//try {
//判断用户名是否重复
Integer userId = userService.selectUserName(users.getUserName());
if(userId==null) {
UserInfo user = new UserInfo();
user.setUserName(users.getUserName());
user.setPassword(users.getPassword());
user.setCreateTime(new Timestamp(System.currentTimeMillis()));
userService.insert(user);
return "index";
}
//}catch (Exception e){
//logger.debug("添加失败",e);
// }
return "index";
}
@RequestMapping("/logins")
public String login(String userName, String password, HttpSession session){
Object obj = session.getAttribute("userId");
if(obj==null||obj==""){
return "index";
}
UserInfo user = new UserInfo();
user.setPassword(password);
user.setUserName(userName);
UserInfo userf = userService.login(user);
if(userf!=null){
session.setAttribute("userId",userf.getId());
return "isLogin";
}
return "index";
}
@RequestMapping("/select")
@ResponseBody
public Object select(Message message){
Page<UserInfo> page = new Page<UserInfo>(1,10);
List<UserInfo> list = userService.findAllUser(page);
message.setData(list);
message.setMsg("success");
return message;
}
@RequestMapping("/index")
public String index(){
System.out.println("lll");
return "WebSocket";
}
@RequestMapping("db1")
@ResponseBody
public Object db1(){
Page<UserInfo> page = new Page<UserInfo>(1,10);
List<UserInfo> list = userService.findAllUser(page);
return list;
}
@RequestMapping("db2")
@ResponseBody
public Object db2(Message message,UserInfo users){
UserInfo user = new UserInfo();
user.setUserName(users.getUserName());
user.setPassword(users.getPassword());
user.setCreateTime(new Timestamp(System.currentTimeMillis()));
userService.inserts(user);
message.setMsg("success");
return message;
}
}
如果需要源码请移步下载:https://download.youkuaiyun.com/download/qq_37996327/10844595
欢迎大家访问我的码云:https://gitee.com/qwerdfs