Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将执行插入数据库_Java_Mysql - Fatal编程技术网

Java 将执行插入数据库

Java 将执行插入数据库,java,mysql,Java,Mysql,我想把我的编码结果插入数据库,我该怎么做? 我有一个使用java mail获取电子邮件的代码,代码运行成功,但是我想将它(电子邮件)存储到我的数据库中 这是我的代码: package ta_aing; import com.mysql.jdbc.PreparedStatement; import java.util.*; import javax.mail.*; import java.sql.Connection; import java.sql.Statement; import ta_a

我想把我的编码结果插入数据库,我该怎么做? 我有一个使用java mail获取电子邮件的代码,代码运行成功,但是我想将它(电子邮件)存储到我的数据库中

这是我的代码:

package ta_aing;

import com.mysql.jdbc.PreparedStatement;
import java.util.*;
import javax.mail.*;
import java.sql.Connection;
import java.sql.Statement;
import ta_aing.connection;

public class baca_email {


    public static void main(String[] args) {
        Properties props = new Properties();
        connection datMan = new connection();
        props.setProperty("mail.store.protocol", "imaps");
        try {
            Session session = Session.getInstance(props, null);
            Store store = session.getStore();
            store.connect("imap.gmail.com", "email", "password");
            Folder inbox = store.getFolder("INBOX");
            inbox.open(Folder.READ_ONLY);
            Message msg = inbox.getMessage(inbox.getMessageCount());
            Address[] in = msg.getFrom();
            for (Address address : in) {
                System.out.println("FROM:" + address.toString());
            }
            Multipart mp = (Multipart) msg.getContent();
            BodyPart bp = mp.getBodyPart(0);
            System.out.println("SENT DATE:" + msg.getSentDate());
            System.out.println("SUBJECT:" + msg.getSubject());
            System.out.println("CONTENT:" + bp.getContent());

            String sql = "insert into email (sender, sent_date, subject, content) values (address.toString, msg.getSentDate,msg.getSubject,bp.getContent)";

            Connection conn;
            conn = datMan.logOn();
            PreparedStatement statement;

        } catch (Exception mex) {
            mex.printStackTrace();
        }
    }
}

不设置查询字符串中的属性,是否使用?对于prepared语句,JDBC将准备好的语句汇集在一起,并更改?在飞行中节省空间。把它放在查询中是不符合目的的

String sql = "insert into email (sender, sent_date, subject, content) values (" +
        "?, ?,?,?)";

 PreparedStatement statement = con.prepareStatement(updateString);
 statement.setString(1,address.toString());
 statement.setString(2,msg.toString());
 statement.setString(3,msg.getSubject());
 statement.setString(4,bp.getContent());
 statement.executeQuery();
只用

Statement s = conn.createStatement();
s.executeUpdate(sql);

conn是与数据库连接的对象

我就是这样处理它的。。谢谢所有想帮忙的人

package ta_aing;

import com.mysql.jdbc.PreparedStatement;
import java.util.*;
import javax.mail.*;
import java.sql.Connection;
import java.sql.Statement;
import ta_aing.connection;
/**
 *
 * @author Yoas
 */
public class cobaaaaa {


    public static void main(String[] args) {
        Properties props = new Properties();
        connection datMan = new connection();
        props.setProperty("mail.store.protocol", "imaps");
        try {
            Session session = Session.getInstance(props, null);
            Store store = session.getStore();
            store.connect("imap.gmail.com", "email", "password");
            Folder inbox = store.getFolder("INBOX");
            inbox.open(Folder.READ_ONLY);
            System.out.println(inbox.getMessageCount());
            Message [] msg = inbox.getMessages();


            Connection conn;
            conn = datMan.logOn();

            for (int c=0;c<msg.length;c++){
                Address[] in = msg[c].getFrom();

            for (Address address : in) {
                System.out.println("FROM:" + address.toString());
            }
            Multipart mp = (Multipart) msg[c].getContent();
            BodyPart bp = mp.getBodyPart(0);
            System.out.println("SENT DATE:" + msg[c].getSentDate());
            System.out.println("SUBJECT:" + msg[c].getSubject());
            System.out.println("CONTENT:" + bp.getContent());

            Statement st;

            st = (Statement) conn.createStatement();

            for(int i = 0;i<in.length;i++){
                st.executeUpdate("insert into email values(null,'"+in[i].toString()+"','"+msg[c].toString()+"','"+msg[c].getSubject()+"','"+bp.getContent()+"')");
            }

            }

            conn.close();

        } catch (Exception mex) {
            mex.printStackTrace();
        }
    }
}
package ta_aing;
导入com.mysql.jdbc.PreparedStatement;
导入java.util.*;
导入javax.mail.*;
导入java.sql.Connection;
导入java.sql.Statement;
导入tau_aing.connection;
/**
*
*@作者尤斯
*/
公共级cobaaaaa{
公共静态void main(字符串[]args){
Properties props=新属性();
connection datMan=新连接();
props.setProperty(“mail.store.protocol”、“imaps”);
试一试{
Session Session=Session.getInstance(props,null);
Store Store=session.getStore();
store.connect(“imap.gmail.com”、“电子邮件”、“密码”);
文件夹收件箱=store.getFolder(“收件箱”);
收件箱。打开(文件夹。只读);
System.out.println(inbox.getMessageCount());
Message[]msg=inbox.getMessages();
连接接头;
conn=datMan.logOn();

对于(int c=0;c这跟
php
有什么关系?这行
store.connect(“imap.gmail.com”,“email”,“password”)有问题;
是打字错误吗?是的,对不起,只是一个打字错误,因为我想删除我的电子邮件和密码,上面写着“找不到符号”“在此之前,我需要在代码中键入什么?我已经尝试将address.toString更改为in.toString..,但出现了一个新错误。它表示java.sql.SQLException:无法使用executeQuery()发出数据操作语句。”。上面写着:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知列“字段列表”中的“address.toString”…我是把它放错了还是需要在它之前键入其他内容?这是因为sql语法不正确,请正确检查sql查询