热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Springboot整合jdbctemplate进行数据查询

1.项目结构 2.pom.xml和application.properties pom.xml 4.0.0org.springframework.bootspring-boot-starter-par

1.项目结构

在这里插入图片描述

2.pom.xml和application.properties


pom.xml

<?xml version&#61;"1.0" encoding&#61;"UTF-8"?>
<project xmlns&#61;"http://maven.apache.org/POM/4.0.0" xmlns:xsi&#61;"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&#61;"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><!-- devtools --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><!-- web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- 数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.21</version></dependency><!--jdbc --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

application.properties

#jdbc连接
spring.datasource.url&#61;jdbc:mysql://localhost:3306/springboottest?useUnicode&#61;true&characterEncoding&#61;utf8&serverTimezone&#61;UTC
spring.datasource.username&#61;root
spring.datasource.password&#61;123456
spring.datasource.driver-class-name&#61;com.mysql.cj.jdbc.Driver
#数据源
spring.datasource.type&#61;com.alibaba.druid.pool.DruidDataSource
#tomcat端口
server.port&#61;8888

3.UserController

package com.example.demo.controller;import java.util.HashMap;
import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import com.example.demo.bean.User;
import com.example.demo.service.UserService;&#64;Controller
&#64;RequestMapping("user")
public class UserController {&#64;Autowiredprivate UserService userService;&#64;ResponseBody&#64;RequestMapping("login")public Map<String,String> login(User user){HashMap<String, String> map &#61; new HashMap<String,String>();try {User user2 &#61; userService.findUser(user);if(null !&#61;user2) {map.put("success", user2.getName()&#43;":欢迎您登录成功");}else {map.put("success", "用户名和密码不正确");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();map.put("error", "程序出现异常");}return map;}
}

4.UserService

package com.example.demo.service;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.example.demo.bean.User;
import com.example.demo.dao.UserDao;&#64;Service
public class UserService {&#64;Autowiredprivate UserDao userDao;public User findUser(User user) {User user2 &#61; userDao.findUser(user);return user2;}}

5.UserDao

package com.example.demo.dao;import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;import com.example.demo.bean.User;&#64;Repository
public class UserDao {&#64;Autowiredprivate JdbcTemplate jdbcTemplate;public User findUser(User user) {String sql&#61;"select * from user where name&#61;? and pass&#61;?";RowMapper<User> mapper &#61; BeanPropertyRowMapper.newInstance(User.class);ArrayList<Object> agrList &#61; new ArrayList<Object>();agrList.add(user.getName());agrList.add(user.getPass());List<User> userList &#61; jdbcTemplate.query(sql, mapper,agrList.toArray());return userList.get(0);}}

6.spring boot添加事务

在service的类上添加&#64;Transactional&#xff0c;表示这个类所有方法都添加事务。
在service的单个方法上添加&#64;Transactional&#xff0c;表明这个方法添加事务。

&#64;Service
&#64;Transactional
public class UserService {&#64;Autowiredprivate UserDao userDao;public User findUser(User user) {User user2 &#61; userDao.findUser(user);return user2;}&#64;Transactionalpublic void addUser(User user) {userDao.addUser(user);System.out.println(1/0);userDao.addUser(user);}}


推荐阅读
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
  • 一、Tomcat安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat8.0\webapps二、Tomcat8.0配置多个端口,其实也就是给T ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南
    从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在项目开发中,我们搭建了私有的Maven仓库服务器,以方便管理和下载所需的JAR包。然而,某些外部JAR包可能无法从公共Maven仓库获取,或者我们自行开发了一些仅供公司内部使用的插件,这些都需要上传到私有仓库中进行共享。本文详细介绍了如何使用Maven命令行工具将这些第三方JAR包部署至Nexus仓库服务器,确保团队成员能够轻松访问和使用这些资源。 ... [详细]
  • 本文深入解析了通过JDBC实现ActiveMQ消息持久化的机制。JDBC能够将消息可靠地存储在多种关系型数据库中,如MySQL、SQL Server、Oracle和DB2等。采用JDBC持久化方式时,数据库会自动生成三个关键表:`activemq_msgs`、`activemq_lock`和`activemq_ACKS`,分别用于存储消息数据、锁定信息和确认状态。这种机制不仅提高了消息的可靠性,还增强了系统的可扩展性和容错能力。 ... [详细]
  • 深入解析 Android 选择器与形状绘制技术
    本文深入探讨了 Android 中选择器(Selector)与形状绘制(Shape Drawing)技术的应用与实现。重点分析了 `Selector` 的 `item` 元素,其中包括 `android:drawable` 属性的使用方法及其在不同状态下的表现。此外,还详细介绍了如何通过 XML 定义复杂的形状和渐变效果,以提升 UI 设计的灵活性和美观性。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有