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(); } }