6.从零开始学springboot-连接数据库的几种方式-JDBC

springboot整合Mybatis简单程序以及数据库连接池 springboot整合Mybatis简单程序入门以及数据库连接池技术 阅读详情

前言

上一节实现了JPA操作mysql,这一节我们实现jdbc也就是jdbcTemplate操作mysql。

创建空项目

首先我们使用IDEA创建一个基础的springboot2.0的项目(创建的过程略,可以参考前几章),无需加载任何依赖(依赖还是手动加载感悟更深)。

添加依赖

pom.xml:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

如图
1.png

添加配置

application.yml:

spring:
  datasource:
    url: jdbc:mysql://192.168.145.131:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

如图
2.png

建库

创建test库,建表:

CREATE TABLE `person` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `person` VALUES ('1', '1', '1');
INSERT INTO `person` VALUES ('2', '2', '2');
INSERT INTO `person` VALUES ('3', '3', '3');
INSERT INTO `person` VALUES ('4', '4', '4');
INSERT INTO `person` VALUES ('5', '5', '5');
INSERT INTO `person` VALUES ('6', '6', '6');
INSERT INTO `person` VALUES ('7', '7', '7');
INSERT INTO `person` VALUES ('8', '8', '8');
INSERT INTO `person` VALUES ('9', '9', '9');
INSERT INTO `person` VALUES ('10', '10', '10');
INSERT INTO `person` VALUES ('11', '11', '11');

目录结构

如图,请自行建立对应的package和class
3.png

完善

entity/Person:

package com.mrcoder.sbjdbc.entity;

public class Person {

    private Integer id;
    private String name;
    private Integer age;

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age + '}';
    }

    public Integer getId() {
        return id;
    }

    public Integer getAge() {
        return age;
    }

    public String getName() {
        return name;
    }
}

dao/PersonDao:

package com.mrcoder.sbjdbc.dao;

import com.mrcoder.sbjdbc.entity.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public class PersonDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public List<Person> getPersonList() {

        List<Person> list = jdbcTemplate.query("select * from person", new Object[]{}, new BeanPropertyRowMapper(Person.class));
        if (list != null && list.size() > 0) {
            return list;
        } else {
            return null;
        }

    }
}

service/PersonService:

package com.mrcoder.sbjdbc.service;

import com.mrcoder.sbjdbc.entity.Person;

import java.util.List;

public interface  PersonService {
    List<Person> getPersonList();
}

service/impl/PersonServiceImpl:

package com.mrcoder.sbjdbc.service.impl;

import com.mrcoder.sbjdbc.dao.PersonDao;
import com.mrcoder.sbjdbc.entity.Person;
import com.mrcoder.sbjdbc.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class PersonServiceImpl implements PersonService {
    @Autowired
    PersonDao personDao;

    @Override
    public List<Person> getPersonList() {
        return personDao.getPersonList();
    }
}

controller/Persontroller:

package com.mrcoder.sbjdbc.controller;

import com.mrcoder.sbjdbc.entity.Person;
import com.mrcoder.sbjdbc.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class PersonController {
    @Autowired
    PersonService personService;

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public List<Person> getPersonList() {
        return personService.getPersonList();
    }

}

运行

4.png

项目地址

https://github.com/MrCoderStack/SpringBootDemo/tree/master/sb-jdbc

https://gitee.com/MrCoderStack/SpringBootDemo/tree/master/sb-jdbc

请关注我的订阅号

订阅号.png

Springboot项目中Mybatis与自写原生jdbc连接,需要分两个数据库分别连接吗?为什么? ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏「Bug调优」,都是实战中碰到的Bug,希望对你有所帮助。到此,咱们下期拜拜。码字不易,如果这篇文章对你有所帮助,帮忙给bugj菌来个,您的支持就是我坚持写作分享知识点传播技术的最大动力。「猿圈奇妙屋」; 阅读详情

相关推荐

基于SpringBoot的Presto数据库JDBC连接实战项目

构建基于AST(抽象语法树)的SQL审查引擎,是实现精细化控制的关键。以下是一个简化的实现框架:@Componenttry {if (!代码逻辑逐行解读分析:第6–7行:尝试解析SQL,任何语法错误均视为潜在攻击。第10–11行:强制要求必须是SELECT语句。第14–15行:禁止,防止写入操作。第18–21行:递归检查子查询是否存在非查询结构,增强防御深度。该拦截器应在调用前执行,作为前置守门人。

weixin_29363791的博客 1082

SpringBoot 项目连接数据库

springboot 项目连接数据库

qq_49288154的博客 1万+

告别重复劳动:用Python+pywinauto打造你的微信个人助理(自动回复/收款/定时发消息)

本文介绍如何利用Python和pywinauto库构建微信个人助手,实现自动回复、定时消息、智能收款等功能,告别重复劳动。通过详细的代码示例和配置指南,帮助开发者快速掌握微信自动化技术,提升工作效率。

weixin_42568801的博客 328

SpringBoot整合数据库连接

通过this调用同一个service中的方法,this是指service实现类对象本身,不是代理对象,就相当于方法中的代码粘到了大方法里面,相当于还是一个方法。t_user中数据不会变化,因为执行这条sql的时候报错了嘛,但是t_book这个表里面的库存减一了,也就是“买书三步骤”中的第三步报错了,但是第二步依旧没回滚。若B方法执行的过程中,只要有抛出异常,B事务方法回滚,A不会回滚,即不影响A中的其他事务的执行(如第二次买书失败不影响第一次买书成成功)mybatis默认不开启驼峰命名规则。

m0_56799642的博客 1万+

Aruba无线控制器实战:如何用Client Match优化企业办公区漫游(附SNR调优技巧)

本文深入解析了如何利用Aruba无线控制器的Client Match功能优化企业办公区无线漫游体验。通过实战配置,详细阐述了基于SNR(信噪比)的精细化调优策略,包括阈值设定、负载均衡与场景化参数调整,旨在解决终端粘滞、乒乓漫游等问题,实现智能、平滑的无缝漫游。

weixin_28318011的博客 224

Arduino智能小灯DIY:人体感应+光线感应+蓝牙控制全攻略(附完整代码)

本文提供了一份完整的Arduino智能小灯DIY制作指南。项目融合了人体感应、光线感应与蓝牙控制三大功能,通过详细的硬件清单、电路连接图、核心逻辑讲解及附带的完整代码,手把手教你打造一个能自动感知环境与人、并支持手机远程控制的智能照明装置,是入门智能家居和物联网开发的绝佳实践。

java5的博客 1094

SpringBoot 是怎样连接数据库的

本文介绍了 Spring Boot 是如何连接数据库的,包括其原理和代码示例。通过使用 Spring Data JPA,Spring Boot 可以轻松地连接各种类型的数据库,并实现基本的 CRUD 操作。在实际开发中,可以通过修改配置文件和创建实体类、Repository 接口和控制器类来访问数据库。

Java徐师兄的博客 6640

基于Codex平台构建AI技能:抖音爆款分析与带货视频生成实战

这次我们来看一个基于 Codex 平台构建 AI 技能(Skill)的实战项目。核心目标很直接:利用 AI 能力,自动化分析抖音平台的爆款内容,并生成可用于带货的视频。这听起来像是内容创作领域的“自动化流水线”,它解决的核心痛点是:人工分析爆款、撰写脚本、制作视频的效率瓶颈。 对于技术开发者和内容创作者而言,这个项目的价值在于将“内容策略分析”和“视频内容生成”两个环节通过 Codex 的 Skill 机制串联起来,形成一个可定制、可批量执行的自动化工作流。我们最关心的几个问题包括:这个方案的技术门槛高不高

weixin_29054399的博客 484

SpringBoot 连接数据库的几种方式

本文介绍了 Spring Boot 是如何连接数据库的,包括其原理和代码示例。通过使用 Spring Data JPA,Spring Boot 可以轻松地连接各种类型的数据库,并实现基本的 CRUD 操作。在实际开发中,可以通过修改配置文件和创建实体类、Repository 接口和控制器类来访问数据库。

徐师兄的博客 9760

全志V3S嵌入式驱动开发(uboot移植)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 安装了ubuntu操作系统,有了开发板,下面就可以进行我们的开发工作了。第一步,我们要面临的问题就是uboot移植。一般来说,嵌入式的基础环境就是uboot、linux和rootfs。uboot完成一些基本硬件的初始化,比如cpu频率设置、ddr初始化、加载linux等等。早前,uboot的烧入比较麻烦,需要jtag工具才能完成。现在来说,很多soc支持系统直接从sd卡启动,这对开发

嵌入式-老费,一个分享专业嵌入式知识的blog 2817

YOLOP v2!YOLOv7结合YOLOP的多任务版本 更好、更快、更强

YOLOP v2!YOLOv7结合YOLOP的多任务版本 更好、更快、更强

jacke121的专栏 2705

springboot连接数据库的三种方式

转载自原链接 使用数据库是开发应用的基本基础,那么,使用Spring Boot如何连接数据库呢? 前提,需要知道如何建一个Spring Boot项目,可参照:https://www.jianshu.com/p/d6e6c84cd190 一、准备工作: 1、建一个简单的数据库,名为springboot_db,在其下建一个表,名为t_author,脚本如下: 2、添加配置文件,可用使用yaml配置,即application.yml(与application.properties配置文件,没什么太大的区别)连接

Victorsb1的博客 1万+

Spring AI 实战:如何使用 MCP Server 搭建 MCP 天气查询服务

MCP(Model Context Protocol)是 Anthropic 提出的一种开放协议,它定义了AI 模型与外部世界交互的标准方式。通俗地说:大模型本身只拥有训练数据中的知识,它不知道今天的天气、无法查询你的数据库、不能调用你的内部 API。MCP 就是解决这个问题的"桥梁"——它让模型能够发现并使用外部工具(Tools),就像人用手去操作工具一样。角色职责对应依赖MCP Server暴露工具(Tool),供模型调用MCP Client连接 Server,让模型发现和使用工具本文我们先聚焦。

SmartSi 753

在Spring Boot项目中连接SQL Server的几种方式

连接SQL Server是许多Spring Boot项目中常见的需求之一。本篇博客将介绍在Spring Boot项目中配置连接SQL Server的几种方式,并提供相应的依赖和YAML配置示例,帮助开发者轻松地实现数据库连接。

Java老兵的后端进阶与AI前沿探索之路。 2万+

AISBench benchmark评测工具实操-精度评测场景-采用命令行指定模型和数据集的方式

搭建AISBench benchmark测试环境,包括创建conda环境、安装AISBench benchmark、处理ceval数据集,并修改相关配置文件以适配测试需求。最终,通过启动精度测评,验证了模型在指定环境下的性能。

m0_50105717的博客 2040

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SpringBoot +JDBC连接Mysql数据库

SpringBoot 使用JDBC连接Mysql数据库     Spring连接Mysql的方式有很多,例如JDBC,Spring JPA,Hibeirnate,Mybatis等,本文主要介绍使用最简单、最底层的JDBC方式来连接Mysql数据库,JDBC连接数据库,主要是注入JdbcTemplate,使用JdbcTemplate来操作数据库。 一、在mysql中的test库中建立user表,...

oyc的博客 6万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

5.从零开始学springboot-连接数据库的几种方式-JPA

前言 我们已经学习了如何通过IDEA创建一个简单的springboot helloworld了,那么springboot如何连接mysql呢? 几种方式 Spring为各种支持的持久化技术,都提供了简单操作的模板和回调,目前大概有如下几种 ORM持久化技术 模板类 JDBC org.springframework.jdbc.core.JdbcTemplate Hibernate...

CTO技术的博客 1038

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Springboot通过JDBC连接SQL Server数据库

Springboot通过JDBC连接SQL Server数据库

weixin_46660849的博客 11万+

SpringBoot项目中使用原生的jdbc连接数据库

有一句古话叫做杀鸡焉用宰牛刀,项目中一些简单的数据库访问的地方完全不用ibatis、heibernate这样的大哥出马。 使用原生的jdbc就绰绰有余,那么接下来就使用springboot来整合jdbc原生 1.准备maven文件 &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/group...

标签:Python | 算法 | 人工智能 | 编程实战 | 技术深挖 核心领域: 编程语言:Python/Java/C++ 实战技巧与底层实现解析 算法与数据结构:高频面试题优化解、竞赛算法模板、代码效率优化 人工智能:机器学习模型推导、 4771

Spring Boot采用JDBC方式连接数据库

spring boot采用jdbc方式连接数据库

concisefreedom的博客 1万+

Java数据库连接(从JDBC->Mybatis->SpringBoot)

本文介绍了Java数据库连接的基本概念和技术栈。首先解释了JDBC作为Java官方提供的数据库连接API规范,其接口由Java定义,具体实现由各数据库厂商提供(即数据库驱动)。然后介绍了数据源(DataSource)作为JDBC的升级版,提供了连接池、SQL监控等功能,提高了性能和可维护性,并对比了Druid、c3p0等常见数据源。最后讲解了Mybatis框架,它是对JDBC的进一步封装,实现了SQL与Java代码的分离,简化了数据库操作。文章还提供了基础代码示例,展示了从DriverManager到Dat

2504_92097948的博客 843

SpringBoot入门篇 04、连接数据库(多种整合方式)

文章目录前言前提准备IDEA连接mysql一、整合JDBC代码实现原理分析二、整合Druid数据源三、整合JPA参考文章 前言 本篇博客是根据【狂神说Java】SpringBoot最新教程IDEA版通俗易懂 整理的学习笔记,若文章中出现相关问题,请指出! 所有博客文件目录索引:博客目录索引(持续更新) 前提准备 安装mysql5.7(或者其他):mysql5.7安装教程 IDEA连接mysql IDEA右边点击Database—+号—选择mysql 填写对应信息 点击测试,可能会出现错误,见下方

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 5819

SpringBoot之Jdbc使用druid数据源连接Oracle数据库

参考文章:springboot使用druid连接池连接Oracle数据库的基本配置 springboot---整合druid连接池---连接oracle数据库---整合mybatis---整合thymeleaf---日志配置

justlpf的专栏 9736

数据库连接池中连接有效性探测的几种方式

但凡涉及到数据库的应用,基本上都离不开数据库连接池工具的使用,但在使用时,对于应用而言,无需关注你获取到的连接是否可用,不像之前,有个著名的MySQL连接8小时问题,现在根本不用关心从连接池拿到的连接是否可用,你拿到了说明就是可用的,这一点是数据库连接池的框架保证的,常见的数据库连接池都有保证,今天主要探讨下SpringBoot默认的数据库连接池HikariCP和Durid连接池在连接的有效性探测的差异。

雨潇的专栏 4425

Spring Boot JDBC 连接数据库

文本将对在Spring Boot构建的Web应用中,基于MYSQL数据库的几种数据库连接方式进行介绍。 包括JDBC、JPA、MyBatis、多数据源和事务。 JDBC 连接数据库 1、属性配置文件(application.properties) 如果使用JNDI,则可以替代 spring.datasource 的 url、username、password,如: 值得一提的是,无论是Spri...

StriveBing的博客 338
上一篇: 5.从零开始学springboot-连接数据库的几种方式-JPA
下一篇: 7.从零开始学springboot-整合mybatis-annotations注解方式
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值