最全Spring使用JdbcTemplate操作数据库附源码解释,java五年工作经验面试题

总结

我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。

这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。

大家可以把Java基础,JVM,并发编程,MySQL,Redis,Spring,Spring cloud等等做一个知识总结以及延伸,再去进行操作,不然光记是学不会的,这里我也提供一些脑图分享给大家:

希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

4.0.0

com.Keafmd

day04_eesy_01jdbctemplate

1.0-SNAPSHOT

org.apache.maven.plugins

maven-compiler-plugin

7

7

jar

org.springframework

spring-context

5.2.6.RELEASE

org.springframework

spring-jdbc

5.2.7.RELEASE

org.springframework

spring-tx

5.2.7.RELEASE

mysql

mysql-connector-java

5.1.46

com.alibaba

druid

1.1.10

org.aspectj

aspectjweaver

1.8.9

junit

junit

4.12

compile

————————————————

maven项目的代码结构:

Spring使用JdbcTemplate操作数据库附源码解释

配置xml配置文件

=========

在 spring 配置文件配置数据库连接池,配置 JdbcTemplate 对象,注入 DataSource。配置时用的是引用外部配置文件,所以还需要引入外部的属性文件,同时创建对象时是基于注解的所以还要开启组件扫描。

bean1.xml:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:p=“http://www.springframework.org/schema/p”

xmlns:util=“http://www.springframework.org/schema/util”

xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan base-package=“com.Keafmd”></context:component-scan>

<context:property-placeholder location=“classpath:jdbc.properties”/>

jdbc.properties:

jdbc.driverClass=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://127.0.0.1:3306/user_db?characterEncoding=utf8&useUnicode=true&useSSL=false

jdbc.username=root

jdbc.password=root

JdbcTemplate 操作数据库

==================

相关的操作及注释都在代码中,请看代码。

准备好数据库uset_db创建一个t_user表

==========================

Spring使用JdbcTemplate操作数据库附源码解释

对应数据库创建User实体类

==============

User类:

package com.Keafmd.spring5.entity;

/**

  • Keafmd

  • @ClassName: User

  • @Description: 数据库对应user实体类

  • @author: 牛哄哄的柯南

  • @date: 2021-01-19 10:07

*/

public class User {

private String userId;

private String username;

private String ustatus;

public User() {

}

public User(String userId, String username, String ustatus) {

this.userId = userId;

this.username = username;

this.ustatus = ustatus;

}

public void setUserId(String userId) {

this.userId = userId;

}

public void setUsername(String username) {

this.username = username;

}

public void setUstatus(String ustatus) {

this.ustatus = ustatus;

}

public String getUserId() {

return userId;

}

public String getUsername() {

return username;

}

public String getUstatus() {

return ustatus;

}

@Override

public String toString() {

return “User{” +

“userId='” + userId + ‘’’ +

“, username='” + username + ‘’’ +

“, ustatus='” + ustatus + ‘’’ +

‘}’;

}

}

创建UserDao接口并创建UserDaoImpl类

==========================

在UserDaoImpl内注入jdbcTemplate。

UserDao接口:

package com.Keafmd.spring5.dao;

import com.Keafmd.spring5.entity.User;

import java.util.List;

/**

  • Keafmd

  • @ClassName: UserDao

  • @Description:

  • @author: 牛哄哄的柯南

  • @date: 2021-01-19 9:56

*/

public interface UserDao {

//添加方法

void add(User user);

//修改方法

void updateUser(User user);

//删除方法

void delete(String id);

//查询记录数

int selectCount();

//查询返回对象

User findUserInfo(String id);

//查询集合

List findAllUser();

//批量添加

void batchAddUser(List<Object[]> batchArgs);

//批量修改

void batchUpdateUser(List<Object[]> batchArgs);

//批量删除

void batchDeleteUser(List<Object[]> batchArgs);

}

UserDaoImpl类:

package com.Keafmd.spring5.dao;

import com.Keafmd.spring5.entity.User;

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.Arrays;

import java.util.List;

/**

  • Keafmd

  • @ClassName: UserDaoImpl

  • @Description: UserDao实现类

  • @author: 牛哄哄的柯南

  • @date: 2021-01-19 9:56

*/

@Repository

public class UserDaoImpl implements UserDao {

//注入jdbcTemplate

@Autowired

private JdbcTemplate jdbcTemplate;

//添加的方法

@Override

public void add(User user) {

//创建sql语句

String sql=" INSERT INTO t_user (user_id, username, ustatus) VALUES (?, ?, ?) ";

// 调用方法实行

int updat = jdbcTemplate.update(sql,user.getUserId(),user.getUsername(),user.getUstatus());

// 返回成功的条数

System.out.println(updat);

}

//修改

@Override

public void updateUser(User user) {

String sql = “UPDATE user_db.t_user SET username = ?, ustatus = ? WHERE user_id = ?”;

Object[] args = {user.getUsername(),user.getUstatus(),user.getUserId()};

int updat = jdbcTemplate.update(sql,args);

System.out.println(updat);

}

//删除

@Override

public void delete(String id) {

String sql =“DELETE FROM user_db.t_user WHERE user_id = ?”;

int updat = jdbcTemplate.update(sql,id);

System.out.println(updat);

}

//查询记录数

@Override

public int selectCount() {

String sql =“SELECT COUNT(*) FROM t_user”;

Integer count = jdbcTemplate.queryForObject(sql,Integer.class);

return count;

}

//返回对象

@Override

public User findUserInfo(String id) {

String sql =“SELECT * FROM t_user where user_id = ?”;

User user = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper(User.class),id);

return user;

}

//返回集合对象

@Override

public List findAllUser() {

String sql = “select * from t_user”;

List userList =jdbcTemplate.query(sql,new BeanPropertyRowMapper(User.class));

return userList;

}

//批量添加

@Override

public void batchAddUser(List<Object[]> batchArgs) {

String sql=" INSERT INTO t_user (user_id, username, ustatus) VALUES (?, ?, ?) ";

int []ints = jdbcTemplate.batchUpdate(sql,batchArgs);

System.out.println(Arrays.toString(ints));

}

//批量修改

@Override

public void batchUpdateUser(List<Object[]> batchArgs) {

String sql = “UPDATE user_db.t_user SET username = ?, ustatus = ? WHERE user_id = ?”;

int []ints = jdbcTemplate.batchUpdate(sql,batchArgs);

System.out.println(Arrays.toString(ints));

}

//批量删除

@Override

public void batchDeleteUser(List<Object[]> batchArgs) {

String sql =“DELETE FROM user_db.t_user WHERE user_id = ?”;

int []ints = jdbcTemplate.batchUpdate(sql,batchArgs);

System.out.println(Arrays.toString(ints));

}

}

创建UserService类并在其中注入UserDao

===========================

UserService类:

package com.Keafmd.spring5.service;

import com.Keafmd.spring5.dao.UserDao;

import com.Keafmd.spring5.dao.UserDaoImpl;

import com.Keafmd.spring5.entity.User;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import java.util.List;

/**

  • Keafmd

  • @ClassName: BookService

  • @Description:

  • @author: 牛哄哄的柯南

  • @date: 2021-01-19 9:55

*/

@Service

public class UserService {

//注入dao

@Autowired

private UserDao userDao;

//添加的方法

public void addUser(User user){

userDao.add(user);

}

//修改的方法

public void updateUser(User user){

userDao.updateUser(user);

}

//删除的方法

public void deleteUser(String id){

userDao.delete(id);

}

//查询表中的记录数

public int findCount(){

return userDao.selectCount();

}

//查询返回对象

public User findOne(String id){

return userDao.findUserInfo(id);

}

//查询返回集合

public List findAll(){

最后

给大家送一个小福利

附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

ao;

//添加的方法

public void addUser(User user){

userDao.add(user);

}

//修改的方法

public void updateUser(User user){

userDao.updateUser(user);

}

//删除的方法

public void deleteUser(String id){

userDao.delete(id);

}

//查询表中的记录数

public int findCount(){

return userDao.selectCount();

}

//查询返回对象

public User findOne(String id){

return userDao.findUserInfo(id);

}

//查询返回集合

public List findAll(){

最后

给大家送一个小福利

[外链图片转存中…(img-AnRadJeq-1715584212445)]

附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。

[外链图片转存中…(img-MaqSJcPs-1715584212446)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring JdbcTemplateSpring框架提供的一个对JDBC进行封装的工具类,它可以简化JDBC编程的复杂性,提供了一种更简便的方式来访问数据库JdbcTemplate的原理是将JDBC的访问进行封装,提供了一些常用的操作方法,例如查询、更新、批量操作等。它通过DataSource来获取JDBC的连接,并通过Connection对象进行JDBC操作,最后释放连接资源。 使用JdbcTemplate进行数据库操作的步骤如下: 1. 配置数据源,配置JdbcTemplate。 2. 在代码中通过JdbcTemplate对象进行数据库操作。 下面是一个简单的例子: 配置数据源和JdbcTemplate: ```xml <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="root"/> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean> ``` 在代码中通过JdbcTemplate对象进行数据库操作: ```java @Autowired private JdbcTemplate jdbcTemplate; public void insertUser(User user) { String sql = "INSERT INTO user(name, age) VALUES(?, ?)"; jdbcTemplate.update(sql, user.getName(), user.getAge()); } public List<User> getUsers() { String sql = "SELECT * FROM user"; List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class)); return users; } ``` 在上面的代码中,我们通过@Autowired注解注入了JdbcTemplate对象,并使用它来执行插入和查询操作。 通过JdbcTemplate,我们可以使用占位符来传递参数,也可以使用BeanPropertyRowMapper将查询结果映射为Java对象。 总的来说,Spring JdbcTemplate的原理是封装了JDBC的访问,提供了一种更便捷的方式来操作数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值