zoukankan      html  css  js  c++  java
  • 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();
    
        }
    
    }
  • 相关阅读:
    jQuery右键菜单contextMenu使用实例
    如何调动员工的积极性 -引用LTP.Net知识库
    Linux 目录管理的相关命令
    linux bash基础特性
    Linux 文件系统简介(FHS:Filesystem Hierarchy Standard)
    Linux 基础命令
    docker 限制容器能够使用的资源
    docker 私有registry harbor安装
    docker Dockerfile里使用的命令说明
    docker 存储卷 Volumes
  • 原文地址:https://www.cnblogs.com/jiuhaoyun/p/8126456.html
Copyright © 2011-2022 走看看