当前位置: 首页 > 面试题库 >

数据库插入

史默
2023-03-14
问题内容
if(lines.size() >= 5){
    String Actor  = it.next();
    String Bio = it.next();
    String More_Bio = it.next();
    String Reason = it.next();
    String Fact = it.next();

    if ( it.hasNext()== true &&it.next().startsWith("Actor : ") )
    {


         // for quotes

      Actor = Actor.replace("'", "''");
         // remove comment
      Actor = Actor.replace("Actor:  ", " ");

         System.out.println(Actor);


    }

    if ( it.hasNext()== true &&it.next().startsWith("Bio: ") )
    {

      Bio = Bio.replace("'", "''");
      Bio = Bio.replace("Bio:  ", "");
      System.out.println(Bio);

    }

     if (it.hasNext()== true &&it.next().startsWith("More_Bio: "))
    { 
    More_Bio = More_Bio.replace("'", "''");
    More_Bio = More_Bio.replace("More_Bio:  ", "");
    System.out.println(More_Bio);

    }
     if (it.hasNext()== true &&it.next().startsWith("Reason: ") )
    { 
    Reason = Reason.replace("'", "''");
    Reason = Reason.replace("Reason:  ", "");
    System.out.println(Reason);

    }
    if (it.hasNext()== true &&it.next().startsWith("Fact: ") )
    { 
   Fact =Fact.replace("'", "''");
   Fact =Fact.replace("Fact:  ", "");
    System.out.println(Fact);

    }

    Statement statement = con.createStatement();
    statement.executeUpdate("INSERT INTO Tiffany (Actor, Bio, More_Bio, Reason,Fact) values('"+Actor+"','"+Bio+"','"+More_Bio+"','"+Reason+"','"+Fact+"')");

从Actor中读取的文件:Zac Efron

传记:他出生于加利福尼亚州的圣路易斯·奥比斯波,并在阿罗约·格兰德附近长大。在几集《夏姆兰》(2004)的客串中,他以女孩疯狂的卡梅隆·贝尔的身份参加常规演出。埃夫隆还出演过许多飞行员,例如卡尔·兰克(Carl
Laemke)的《大世界》(2003)(电视)和三重播放(2004)(TV)。

More_Bio:Efron于2006年6月毕业于Arroyo
Grande高中。Efron最喜欢的运动包括高尔夫球,滑雪,攀岩和单板滑雪。他最近在海滩上度过了“夏日之乡”之后又增加了冲浪。

原因:自从我在《高中音乐剧》和《发胶》中首次见到他以来,我就迷上了这位华丽,好人,才华横溢的演员,现在他变得更热了。他是好莱坞炙手可热的王子。

事实:扎克最珍贵的财产是他亲笔签名的棒球系列,他是旧金山巨人队的忠实粉丝。

演员:泰勒·洛特纳(Taylor Lautner)

简介:泰勒·丹尼尔·洛特纳(Taylor Daniel Lautner)出生于密歇根州大急流城,父母是黛博拉(Deborah)和丹尼尔·洛特纳(Daniel
Lautner)。他和妹妹马克纳(Makena)在密歇根州哈德逊维尔(Hudsonville)的一个礼貌的罗马天主教家庭中长大。

More_Bio:但是,除了对武术的热爱之外,泰勒很快就对七岁的表演产生了热爱,当时他从事演艺事业的武术教练鼓励他在试镜中小露面。汉堡王广告。

原因:这是一个笨拙的青少年偶像!在《暮光之城》系列中,我爱他为雅各布·布莱克(Jacob
Black)!他是我见过的最好看的人之一。当我发推文给我时,我非常兴奋,他回答了一次!

事实:大一和大二的时候他踢足球。他具有德国,法国,荷兰和美国原住民(特别是渥太华和波塔托托米)的血统。我的天啊!我们俩都喜欢莱昂国王乐队。

我正在尝试将上面的文件导入数据库。但这是我运行它时遇到的错误。

Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's favorite sports include golf, skiing, rock climbing, and snowboarding.

He rece' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.Util.getInstance(Util.java:381)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485)
    at TiffanyWriter.main(TiffanyWriter.java:109)

问题答案:

应该首先使用PreparedStatement它,因为它可以防止SQL注入攻击。@John
Moses发布了Java官方文档中的使用PreparedStatement的教程,这是另一个很好的链接:MySQL和Java JDBC-
Tutorial。

将您的代码移动到PreparedStatement,应该像这样:

PreparedStatement ps = con.prepareStatement("INSERT INTO Tiffany(Actor, Bio, More_Bio, Reason, Fact) VALUES (?, ?, ?, ?, ?) ");
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();


 类似资料:
  • 利用INSERT语句将数据插入表中 数据插入 用来插入(添加)行到数据库。 插入完整的行 插入行的一部分 插入某些查询结果 插入完整的行 指定表名和被插入到新行中的值 编写依赖与特定列次序的SQL语句,这样做有时会出错,但编写方便。 mysql> INSERT INTO Customers -> VALUES('1000000006', -> 'Toy Land', ->

  • 本文向大家介绍Android 将数据插入数据库,包括了Android 将数据插入数据库的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 我是android新手,这是我第一次在应用程序中使用room。未执行插入操作或未创建数据库或任何其他错误。 我不知道我做错了什么,所以我需要你的帮助。 此程序正在运行,但未显示任何结果。屏幕上什么都没有显示。 这是我的代码-请让我知道此代码中的错误以及我应该如何更正它。 汽车细节。JAVA 卡多。爪哇- CarListDatabase。JAVA CarRepository.java 公共无效get

  • 我想我在这段代码中遇到了一点问题:当我试图在数据库中插入值时,我遇到了一个错误。

  • 事情是这样的 我不知道发生了什么,如果有人能帮忙,我会非常感激的。THX!

  • 问题内容: 我正在尝试将数据发送到php并将其插入到mysql数据库,但它似乎不起作用。我尝试将数据发送到php只是为了将其编码为json并将其回显为swift并返回结果,因此这意味着php文件已接收到数据。但是,插入数据无效。 swift2 httppost json.php 问题答案: 如果让服务器只是响应请求,那么问题就出在服务器内部,而不是客户端代码。我建议在PHP代码中添加一些错误处理: