总结
我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。
这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。
大家可以把Java基础,JVM,并发编程,MySQL,Redis,Spring,Spring cloud等等做一个知识总结以及延伸,再去进行操作,不然光记是学不会的,这里我也提供一些脑图分享给大家:
希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!
4.0.0
com.Keafmd
day04_eesy_01jdbctemplate
1.0-SNAPSHOT
org.apache.maven.plugins
maven-compiler-plugin
77
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项目的代码结构:
配置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表
==========================
对应数据库创建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(){
最后
给大家送一个小福利
附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。
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)]