SpringBoot整合JDBC

1.  创建一个新的Spring Boot项目或者使用现有的Spring Boot项目作为基础

2.  在项目的pom.xml文件中添加Spring Boot JDBC和MySQL依赖

打开pom.xml文件,添加以下依赖:

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

  3.  配置数据库连接

application.propertiesapplication.yml文件中,添加以下的数据库连接配置:

使用application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

使用application.yml

spring:datasource:url: jdbc:mysql://localhost:3306/mydatabaseusername: rootpassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Driver

请确保替换urlusernamepassworddriver-class-name与你实际使用的数据库配置一致。

4.  创建数据访问对象(DAO)

创建一个数据访问对象用于操作数据库。以下是一个简单的示例:

@Repository
public class UserDao {private final JdbcTemplate jdbcTemplate;public UserDao(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}public void addUser(User user) {String sql = "INSERT INTO user (id, username, email) VALUES (?, ?, ?)";jdbcTemplate.update(sql, user.getId(), user.getUsername(), user.getEmail());}public User getUserById(int id) {String sql = "SELECT * FROM user WHERE id = ?";return jdbcTemplate.queryForObject(sql, new Object[]{id}, (rs, rowNum) ->new User(rs.getInt("id"), rs.getString("username"), rs.getString("email")));}public List<User> getAllUsers() {String sql = "SELECT * FROM user";return jdbcTemplate.query(sql, (rs, rowNum) ->new User(rs.getInt("id"), rs.getString("username"), rs.getString("email")));}public void updateUser(User user) {String sql = "UPDATE user SET username = ?, email = ? WHERE id = ?";jdbcTemplate.update(sql, user.getUsername(), user.getEmail(), user.getId());}public void deleteUser(int id) {String sql = "DELETE FROM user WHERE id = ?";jdbcTemplate.update(sql, id);}}

在这个例子里,我们使用JdbcTemplate执行数据库操作。JdbcTemplate是Spring提供的一个简单易用的JDBC访问模板。

5. 创建实体类

创建一个代表数据库中表结构的实体类。例如,创建一个User实体类:

public class User {private int id;private String username;private String email;// 省略构造函数和getter/setter方法}

6.使用数据库操作

在你的业务逻辑中使用数据访问对象进行数据库操作。例如,在一个服务类中使用UserDao来执行数据库操作:

@Service
public class UserService {private final UserDao userDao;public UserService(UserDao userDao) {this.userDao = userDao;}public void addUser(User user) {userDao.addUser(user);}public User getUserById(int id) {return userDao.getUserById(id);}public List<User> getAllUsers() {return userDao.getAllUsers();}public void updateUser(User user) {userDao.updateUser(user);}public void deleteUser(int id) {userDao.deleteUser(id);}
}

在这个例子中,我们注入了UserDao,并在相应的方法中调用UserDao的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/7668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA+SpringBoot + Mybatis + Shiro+Bootstrap+Mysql资产设备管理系统

IDEASpringBoot Mybatis ShiroBootstrapMysql资产设备管理系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.用户新增3.用户设置4.岗位管理5. 审批节点6. 人员查询7. 组织设置8. 人员调整9.角色设置10.角色模块映射11.模块设置12.应用模块13.光纤交换机14.服务器15.网…

C++之文件操作

1.C文件操作 C中文件操作头文件:fstream。   文件类型&#xff1a;文件文件和二进制文件。 文件操作三大类&#xff1a;     ofstream 写操作     ifstream 读操作     fstream:读写操作 文件打开方式&#xff1a; 标志说明ios::in只读ios::out只写,文件不存在则…

大数据面试题:HBase读写数据流程

面试题来源&#xff1a; 《大数据面试题 V4.0》 大数据面试题V3.0&#xff0c;523道题&#xff0c;679页&#xff0c;46w字 参考答案&#xff1a; 1、写数据流程 1&#xff09;Client先访问zookeeper&#xff0c;获取hbase:meta表位于哪个Region Server。 2&#xff09;访…

SQL 常见函数整理 _ LTRIM/RTRIM (去除字符串首尾空字符)

LTRIM() 1. 用法 用于去除字符串左侧&#xff08;开头&#xff09;的空格或指定的字符。它返回一个新的字符串&#xff0c;其中左侧的空格或指定字符被删除。 2. 基本语法 LTRIM ( string )参数说明&#xff1a; string&#xff1a;必需&#xff0c;要去除空格或指定字符的字…

使用TensorFlow训练深度学习模型实战(上)

大家好&#xff0c;尽管大多数关于神经网络的文章都强调数学&#xff0c;而TensorFlow文档则强调使用现成数据集进行快速实现&#xff0c;但将这些资源应用于真实世界数据集是很有挑战性的&#xff0c;很难将数学概念和现成数据集与我的具体用例联系起来。本文旨在提供一个实用…

P1149火柴棒等式题解

P1149[NOIP2008 提高组] 火柴棒等式 题目描述 给你 n n n 根火柴棍&#xff0c;你可以拼出多少个形如 A B C ABC ABC 的等式&#xff1f;等式中的 A A A、 B B B、 C C C 是用火柴棍拼出的整数&#xff08;若该数非零&#xff0c;则最高位不能是 0 0 0&#xff09;。用…

详解Mybatis查询之resultType返回值类型问题【4种情况】

编译软件&#xff1a;IntelliJ IDEA 2019.2.4 x64 操作系统&#xff1a;win10 x64 位 家庭版 Maven版本&#xff1a;apache-maven-3.6.3 Mybatis版本&#xff1a;3.5.6 文章目录 引言一、查询单行数据返回单个对象二、查询多行数据返回对象的集合三、 查询单行数据返回Map[Key,…

STN:Spatial Transformer Networks

1.Abstract 卷积神经网络缺乏对输入数据保持空间不变的能力&#xff0c;导致模型性能下降。作者提出了一种新的可学习模块&#xff0c;STN。这个可微模块可以插入现有的卷积结构中&#xff0c;使神经网络能够根据特征图像本身&#xff0c;主动地对特征图像进行空间变换&#x…

15. 三数之和

题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 **注意&#xff1a;**答案中不可以包含重复的三…

Maven学习笔记

Maven学习笔记 一、MAVEN基础1.1、Maven作用1.2、Maven基础概念1.2.1、仓库1.2.2、坐标1.2.2、仓库配置 1.3、 手动写一个maven程序1.4、依赖管理1.5、生命周期与插件1.5.1、构建生命周期1.5.2、插件 一、MAVEN基础 1.1、Maven作用 Maven的本质是一个项目管理工具&#xff0c…

使用uniapp打包cocos游戏成安卓苹果APP并接入admob,unity,applovin,vungle等广告平台

最近一段时间一直在转做海外项目&#xff0c;由于国内应用市场不再接收休闲小游戏之类应用&#xff0c;并且如果走游戏分类需要游戏版号&#xff0c;微信小程序虽然政策要求没有这么严&#xff0c;但只能接微信一家广告平台&#xff0c;广告资源有限&#xff0c;除非创意类游戏…

关于一些C++、Qt、Python方面的术语

杂鱼之前纯粹用python没细致理解过的术语整理一下&#xff0c;常看常新&#xff08; 定义 (Definition)&#xff1a; 定义是指给一个实体分配内存空间&#xff0c;以便在程序中使用。在C和Python中&#xff0c;这个实体可以是变量、函数或类。在C中&#xff0c;定义通常是在声…

【计算机网络】socket编程基础

文章目录 1. 源IP地址和目的IP地址2. 理解MAC地址和目的MAC地址3. 理解源端口号和目的端口号4. PORT与PID5. 认识TCP协议和UDP协议6. 网络字节序7. socket编程接口7.1 socket常见API7.2 sockaddr结构 1. 源IP地址和目的IP地址 因特网上的每台计算机都有一个唯一的IP地址&#…

性能优化问题

提升首屏的加载速度&#xff0c;是前端性能优化中「最重要」的环节&#xff0c;这里笔者梳理出一些 常规且有效 的首屏优化建议 1、路由懒加载 SPA 项目&#xff0c;一个路由对应一个页面&#xff0c;如果不做处理&#xff0c;项目打包后&#xff0c;会把所有页面打包成一个文…

2023“钉耙编程”中国大学生算法设计超级联赛(2)

“钉耙编程"(2)1001 | hdu7287&#xff1a;Alice Game Alice 和 Bob玩游戏&#xff0c;给定 n n n和 k k k&#xff0c;初始有 n n n个石头排成一排&#xff0c;两人轮流执行以下操作&#xff1a; 选择一段个数 ≤ k \le k ≤k的石头&#xff0c;直接拿掉选择一段个数 >…

Android平台如何实现第三方模块编码后(H.264/H.265/AAC/PCMA/PCMU)数据实时预览播放

技术诉求 我们在做GB28181设备对接模块和RTMP直播推送模块的时候&#xff0c;遇到这样的技术需求&#xff0c;设备&#xff08;如执法记录仪&#xff09;侧除了采集传统的摄像头外&#xff0c;还需要对接比如大疆等第三方数据源&#xff0c;确保按照GB28181规范和RTMP协议规范…

【后端面经-Spring】Spring简介

【后端面经-Spring】Spring简介 1. Spring简介2. Spring模块3. Spring核心特性4. Spring的后续拓展面试模拟参考资料 1. Spring简介 Spring是为了简化java项目开发设计的一款设计层面开源框架&#xff0c;其设计目的就是为了“简化开发”。 它使用分层架构&#xff0c;解决业务…

[NLP]Huggingface模型/数据文件下载方法

问题描述 作为一名自然语言处理算法人员&#xff0c;hugging face开源的transformers包在日常的使用十分频繁。在使用过程中&#xff0c;每次使用新模型的时候都需要进行下载。如果训练用的服务器有网&#xff0c;那么可以通过调用from_pretrained方法直接下载模型。但是就本人…

后端服务迁移方案及过程记录

阶段时序动作双写数据对比1新rdb集群上线双写数据对比2新服务上线&#xff0c;无流量双写数据对比2后端自己发起的流程比如job&#xff0c;新服务上线一份新的&#xff0c;独立运行双写数据对比2消费二方mq&#xff0c;新服务使用新的消费组消费原有消息双写数据对比3新旧服务比…

React Dva项目中.roadhogrc.mock.js直接自动导入mock目录下所有文件方式

上文 React Dva项目中模仿网络请求数据方法 中&#xff0c;我们书写了Dva项目模拟后端数据的方式 但是 我们.roadhogrc.mock.js中的这个处理其实并不好用 我们还需要一个一个的引入 我们可以直接靠一段代码 import fs from fs; import path from path; const mock {} fs.re…