这是我这周学习MOOC上的一个作业;
做这个首先你要安装mysql,配置环境,和java配置环境差不多。下载安装可以参见下面链接,
https://blog.csdn.net/qq_45192089/article/details/105574316
安装Navicat,可参见下面链接:
这里是引用https://blog.csdn.net/weixin_30268071/article/details/101795522?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158682877519724811850012%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=158682877519724811850012&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-soetl_SOETLBAIDU-2
不安装Navicat也可,你在cmd里创建表或者mysql WorkBench里也可。
我是安装的Navicat,下面是安装成功之后进行连接mysql
然后下面是我进行测试的表,
下面是代码:
首先,这是程序的主程序
package zuoye;
/**
*
* @author zrf
*
*/
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DruidRead {
public static void main(String[] args) {
Connection conn = null;
try {
conn = DruidFactory.getConnection();
System.out.println("连接池构建成功");
// 构建数据库执行者
Statement stmt = conn.createStatement();
System.out.println("获取连接成功");
// 执行SQL语句并返回结果
ResultSet rs = stmt.executeQuery("select * from t_mail where id = 1");
while (rs.next()) {
System.out.println("获取数据成功");
// 发送邮件
MailSend ms = new MailSend(rs.getString("from"), rs.getString("to"), rs.getString("subject"),
rs.getString("content"));
ms.init();//初始化
ms.sendMessage();//发送邮件
ms.close();
}
rs.close();
stmt.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != conn) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Druid连接池,连接数据库,
package zuoye;
import java.sql.Connection;
import java.sql.SQLException;
import com.alibaba.druid.pool.DruidDataSource;
/**
*
* @author zrf
*
*/
public class DruidFactory {
private static DruidDataSource dataSource = null;
private static void init() {
dataSource = new DruidDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");//驱动,mysql是的话是旧版本是com.mysql.jdbc.Driver
dataSource.setUsername("root");//写您自己的用户名
dataSource.setPassword("123456");//这里是mysql的密码,测试的时候写您自己的密码
//下面的test是我测试的时候用的数据库,您测试的时候改成您自己的数据库即可
dataSource.setUrl("jdbc:mysql://localhost:3306/test?useSLL=false&serverTimezone=UTC");//useSLL=false&serverTimezone=UTC这个依你自己版本,有的需要有的不需要
dataSource.setInitialSize(5);
dataSource.setMinIdle(1);
dataSource.setMaxActive(10);
}
public static Connection getConnection() throws SQLException {
if (dataSource == null) {
init();
}
return dataSource.getConnection();
}
}
发送邮件,
package zuoye;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.NoSuchProviderException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
*
* @author zrf
*
*/
public class MailSend {
private Session session;
private Transport transport;
private String from;
private String to;
private String subject;
private String content;
private String password = "";//这里是你自己的授权码
private String smtpServer = "smtp.163.com";//这里注意不要有空格
public MailSend(String from, String to, String subject, String content) {
this.from = from;
this.to = to;
this.subject = subject;
this.content = content;
}
public void init() throws NoSuchProviderException {
Properties props = new Properties();
props.put("mail.transport.protocol","smtp");
props.put("mail.smtp.class","com.sun.mail.smtp.SMTPTransport");;
props.put("mail.smtp.host",smtpServer);//设置发送邮件服务器
props.put("mail.smtp.port","25");
props.put("mail.smtp.auth","true"); //SMTP服务器需要身份验证
//创建Session对象
session = Session.getInstance(props,new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from,password);
}
});
session.setDebug(false);//输出跟踪日志
//创建Transport对象
transport = session.getTransport();
}
public void sendMessage() throws Exception {
//创建一个邮件
// 创建Session实例对象
Session session = Session.getDefaultInstance(new Properties());
// 创建MimeMessage实例对象
MimeMessage message = new MimeMessage(session);
// 设置发件人
message.setFrom(new InternetAddress(from));
// 设置收件人
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
// 设置发送日期
message.setSentDate(new Date());
// 设置邮件主题
message.setSubject(subject);
// 设置纯文本内容的邮件正文
message.setText(content);
// 保存并生成最终的邮件内容
message.saveChanges();
//发送邮件
transport.connect();
transport.sendMessage(message, message.getAllRecipients());
//打印结果
System.out.println("发送邮件成功");
}
public void close()throws Exception
{
transport.close();
}
}
注:代码参见了中国大学MOOC《Java核心技术(进阶)》课程;我只是记录一下自己的过程,勿喷!