Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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 数据库ps语句插入_Java_Mysql_Database_Jdbc - Fatal编程技术网

Java 数据库ps语句插入

Java 数据库ps语句插入,java,mysql,database,jdbc,Java,Mysql,Database,Jdbc,正在尝试将这样的文件插入到数据库中 演员:泰勒·劳特纳 简介:泰勒·丹尼尔·劳特纳出生于密歇根州的大急流城,父母是黛博拉和丹尼尔·劳特纳。他和妹妹马克娜在密歇根州哈德逊维尔一个彬彬有礼的罗马天主教家庭长大。六岁时,泰勒开始在法比亚诺的空手道学校学习武术,他和家人很快就注意到了他在这项运动中的独特天赋。他很快被邀请与七届世界空手道冠军迈克尔·查图拉塔布特(又名迈克·查特)一起训练在八岁时,他被要求在十二年内代表他的国家参加世界空手道协会的比赛,并在该协会中成为世界少年形式和武器冠军,赢得三枚金牌。

正在尝试将这样的文件插入到数据库中

演员:泰勒·劳特纳

简介:泰勒·丹尼尔·劳特纳出生于密歇根州的大急流城,父母是黛博拉和丹尼尔·劳特纳。他和妹妹马克娜在密歇根州哈德逊维尔一个彬彬有礼的罗马天主教家庭长大。六岁时,泰勒开始在法比亚诺的空手道学校学习武术,他和家人很快就注意到了他在这项运动中的独特天赋。他很快被邀请与七届世界空手道冠军迈克尔·查图拉塔布特(又名迈克·查特)一起训练在八岁时,他被要求在十二年内代表他的国家参加世界空手道协会的比赛,并在该协会中成为世界少年形式和武器冠军,赢得三枚金牌。2003年,泰勒继续在武术巡回赛中大放异彩,他在纳斯卡的世界排名第一。”在12岁时,他成为三届少年世界冠军

More_Bio:然而,除了对武术的热爱,泰勒在7岁时就很快爱上了表演。当时,他从事演艺事业的武术教练鼓励他参加汉堡王广告中的一个小角色试镜。虽然他没有成功,但他非常享受这段经历,以至于他告诉父母他想从事演艺事业。很快,他和他的家人就从密歇根州的家来回旅行到加利福尼亚州,这样泰勒就可以定期试演表演角色了。当泰勒十岁时,由于频繁的旅行和机票开始变得难以承受,他的家人做出了一个至关重要的决定,搬到洛杉矶,在那里泰勒可以全职试镜电影、电视和商业广告

理由:这是一个健壮的青少年偶像!我爱他就像《暮光之城》系列中的雅各布·布莱克!他是我见过的最帅的男人之一。我在推特上给他发了一条消息,他回复了我一次,我太激动了

事实:他在高中一年级和二年级时踢足球。他是德国人、法国人、荷兰人和印第安人(特别是渥太华人和波塔瓦托米人)后裔。天哪!我们都喜欢里昂国王乐队

演员:罗伯特·帕丁森

简介:他于1986年5月13日出生于英国伦敦。他喜欢音乐,是一名出色的音乐家,弹吉他和钢琴。罗伯特15岁时开始在巴恩斯戏剧公司从事业余戏剧表演。之后,他在《魔戒》(2004)(电视)(暮光之国)中饰演吉塞尔

更多信息:2003年,罗伯特在《哈利波特与火焰杯》(2005)中扮演塞德里克·迪戈里。他在2003年底与迈克·纽厄尔会面一周后获得角色。此后,他在备受期待的电影《暮光之城》(2008/I)中扮演爱德华·卡伦此外,罗伯特还完成了《小灰烬》(2008)中的萨尔瓦多·达利(Salvador Dalí)和《如何生活》(2008)中的艺术角色

理由:奇怪的是,当我第一次在《哈利波特》中看到罗伯特·帕丁森扮演塞德里克·迪戈里时,他让我大吃一惊,但当我在《暮光之城》中看到他扮演吸血鬼爱德华·卡伦时,他却让我心动不已。爱德华队赢得了胜利!!我只是喜欢他凌乱的头发和浓密的眉毛

事实:他是一位出色的音乐家,弹吉他和钢琴。他三岁开始上钢琴课,五岁开始上古典吉他课

这是执行插入的代码

String Actor = "", Bio = "", More_Bio = "", Fact ="", Reason = "";
while ((it = br.readLine()) != null)   {

    if (it.startsWith("Actor: "))
    {
        it = it.replace("'", "\"");
         // remove actor
      it = it.replace("Actor:  ", " ");
         Actor = it;
         System.out.println(Actor);
        // ps.setString(1, Actor);
    }


    if (it.startsWith("Bio:"))
    {
        it = it.replace("'", "\"");
         // remove actor
      it = it.replace("Bio:  ", " ");
          Bio = it;
         System.out.println(Bio);
     //    ps.setString(2, Bio);
    }
    if (it.startsWith("More_Bio:"))
    {
        it = it.replace("'", "\"");
         // remove actor
      it = it.replace("More_Bio:  ", " ");
     More_Bio = it;
         System.out.println(More_Bio);
      //   ps.setString(3, More_Bio);
    }
    if (it.startsWith("Reason:"))
    {
        it = it.replace("'", "\"");
         // remove actor
      it = it.replace("Reason:  ", " ");
     Reason = it;
         System.out.println(Reason);
    //     ps.setString(4, Reason);
    }

    if (it.startsWith("Fact:"))
    {
        it = it.replace("'", "\"");
         // remove actor
      it = it.replace("Fact:  ", " ");
     Fact = it;
         System.out.println(Fact);
       //  ps.setString(5, Fact);
    }


    ps.setString(1, Actor);
    ps.setString(2, Bio);
    ps.setString(3, More_Bio);
    ps.setString(4, Reason);
    ps.setString(5, Fact);
    ps.executeUpdate(); 

}
ps.close();
con.close();

如果代码在循环中有ps语句,则Taylor Lautner和Robert Pattinson的信息将被插入数据库两次,当我将其从while循环中取出时,只插入最后一个Robert Pattinson。Taylor被忽略。

您获取数据的方法是错误的。您试图执行的是更新语句当你找到一个演员、一个传记或任何这样的关键词时,这是错误的,你应该先收集所有信息,然后执行更新

我建议采取以下办法:

  • 创建并通过while循环在POJO中填充有关参与者的所有信息。在映射中维护此信息(其中您的键可能是参与者的名称)

  • 然后遍历映射,从POJO中检索每个键的信息,创建update语句并执行命令

示例代码可能如下所示:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;

public class TextReader {

    public static void main(String[] args) {
        new TextReader().reader();
    }

    public void reader() {
        BufferedReader br = null;
        String it;
        String Actor = "", Bio = "", More_Bio = "", Fact = "", Reason = "";

        try {
            HashMap<String, PersonData> informationMap = new HashMap<String, TextReader.PersonData>();
            br = new BufferedReader(new FileReader(new File("textFile.txt")));
            
            while ((it = br.readLine()) != null) {

                if (it.startsWith("Actor: ")) {
                    it = it.replace("'", "\"");
                    // remove actor
                    it = it.replace("Actor:  ", " ");
                    Actor = it;
//                  System.out.println(Actor);
                    // ps.setString(1, Actor);
                }

                PersonData dataVO = informationMap.containsKey(Actor) ? informationMap.get(Actor) : new PersonData();

                if (it.startsWith("Bio:")) {
                    it = it.replace("'", "\"");
                    // remove actor
                    it = it.replace("Bio:  ", " ");
                    Bio = it;
                    // System.out.println(Bio);
                    dataVO.setBio(Bio);
                    // ps.setString(2, Bio);
                }
                if (it.startsWith("More_Bio:")) {
                    it = it.replace("'", "\"");
                    // remove actor
                    // it = it.replace("More_Bio:  ", " ");
                    More_Bio = it;
//                  System.out.println(More_Bio);
                     dataVO.setMoreBio(More_Bio);
                    // ps.setString(3, More_Bio);
                }
                if (it.startsWith("Reason:")) {
                    it = it.replace("'", "\"");
                    // remove actor
                    it = it.replace("Reason:  ", " ");
                    Reason = it;
                     dataVO.setReason(Reason);
                    // System.out.println(Reason);
                    // ps.setString(4, Reason);
                }

                if (it.startsWith("Fact:")) {
                    it = it.replace("'", "\"");
                    // remove actor
                    it = it.replace("Fact:  ", " ");
                    Fact = it;
                     dataVO.setFact(Fact);
                    // System.out.println(Fact);
                    // ps.setString(5, Fact);
                }

//              System.out.println(Actor + "\t" + Bio + "\t" + More_Bio + "\t"
//                      + Reason + "\t" + Fact);
                informationMap.put(Actor, dataVO);
            }
            
            for(String actorName: informationMap.keySet()){
                PersonData dataVO = informationMap.get(actorName);
                System.out.println(actorName);
                     // === Create your preparedstatement heare and execute the update ====
            }
        } catch (Exception exe) {
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException ex) {
                }
            }
        }
    }
    /**
     * Sample Person POJO class
     */
    public class PersonData {
        private String bio;
        private String moreBio;
        private String fact;
        private String reason;

        public String getBio() {
            return bio;
        }

        public void setBio(String bio) {
            this.bio = bio;
        }

        public String getMoreBio() {
            return moreBio;
        }

        public void setMoreBio(String moreBio) {
            this.moreBio = moreBio;
        }

        public String getFact() {
            return fact;
        }

        public void setFact(String fact) {
            this.fact = fact;
        }

        public String getReason() {
            return reason;
        }

        public void setReason(String reason) {
            this.reason = reason;
        }
    }
}
注意

  • Java命名约定规定变量名应该以小写开头。虽然为了一致性起见,我遵循了代码中的内容,但我强烈建议您重构变量名

  • >P>我做了一个基本的假设:你的演员名字是唯一的。这就是为什么在这个例子中我用它作为一个键。如果这不是真的,那么你可能想考虑演员名字作为POJO类的一部分,并使用另一个唯一的标识符作为你的键。