@autowired注解原理_SpringBoot - 整合Mybatis+Druid+数据库(注解版)

运行展示

66e3573400b0ce032b2b1c53adb9fb7b.png

正题

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=20
spring.datasource.maxActive=50
spring.datasource.minIdle=10
#spring.datasource.maxWait=60000
#spring.datasource.minEvictableIdleTimeMillis=3600000
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

注解的形式,小编感觉比XML好用

import com.spring.boot.bean.User;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
 
import java.util.List;
 
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);
 
}

UserImpil.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();
    }
}
 

8e9d03295e68b89ecaaec272d3027357.png

注:userDao报红解决方法

注:启动类加入注解@MapperScan("路径)

小编这是Java web项目,@Controller注解是界面、@RestController是写接口

最后与大家分享一份Java面试宝典「Java核心知识点」囊括JVM,Spring等29个技术

这份资料绝对是你Java架构进阶之路的不二选择,如果你心动了就看文末得到领取方式吧!全网最真实资料,无虚假无套路,免费获取学习,已经有一位小伙伴看完之后顺利拿到Offer了哟,如果这位小伙伴看到本篇文章记得给个五星好评啊!
1.JVM

3c140455cff62b9d98e727ab23cb1dcc.png


2.Java集合

77d25f709857cabf0c036c91ea685a3f.png


3.Java多线程并发

c7654fe806d11a1f6596a169e2dfc90b.png

fbafc21bfedc725e9d0397ec752d3a34.png


4.Java基础

8f99f66c32747320c914306091c21df8.png


5.Spring原理

3efdfc8d0a1cf34a91924a84bf9ce5de.png

dcab34da50e88f7ffd22392488220770.png


6.微服务

b3d0691596d1743a29329f87b84f7262.png


7.Netty与RPC

30ed86af61bcc92b8e8b83558af48372.png


8.网络

02d45d0cc3b4fdc40a41fa6343f452cd.png


9.日志

cd8a3ed36449bde8d9cae72a00856c65.png


10.Zookeeper

091fe0155efe3be8007f2bd1de208383.png


11.Kafka

2f4af4b727a4dcb47d40dc37d101c2fb.png


12.RabbitMQ

0a797f14b951bfcb56212f13b0bcd151.png


13.Hbase

ffa9d4005155942f0cc830ef94b4fab3.png


14.MongoDB

6522746ae30309d54190e98de466acfd.png


15.Cassandra

17394137517833a431cdc41323ff880b.png


16.设计模式

bde23b7a9cb400f6e629f89db5b78611.png

f048cf190dbcf7aa09127a65710bd7db.png

d5f86d8582bf48e7031148a85611ec33.png


17.负载均衡

4dcba69d05a976700964d48d2043bb3a.png


18.数据库

88fa95009e2dddb89db47f760cbc091c.png


19.一致性算法

d7cabd8258624c9ede514f38509d5da7.png


20.Java算法

00d56f68a3c0ea74f49d115f2ca1f9b9.png

7a9105e1504fbd6412aa8e86f0cc9f9d.png


21.数据结构

2e0641367b9f2d434dbd3b1346c44f36.png


22.加密算法

3763f8f42eaf7654fd3cb9699cdcb2b2.png


23.分布式缓存

931e69b21094e8ac6c026dd73246e398.png


24.Hadoop

ae9da85468a3a4872239e2afce92d61c.png


25.Spark

ecfed113cacddb38a55a5949c5ce1c1c.png


26.Storm

8e8b9e0713dfcac6c16c39df577a7c1b.png


27.YARN

281853d547263dd49fb892c2b0210ee0.png


28.机器学习

b8e2b0f0f39d11b79a749af5239d774e.png


29.云计算

d43caaa6743e790832626c3bd386c3d3.png

点赞+关注,然后私信回复“资料”即可获得面试宝典【Java核心知识点】的领取方式哟。

d83f7439439c278b0397357d2949ed03.png

重要的事情说三遍:
点赞+关注,私信回复“资料”
点赞+关注,私信回复“资料”
点赞+关注,私信回复“资料”感谢大家的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值