springboot+jdbcTemplate的整合实现crud

2024-05-29 08:08

本文主要是介绍springboot+jdbcTemplate的整合实现crud,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一 搭建

可以参考另一种方式:https://blog.csdn.net/u011066470/article/details/88086589

1.1 项目结构

1.2 pom文件

    <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency><!-- 以下是>spring boot依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- springboot-jdbc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- springboot-mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency>

1.3 controller

package com.ljf.spring.boot.demo.controller;import com.ljf.spring.boot.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @ClassName: UserController* @Description: TODO* @Author: liujianfu* @Date: 2021/08/18 09:31:48 * @Version: V1.0**/
@RestController
public class UserController {@Autowiredprivate UserService userService;@RequestMapping("/query")public Object query(String name){return  userService.queryUser(name);}
}

1.4 service

1.接口层

package com.ljf.spring.boot.demo.service;import com.ljf.spring.boot.demo.dao.UserDao;
import com.ljf.spring.boot.demo.model.UserDto;public interface UserService {public UserDto queryUser(String name);
}

2.实现层

package com.ljf.spring.boot.demo.service.impl;import com.ljf.spring.boot.demo.dao.UserDao;
import com.ljf.spring.boot.demo.model.UserDto;
import com.ljf.spring.boot.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;/*** @ClassName: UserServiceImpl* @Description: TODO* @Author: liujianfu* @Date: 2021/08/18 09:37:56 * @Version: V1.0**/
@Service
public class UserServiceImpl implements UserService {@AutowiredUserDao userDao;@Overridepublic UserDto queryUser(String name) {return   userDao.getUserByUsername(name);}
}

1.5 dao层

package com.ljf.spring.boot.demo.dao;import com.ljf.spring.boot.demo.model.UserDto;
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;/*** @ClassName: UserDao* @Description: TODO* @Author: liujianfu* @Date: 2021/08/18 09:33:06 * @Version: V1.0**/
@Repository
public class UserDao {@AutowiredJdbcTemplate jdbcTemplate;//根据账号查询用户信息public UserDto getUserByUsername(String username){String sql = "select id,username,password,fullname,mobile from t_user where username = ?";//连接数据库查询用户List<UserDto> list = jdbcTemplate.query(sql, new Object[]{username}, new BeanPropertyRowMapper<>(UserDto.class));if(list !=null && list.size()==1){return list.get(0);}return null;}
}

1.6 controller层

package com.ljf.spring.boot.demo.controller;import com.ljf.spring.boot.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @ClassName: UserController* @Description: TODO* @Author: liujianfu* @Date: 2021/08/18 09:31:48 * @Version: V1.0**/
@RestController
public class UserController {@Autowiredprivate UserService userService;@RequestMapping("/query")public Object query(String name){return  userService.queryUser(name);}
}

1.7 model层

package com.ljf.spring.boot.demo.model;/*** @author Administrator* @version 1.0**/
public class UserDto {private String id;private String username;private String password;private String fullname;private String mobile;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getFullname() {return fullname;}public void setFullname(String fullname) {this.fullname = fullname;}public String getMobile() {return mobile;}public void setMobile(String mobile) {this.mobile = mobile;}@Overridepublic String toString() {return "UserDto{" +"id='" + id + '\'' +", username='" + username + '\'' +", password='" + password + '\'' +", fullname='" + fullname + '\'' +", mobile='" + mobile + '\'' +'}';}
}

1.8 启动类

package com.ljf.spring.boot.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Hello world!**/
@SpringBootApplication
public class App 
{public static void main( String[] args ){SpringApplication.run(App.class);System.out.println( "Hello World!" );System.out.println("springboot的template模块启动完成!!!");}
}

1.9 测试

这篇关于springboot+jdbcTemplate的整合实现crud的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1013106

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听