utils

JedisUtils 运用jedis连接池连接redis

package com.itheima.store.utils;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisUtils {
    // 创建连接池
    private static JedisPoolConfig config;// 配置连接池信息
    private static JedisPool pool;// 连接池

    static {
        config = new JedisPoolConfig();// 配置连接池信息
        config.setMaxTotal(30); // 最大连接数
        config.setMaxIdle(2); // 最大空闲连接数

        pool = new JedisPool(config, "localhost", 6379); // 创建连接池对象
    }

    // 获取连接的方法
    public static Jedis getJedis() {
        return pool.getResource();
    }

    // 释放连接
    public static void closeJedis(Jedis j) {
        j.close();
    }
}

MailUtils 发送邮件 传入收件人邮箱和邮件内容

package com.itheima.store.utils;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class MailUtils {
    // 发件服务器地址.例如 localhost
    public static final String SMTP_HOST_ADDRESS = "localhost";
    // 发件人邮箱的用户名.例如 username
    public static final String USERNAME = "service";
    // 发件人邮箱的密码.例如 password
    public static final String PASSWORD = "123";
    // 发件人邮箱地址.例如 zhangsan@qq.com
    public static final String SENDER = "service@store.com";
    // 邮件主题
    public static final String MAIL_SUBJECT = "激活邮件";

    /**
     * @param receiver
     *            : 收件人邮箱地址.例如 lisi@qq.com
     * @param emailBody
     *            : 邮件内容
     */
    public static void sendMail(String receiver, String emailBody)
            throws AddressException, MessagingException {
        // 1.创建一个程序与邮件服务器会话对象 Session

        Properties props = new Properties();
        // 设置发送的协议
        props.setProperty("mail.transport.protocol", "SMTP");

        // 设置发送邮件的服务器
        props.setProperty("mail.host", SMTP_HOST_ADDRESS);
        props.setProperty("mail.smtp.auth", "true");// 指定验证为true

        // 创建验证器
        Authenticator auth = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                // 设置发送人的帐号和密码
                return new PasswordAuthentication(USERNAME, PASSWORD);
            }
        };

        Session session = Session.getInstance(props, auth);

        // 2.创建一个Message,它相当于是邮件内容
        Message message = new MimeMessage(session);

        // 设置发送者
        message.setFrom(new InternetAddress(SENDER));

        // 设置发送方式与接收者
        message.setRecipient(RecipientType.TO, new InternetAddress(receiver));

        // 设置邮件主题
        message.setSubject(MAIL_SUBJECT);

        // 设置邮件内容
        message.setContent(emailBody, "text/html;charset=utf-8");

        // 3.创建 Transport用于将邮件发送
        Transport.send(message);
    }
}

DateUtils 将String转化为date

package com.itheima.store.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.beanutils.Converter;

public class DateConverterUtils implements Converter {

    // value : request.getParameter("birthday")方法的返回值
    @Override
    public Date convert(Class arg0, Object value) {
        // 把String类型的日期转换成java.util.Date类型的日期
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return sdf.parse((String) value);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

}

textUtils  判断字符串是否为空和是否存在

package com.itheima.store.utils;

public class TextUtils {

    public static boolean isEmpty(String a) {
        if (a == null || a.trim().length() == 0) {
            return true;
        }

        return false;
    }
}

UUIDutils 生成uuid

package com.itheima.store.utils;

import java.util.UUID;

public class UUIDUtils {

    public static String getID(){
        return UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
    }
}

JDBCUtils 链接数据库+事物开启+事物回滚

package com.itheima.store.utils;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class JDBCUtils {
    private static DataSource dataSource = new ComboPooledDataSource();
    private static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();

    // 获取连接池对象
    public static DataSource getDataSource() {
        return dataSource;
    }

    // 提供连接
    public static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }

    // 提供连接,从ThreadLocal中获取的
    public static Connection getConnectionTL() throws SQLException {
        // 从ThreadLocal中获取连接
        Connection connection = threadLocal.get();
        // 如果连接对象为空
        if (connection == null) {
            // 从连接池获取连接
            connection = getConnection();
            // 将连接放入ThreadLocal,这样下一次从ThreadLocal中获取的时候就有数据了
            threadLocal.set(connection);
        }

        return connection;
    }

    // 开启事务
    public static void startTransaction() throws SQLException {
        Connection connection = getConnectionTL();
        connection.setAutoCommit(false);

    }

    // 提交事务并释放资源
    public static void commitAndRelease() throws SQLException {
        Connection connection = getConnectionTL();
        // 提交事务
        connection.commit();
        if (connection != null) {
            connection.close();
            connection = null;
        }
        // 把连接对象和ThreadLocal解绑,可以让ThreadLocal尽快被释放,节约服务器内存资源
        threadLocal.remove();

    }

    // 回滚事务并释放资源
    public static void rollbackAndRelease() throws SQLException {
        Connection connection = getConnectionTL();
        // 回滚事务
        connection.rollback();
        if (connection != null) {
            connection.close();
            connection = null;
        }
        // 把连接对象和ThreadLocal解绑,可以让ThreadLocal尽快被释放,节约服务器内存资源
        threadLocal.remove();

    }

}
原文地址:https://www.cnblogs.com/jiuhaoyun/p/8126456.html