Questo è il mio codice:
codice:
package javaapplication7;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.JOptionPane;
import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.io.*;
public class Controllo {
private String cella=new String();
private String data_ita= new String();
private int contatore=0;
private int cont=0;
private String host = "smtp.gmail.com"; //tuo smtp
private String from = mioindirizzio@gmail.it; //tuo indirizzo email
private String ToAddress = "indirizzo del destinatario"; //destinatario
private String user = ",mioindirizzo";
private String pass = "password";
public Controllo(){
// Indirizzo in cui si trova il database
try {
while (true) {
Connection con = null;
try {
String driver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driver).newInstance();
}
catch (Exception e) {
System.out.println("Fallito il caricamento dei driver SQL.");
return;
}
try {
String[] items = new String[30];
items[0]="Cella01Trend";
items[1]="Cella07Trend";
items[2]="Cella08Trend";
items[3]="Cella09Trend";
items[4]="Cella10Trend";
items[5]="Cella11Trend";
items[6]="Cella12Trend";
items[7]="Cella13Trend";
items[8]="Cella14Trend";
items[9]="Cella15Trend";
items[10]="Cella16Trend";
items[11]="Cella17Trend";
items[12]="Cella18Trend";
items[13]="Cella19Trend";
items[14]="Cella20Trend";
items[15]="Cella21Trend";
items[16]="Cella22Trend";
items[17]="Cella23ATrend";
items[18]="Cella23BTrend";
items[19]="Cella23CTrend";
items[20]="Cella24Trend";
items[21]="Cella25Trend";
items[22]="Cella26Trend";
items[23]="Cella27Trend";
items[24]="Cella28Trend";
items[25]="Cella30Trend";
items[26]="Cella31Trend";
items[27]="Cella32Trend";
items[28]="Cella33Trend";
items[29]="CellaRobotTrend";
for (int i=0;i<30;i++){
SimpleDateFormat giorno_form_db = new SimpleDateFormat( "yyyy/MM/dd" );
String data_attuale= new String();
data_attuale=giorno_form_db.format(new Date());
cella=items[i];
// Connessione col database in cui vengono specificati url, nome utente, password
con = DriverManager.getConnection("jdbc:jtds:sqlserver://192.169.14.3:1433/Database", "**", "*");
Statement select = con.createStatement();
Statement select1 = con.createStatement();
//caricamento query SQL
System.out.println(cella);
ResultSet vuoto = select1.executeQuery("SELECT COUNT(*) FROM " +cella+ " where tempo>='" +data_attuale+"' and tempo<='" +data_attuale+ "%'");
while(vuoto.next()){
if((vuoto.getInt(1)==0))
{
SimpleDateFormat giorno_ita = new SimpleDateFormat( "dd/MM/yyyy" );
data_ita=giorno_ita.format(new Date());
System.out.println(cella+ " non ha acquisito nessun dato in data " +data_ita);
JOptionPane.showMessageDialog(null,cella+" non ha acquisito nessun dato in data "+data_ita,"ERRORE SCRITTURA DATI ODIERNI",JOptionPane.ERROR_MESSAGE);
}
else{
ResultSet ultimo_dato = select.executeQuery("SELECT TOP 1 * FROM " +cella+ " where tempo>='" +data_attuale+"' and tempo<='" +data_attuale+ "%'ORDER BY Tempo DESC");
while (ultimo_dato.next()) {
java.util.Date orario_db = new SimpleDateFormat("yyyy/MM/dd HH.mm").parse(ultimo_dato.getString(2));
SimpleDateFormat or = new SimpleDateFormat("HH");
SimpleDateFormat min = new SimpleDateFormat("mm");
String ora_db=new String();
String ora_attuale=new String();
String min_db=new String();
String min_attuale=new String();
ora_attuale=or.format(new Date());
min_attuale=min.format(new Date());
ora_db=or.format(orario_db);
min_db=min.format(orario_db);
int ora_attuale_int=Integer.parseInt(ora_attuale);
int min_attuale_int=Integer.parseInt(min_attuale);
int ora_db_int=Integer.parseInt(ora_db);
int min_db_int=Integer.parseInt(min_db);
contatore=0;
cont=0;
if(ora_db_int==ora_attuale_int){
for(int j=0;j<10;j++){
if(min_db_int==min_attuale_int-j){
System.out.println("TUTTO OK");
contatore=1;
}
}
if(contatore==0) {
System.out.println(cella+ "KO");
javamail jv=new javamail();
JOptionPane.showMessageDialog(null,cella+" non ha salvato dati negli ultimi 10 minuti","ERRORE SCRITTURA DATABASE",JOptionPane.ERROR_MESSAGE);
}
}
else{
if(ora_db_int==ora_attuale_int-1){
for(int w=59;w>49;w--){
if(min_db_int==w){
System.out.println("TUTTO OK");
cont=1;
}
}
if(cont==0){
System.out.println(cella+ "KO");
JOptionPane.showMessageDialog(null,cella+" non ha salvato dati negli ultimi 10 minuti","ERRORE SCRITTURA DATABASE",JOptionPane.ERROR_MESSAGE);
}
}
else {
System.out.println(cella+ "KO");
JOptionPane.showMessageDialog(null,cella+" non ha salvato dati negli ultimi 10 minuti","ERRORE SCRITTURA DATABASE",JOptionPane.ERROR_MESSAGE);
}
}
}
}
}
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (con != null) {
try {
con.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Thread.sleep (10*60*1000); // 10 minuti
}
}catch (Exception e) {
e.printStackTrace();
}
}
public javamail() {
try {
//initialize the StringBuffer object within the try/catch loop
StringBuffer sb = new StringBuffer( );
//Get system properties
Properties props = System.getProperties( );
//Setup mail server
props.put("mail.smtp.host", host);
//props.put("mail.debug", "true");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.auth","true");
//Get session
Session session = Session.getDefaultInstance(props, null);
//session.setDebug(true);
session.setPasswordAuthentication(new URLName("smtp",host,25,"INBOX",user,pass), new PasswordAuthentication(user,pass));
//Define message
MimeMessage msg = new MimeMessage(session);
//Set the from address
msg.setFrom(new InternetAddress(from));
//Set the to address
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(ToAddress));
//Oggetto della mail
msg.setSubject("Cella Frigo non contiene dati corretti");
//Il corpo della mail
sb.append("");
msg.setText(sb.toString( ));
//Per inviare il messaggio
Transport tr = session.getTransport("smtp");
tr.connect(host, user, pass);
msg.saveChanges(); // don't forget this
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
}
catch (MessagingException e) {
System.out.println(e);
}
}
public static void main(String args[]) {
Controllo c = new Controllo();
}
}
mi da quest'errore:
D:\NetBeansProjects\JavaApplication7\src\javaappli cation7\Controllo.java:178: invalid method declaration; return type required
Come fare a risolvere....io al posto delle popup fatte con JOptionPane devo riuscire ad inviare una mail con dei dati presi da controllo tipo data attuale e ceel interessata...