一起学习Spring boot 2.1.X | 第五篇:Mybatis Druid 数据库(注解版)「建议收藏」

一起学习Spring boot 2.1.X | 第五篇:Mybatis Druid 数据库(注解版)「建议收藏」运行展示正题Springboot:2.1.5RELEASE;数据库(Mysql、Oracle);Mybatis;阿里云的连接池:Druid;步骤1.POM依赖<!–MyBatis–><dependency><groupId>org.mybatis.spring.boot</groupId>…

大家好,又见面了,我是你们的朋友全栈君。

运行展示

一起学习Spring boot 2.1.X | 第五篇:Mybatis Druid 数据库(注解版)「建议收藏」

正题

Spring boot :2.1.5RELEASE ;数据库(Mysql、Oracle);Mybatis;阿里云的连接池 : Druid ;

步骤

1.POM依赖

<!-- MyBatis -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>

<!-- MySQL -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<!-- Oracle -->
<!--<dependency>
	<groupId>com.oracle</groupId>
	<artifactId>ojdbc14</artifactId>
	<version>10.2.0.4.0</version>
/dependency>-->

<!-- Druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.16</version>
</dependency>

 

2.application.properties

#Mybatis+MySQL+Druid
#Mysql时区异常URL后添加serverTimezone=GMT%2B8/连接池:typr/初始化连接:initialSize/最大空闲数:maxActive/最小空闲数:minIdle/获取连接等待时间:maxWait/最小等待时间:minEvictableIdleTimeMillis/关闭后不自动提交:defaultAutoCommit
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
#spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver

# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
#spring.datasource.useGlobalDataSourceStat=true

spring.datasource.defaultAutoCommit=false

 

3.其他文件生成

User.java

public class User {

    public Integer uid;
    public String uname;
    public String upassword;

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public String getUanme() {
        return uname;
    }

    public void setUanme(String uanme) {
        this.uname = uanme;
    }

    public String getUpassword() {
        return upassword;
    }

    public void setUpassword(String upassword) {
        this.upassword = upassword;
    }

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", uname='" + uname + '\'' +
                ", upassword='" + upassword + '\'' +
                '}';
    }
}

UserDao.java

import com.spring.boot.bean.User;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface UserDao {

    @Select("select * from user")
    public List<User> AllUser();

    @Update("<script> " + "update user" +
            "<set>"+  "<if test='uname!=null'>uname=#{uname},</if>"+
            "<if test='upassword!=null'>upassword=#{upassword},</if>"+
            "</set>"+ "where uid=#{uid}"+
            " </script> ")
    public int Update(User user);

}

UserService.java

import com.spring.boot.bean.User;
import java.util.List;

public interface UserService {

    public List<User> AllUser();

    public int Update(User user);

}

 

UserImpl.java
主要是注解问题Service可以命名,主要还是看自己的日常使用

import com.spring.boot.bean.User;
import com.spring.boot.dao.UserDao;
import com.spring.boot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public List<User> AllUser() {

        return userDao.AllUser();
    }

    @Override
    public int Update(User user) {
        return userDao.Update(user);
    }
}

UserController.java

 

import com.spring.boot.bean.User;
import com.spring.boot.service.impl.UserImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;

@RestController
public class UserController {

    @Autowired
    private  HttpServletRequest request;

    @Autowired
    private UserImpl userimpl;

     @RequestMapping("/api/login")
    public String Login(User user) {

        HttpSession session = request.getSession();

        //存入Session
        //session.setAttribute("user", user);
        //单位为秒,设置为-1时不再失效
        //session.setMaxInactiveInterval(60 * 60 * 24 * 30);
        //注销登陆
        //request.getSession().removeAttribute("user");

        return userimpl.UserAll(user).toString();
    }
}

 

注:userDao报红解决方法一起学习Spring boot 2.1.X | 第五篇:Mybatis Druid 数据库(注解版)「建议收藏」

 

注:启动类加入注解@MapperScan(“路径)
小编这是Java web项目,@Controller注解是界面、@RestController是写接口

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163542.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 去除字符串两端的引号[通俗易懂]

    python 去除字符串两端的引号[通俗易懂]使用遥感影像头文件时,需要获得里面的日期和时间信息,得到的字符串两端带有双引号,可以使用eval()函数去除。a='”srting”‘print(a)b=eval(a)print(b)结果:”srting”srting

    2022年6月9日
    127
  • srvctl start_执行命令ls>c

    srvctl start_执行命令ls>cSRVCTL概述SRVCTL是ORACLERAC集群配置管理的工具,可以管理Database、Instance、ASM、Service、Listener和NodeApplication,NodeApplication包括GSD,ONS,VIP。srvctl的命令格式为srvctl&lt;command&gt;&lt;target&gt;[options]srvctlUs…

    2022年9月11日
    0
  • jdk1.7 hashmap扩容_Java并发实现原理:JDK源码剖析

    jdk1.7 hashmap扩容_Java并发实现原理:JDK源码剖析HashMap简介:HashMap在底层数据结构上采用了数组+链表+红黑树,通过散列映射来存储键值对数据因为在查询上使用散列码(通过键生成一个数字作为数组下标,这个数字就是hashcode)所以在查询上的访问速度比较快,HashMap最多允许一对键值对的Key为Null,允许多对键值对的value为Null。它是非线程安全的。在排序上面是无序的。HashMap的主要成员变量…

    2022年9月21日
    0
  • Discuz X3.2 论坛搬家教程「建议收藏」

    Discuz X3.2 论坛搬家教程「建议收藏」很多站长第一次做网站的时候,无奈选择了速度不是很稳定的空间,慢慢会发现有很多物美价廉速度相当快的空间这个时候,站长在网站搬家的过程中就会遇到很多困难,今天老袋鼠给大家详细讲解一下discuz论坛搬家的详细过程第一步:备份网站数据进入后台—站长—数据库—备份,数据备份类型选择“Discuz!和UCenter数据”,备份成功以后,数据自动保存在data文件夹下。第二步

    2022年7月25日
    11
  • Windows Server 2012 R2/2016 此工作站和主域间的信任关系失败[通俗易懂]

    Windows Server 2012 R2/2016 此工作站和主域间的信任关系失败[通俗易懂]今天给客户Exchange服务器出现了脱域的情况,当使用域帐户登录时出现了“此工作站和主域间的信任关系失败”的情况。造成这种的可能原因:域内存在了多台SID一样的计算机;计算机对象在AD中意外删除;客户端的帐户密码更新失败;时间超过5分钟;AD复制问题等等;计算机登录现象:解决方法:首先确认在ActiveDirectory的ComputersOU(其他OU也可以)中存在该计算机对象;使用服务器的本地管理员(.\administrator)登录计算机;使用本地管理…

    2022年10月19日
    0
  • eclipse使用–设置自动补全代码

    1、Java设置自动补全(1)设置自动补全依次点击Window–>Perferences(选项设置)–>Java–>Editor(编辑)–>ContentAssist(内容辅助/代码提示)然后在“ContentAssist”页面中,可以看到下面有一个AutoActivation中有一个Autoactivationtrigge…

    2022年4月4日
    783

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号