Java最全Java工具类及配置文件模板大全,金三银四旗开得胜

最后

码字不易,觉得有帮助的可以帮忙点个赞,让更多有需要的人看到

又是一年求职季,在这里,我为各位准备了一套Java程序员精选高频面试笔试真题,来帮助大家攻下BAT的offer,题目范围从初级的Java基础到高级的分布式架构等等一系列的面试题和答案,用于给大家作为参考

以下是部分内容截图
架构面试专题及架构学习笔记导图.png

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

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

public int commonUpdate(String sql, Object[] objects) {

// 获取连接对象

Connection connection = getConnection();

// 构建执行者

PreparedStatement preparedStatement = null;

try {

preparedStatement = connection.prepareStatement(sql);

} catch (SQLException throwables) {

throwables.printStackTrace();

}

// 填入数据

for (int i = 0; i < objects.length; i++) {

try {

preparedStatement.setObject(i + 1, objects[i]);

// preparedStatement.setNull(位置, Types.INTEGER);

} catch (SQLException throwables) {

throwables.printStackTrace();

}

}

// 执行语句

int i = 0;

try {

i = preparedStatement.executeUpdate();

} catch (SQLException throwables) {

throwables.printStackTrace();

}

// 返回受景响的行数

return i;

}

// 通用查询

public ResultSet commonSelect(String sql, Object[] objects) {

// 定义一个返回值

ResultSet resultSet = null;

// 获取连接对象

Connection connection = getConnection();

// 获得安全执行者

PreparedStatement preparedStatement = null;

try {

preparedStatement = connection.prepareStatement(sql);

} catch (SQLException throwables) {

throwables.printStackTrace();

}

for (int i = 0; i < objects.length; i++) {

try {

assert preparedStatement != null;

preparedStatement.setObject(i + 1, objects[i]);

} catch (SQLException throwables) {

throwables.printStackTrace();

}

}

// 安全执行者执行

try {

assert preparedStatement != null;

resultSet = preparedStatement.executeQuery();

} catch (SQLException throwables) {

throwables.printStackTrace();

}

// 处理结果集

return resultSet;

}

}

Mybatis 工具类的封装


MyBatisUtils

/**

  • MyBatis工具类

*/

public class MyBatisUtils {

//创建SqlSession

private static SqlSession sqlSession;

//初始化创建SqlSession

static {

//工厂构建者

SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();

//MyBatis配置文件名称

String configName = “sqlMapConfig.xml”;

//定义输入流

InputStream is = null;

try {

//读取配置文件

is = Resources.getResourceAsStream(configName);

} catch (IOException e) {

e.printStackTrace();

}

//通过配置文件构建出工厂类

SqlSessionFactory ssf = ssfb.build(is);

//通过工厂类获取sqlSession

sqlSession = ssf.openSession(true);

}

//获取sqlSession

public static SqlSession getSqlsession(){

return sqlSession;

}

//归还sqlSession

public static void closeSqlsession(SqlSession sqlSession){

if (sqlSession!=null){

sqlSession.close();

}

}

}

MyBatis逆向生成


MyBatisUtils

public class GeneratorSqlmap {

public void generator() throws Exception{

List warnings = new ArrayList();

boolean overwrite = true;

//指定 逆向工程配置文件

File configFile = new File(“generatorConfig.xml”);

ConfigurationParser cp = new ConfigurationParser(warnings);

Configuration config = cp.parseConfiguration(configFile);

DefaultShellCallback callback = new DefaultShellCallback(overwrite);

MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,

callback, warnings);

myBatisGenerator.generate(null);

}

public static void main(String[] args) throws Exception {

try {

GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();

generatorSqlmap.generator();

} catch (Exception e) {

e.printStackTrace();

}

}

}

配置文件generatorConfig.xml

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

<jdbcConnection driverClass=“com.mysql.cj.jdbc.Driver”

connectionURL=“jdbc:mysql://localhost:3306/demo1?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true”

userId=“root”

password=“root”>

<javaModelGenerator targetPackage=“com.demo.pojo”

targetProject=“.\src”>

<sqlMapGenerator targetPackage=“com.demo.mapper”

targetProject=“.\src”>

<javaClientGenerator type=“XMLMAPPER”

targetPackage=“com.demo.mapper”

targetProject=“.\src”>

DateUtil


public class DateUtil {

/**

  • util.Date转字符串

*/

public static String getDateStr(Date date) {

// 实例化一个格式化对象

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

// 把日期对象格式化

// 返回这个字符串

return sdf.format(date);

}

/**

  • 字符串转成util.Date对象

*/

public static Date getDate(String dateStr) {

// 实例化一个格式化对象

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

// 日期格式解析

Date date = null;

try {

date = sdf.parse(dateStr);

} catch (ParseException e) {

e.printStackTrace();

}

// 返回日期

return date;

}

}

MD5加密工具类MD5Utils


public class MD5Util {

/**

  • 1.MD5(message-digest algorithm 5)信息摘要算法,

  • 它的长度一般是32位的16进制数字符串(如81dc9bdb52d04dc20036dbd8313ed055)

  • 2.由于系统密码明文存储容易被黑客盗取

  • 3.应用:注册时,将密码进行md5加密,存到数据库中,防止可以看到数据库数据的人恶意篡改。

  •   登录时,将密码进行md5加密,与存储在数据库中加密过的密码进行比对
    
  • 4.md5不可逆,即没有对应的算法,从产生的md5值逆向得到原始数据。

  • 但是可以使用暴力破解,这里的破解并非把摘要还原成原始数据,如暴力枚举法。

*/

public final static String getMD5(String str){

try {

MessageDigest md = MessageDigest.getInstance(“SHA”);//创建具有指定算法名称的摘要

md.update(str.getBytes()); //使用指定的字节数组更新摘要

byte mdBytes[] = md.digest(); //进行哈希计算并返回一个字节数组

String hash = “”;

for(int i= 0;i<mdBytes.length;i++){ //循环字节数组

int temp;

if(mdBytes[i]<0) //如果有小于0的字节,则转换为正数

temp =256+mdBytes[i];

else

temp=mdBytes[i];

if(temp<16)

hash+= “0”;

hash+=Integer.toString(temp,16); //将字节转换为16进制后,转换为字符串

}

return hash;

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

}

return null;

}

}

UUIDUtils


public class UUIDUtils {

/** 16位的UUID */

public static String getUUID() {

return UUID.randomUUID().toString().replace(“-”,“”).substring(0,15);

}

/** 32位的UUID */

public static String getUUID32() {

return UUID.randomUUID().toString().replace(“-”,“”).substring(0,31);

}

}

Maven识别所有的配置文件


src/main/java

最后

看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了1000道题目,多少还是有点用的呢,我看了下,上面这些问题大部分都能从我背的题里找到的,所以今天给大家分享一下互联网工程师必备的面试1000题

注意不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

互联网工程师必备的面试1000题

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

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

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

最后

看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了1000道题目,多少还是有点用的呢,我看了下,上面这些问题大部分都能从我背的题里找到的,所以今天给大家分享一下互联网工程师必备的面试1000题

注意不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友

[外链图片转存中…(img-2l44b6z4-1715312763016)]

互联网工程师必备的面试1000题

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题

[外链图片转存中…(img-xKVJaPQU-1715312763016)]

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

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

  • 18
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值