news 2026/5/8 16:11:33

java连接数据库实现基本的增删改查_java增删改查,零基础入门到精通,收藏这篇就够了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java连接数据库实现基本的增删改查_java增删改查,零基础入门到精通,收藏这篇就够了

目录

一、在IDEA中配置数据库项目环境

1.创建项目

2.选择依赖

二、在JAVA中进行操作建立与数据库的连接

1、配置数据源——让程序可以访问到

2.配置数据源——让idea可以访问到

三、JAVA已经成功连接数据库,现在编写增删改的代码

2.运行sql语句,创建数据库和表

3.实体模型Model

4.程序框架

5.数据访问层DAO

5.1、接口CRUD+(先做新接口)

5.2、DAO层实现类–JdbcTemplate

6.业务处理层

6.1、业务处理层接口

[6.2、业务处理层实现类](about:blank#%C2%A06.2%E3%80%81%E4%B8%9A%E5%8A%A1%E5%A4%84%E7%90%86%E5%B1%82%E5%AE%9E%E7%8E%B0%E7%B1%BB)

7.测试新增

8.其他功能

8.1、DAo

8.1.1接口

8.1.2 Dao实现

8.2 业务层

8.2.1接口层

8.2.2实现层

四、测试其功能

1. 完整代码

2.运行代码

3.查看数据库


一、在IDEA中配置数据库项目环境

1.创建项目

2.选择依赖

二、在JAVA中进行操作建立与数据库的连接

1、配置数据源——让程序可以访问到

等待依赖下载完成,写入以下配置信息。包括驱动、数据源地址、数据源访问用户名和密码

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=123456
2.配置数据源——让idea可以访问到

在database里选择Data souce再选择MySQL,

在这一步,我们需要准备三样东西URL,账户用户名,密码
URL:表示跟数据库通信的地址
用户名:自然就是拥有数据库权限的账户了,这里使用根用户root
密码:登录数据库需要用户名及对应的密码

填写主机名/地址、mysql用户名及密码,下载驱动完成后做链接测试,测试连接成功,点击ok,如下图

三、JAVA已经成功连接数据库,现在编写增删改的代码

1.添加数据库和表

DROP DATABASE IF EXISTS `testdb`; create database testdb; Use testdb; DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `user_id` int NOT NULL AUTO_INCREMENT COMMENT '用户 ID', `user_name` varchar(255) DEFAULT NULL COMMENT '用户名', `status` varchar(255) DEFAULT NULL COMMENT '用户状态', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
2.运行sql语句,创建数据库和表

3.实体模型Model

4.程序框架

5.数据访问层DAO
5.1、接口CRUD+(先做新接口)

5.2、DAO层实现类–JdbcTemplate

(先实现新增接口)

Repository注解Dao实现类

Resource注入JdbcTemplate

6.业务处理层
6.1、业务处理层接口

(先做新增)

6.2、业务处理层实现类

@Service注解

7.测试新增

8.其他功能
8.1、DAo
8.1.1接口

8.1.2 Dao实现

UserDaoImpl代码

@Repository public class UserDaoImpl implements UserDao { @Resource private JdbcTemplate jdbcTemplate; @Resource private NamedParameterJdbcTemplate namedParameterJdbcTemplate; @Override public int addUser(User user){ String sql= "INSERT into `user` (`user`.user_name,`user`.`status`) VALUES(?,?);"; int update= jdbcTemplate.update(sql,user.getUserName(),user.getStatus()); return update; } @Override public int update(User user) { String sql="UPDATE `user` SET status=? WHERE user_name=?;"; return jdbcTemplate.update(sql,user.getStatus(),user.getUserName()); } @Override public int delete(User user) { String sql="DELETE FROM `user` where user_name=?;"; return jdbcTemplate.update(sql,user.getUserName()); } @Override public int count(User user) { String sql="SELECT COUNT(*) FROM `user` where `status`=?;"; return jdbcTemplate.queryForObject(sql,Integer.class,user.getStatus()); } @Override public List<User> getList(User user) { String sql="SELECT * FROM `user` where `status`=?;"; return jdbcTemplate.query(sql,new BeanPropertyRowMapper<User>(User.class),user.getStatus()); } @Override public User getUser(User user) { String sql="SELECT * FROM `user` where user_id=?;"; return jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),user.getUserId()); } @Override public void batchAddUser(List<Object[]> batchArgs) { String sql= "INSERT into `user` (`user`.user_name,`user`.`status`) VALUES(?,?);"; jdbcTemplate.batchUpdate(sql,batchArgs); } }
8.2 业务层
8.2.1接口层

UserService完整代码

public interface UserService { /** * 新增用户数据 * * @param user * @return */ public int addUser(User user); /**更新*/ public int updateUser(User user); /**删除*/ public int deleteUser(User user); /**统计用户数量 */ public int countUser(User user); /**查询*/ public List<User> getUserList(User user); //查询单个用户信息 public User getUser(User user); //批量增加用户 public void batchAddUser(List<Object[]> batchArgs); }
8.2.2实现层

四、测试其功能

1. 完整代码
public class UserServiceTests { // @Resource // private JdbcTemplate jdbcTemplate; @Autowired UserService userService; @Test void TestUser(){ User user=new User(); user.setUserName("小张"); user.setStatus("在线"); //新增一个用户 int i= userService.addUser(user); System.out.println("新增用户成功"); //更新 User user1=new User(); user1.setUserName("小张1"); user1.setStatus("在线"); int u=userService.updateUser(user); System.out.println("修改用户成功"); //批量新增 List<Object[]> batchArgs=new ArrayList<>(); Object[] o1={"xx","在线"}; Object[] o2={"yy","在线"}; Object[] o3={"cc","离线"}; Object[] o4={"tt","在线"}; Object[] o5={"pp","离线"}; batchArgs.add(o1); batchArgs.add(o2); batchArgs.add(o3); batchArgs.add(o4); batchArgs.add(o5); userService.batchAddUser(batchArgs); System.out.println("批量增加完毕"); //查询在线用户数量 User user2=new User(); user2.setStatus("在线"); int o=userService.countUser(user2); System.out.println("在线用户的个数为:"+o); //获取用户列表(user2在线) List<User> userList=userService.getUserList(user2); System.out.println("在线用户查询成功"); //遍历在线列表 for (User user4 : userList){ System.out.println("用户 ID:"+ user4.getUserId() + ",用户名:" +user4.getUserName()+",状态:"+user4.getStatus()); } }
2.运行代码

3.查看数据库

说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。

结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?”

先给出最直接的答案:一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!掌握AI能力的Java工程师比纯Java岗要吃香的多。

即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地!大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇!

如何学习AGI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

四、大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 5:30:40

揭秘Dify Iteration节点:如何高效处理复杂列表数据?

第一章&#xff1a;揭秘Dify Iteration节点的核心能力 Dify的Iteration节点是工作流编排中实现循环逻辑的关键组件&#xff0c;允许开发者对一组数据进行逐项处理&#xff0c;显著提升自动化流程的灵活性与可扩展性。通过该节点&#xff0c;用户可以在无需编写额外代码的情况下…

作者头像 李华
网站建设 2026/5/3 12:22:19

搭建MCP Server Node.js环境总出错?这6大核心组件你配对了吗?

第一章&#xff1a;MCP Server Node.js版开发环境搭建概述 搭建 MCP Server 的 Node.js 开发环境是实现服务端通信逻辑与业务处理的基础步骤。一个稳定且高效的开发环境能够显著提升开发效率&#xff0c;降低调试成本。本章将介绍核心依赖的安装、项目初始化配置以及运行调试的…

作者头像 李华
网站建设 2026/5/6 5:30:41

GPEN模型剪枝尝试:减小体积不影响画质的探索案例

GPEN模型剪枝尝试&#xff1a;减小体积不影响画质的探索案例 你有没有遇到过这样的问题&#xff1a;一个效果惊艳的人像修复模型&#xff0c;推理速度不错&#xff0c;但模型文件太大&#xff0c;部署到边缘设备或线上服务时内存吃紧&#xff1f;尤其是像GPEN这样基于GAN结构的…

作者头像 李华
网站建设 2026/4/29 8:15:38

dify+企业微信机器人组合使用秘籍:提升团队效率的稀缺方案首次公开

第一章&#xff1a;dify企业微信机器人组合使用的核心价值 将 Dify 与企业微信机器人结合&#xff0c;能够显著提升企业内部的信息自动化处理能力与智能交互水平。通过该组合&#xff0c;企业可以构建基于自然语言的智能助手&#xff0c;实现任务提醒、数据查询、流程审批等高频…

作者头像 李华
网站建设 2026/5/8 10:58:00

Emotion2Vec+ Large直播平台实时监控:主播情绪状态可视化看板

Emotion2Vec Large直播平台实时监控&#xff1a;主播情绪状态可视化看板 1. 引言&#xff1a;为什么我们需要主播情绪监控&#xff1f; 你有没有想过&#xff0c;一个主播在直播时的情绪变化&#xff0c;其实藏着巨大的商业价值&#xff1f;比如&#xff0c;当观众刷出一条争…

作者头像 李华
网站建设 2026/5/1 10:11:55

【踩坑】Nginx 413 Request Entity Too Large

我们在做上传视频或者大图片的时候&#xff0c;有时候会报413 Request Entity Too Large的错误&#xff0c;原因是nginx做了上传文件大小的限制&#xff0c;你需要加上一句配置代码。打开nginx/conf/nginx.conf&#xff0c;加入下面这行代码&#xff1a;http {client_max_body_…

作者头像 李华