2016-04-11 24 views
0

Bu benim kişi nesnem. İşte Bir REST api dosyasında gönderilemiyor

persons 
+-------------+-------------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+-------------+-------------+------+-----+---------+----------------+ 
| id   | int(11)  | NO | PRI | NULL | auto_increment | 
| given_name | varchar(30) | NO |  | NULL |    | 
| family_name | varchar(30) | NO |  | NULL |    | 
+-------------+-------------+------+-----+---------+----------------+ 

Here's the method that does the posting, 




public static void addPerson(Person person) { 
      String givenName = person.getGivenName(); 
      String familyName = person.getFamilyName(); 

      String queryString = "INSERT INTO persons (given_name, family_name) VALUES (" + givenName + " , " + familyName +");"; 
      Connector connector = null; 
      try { 
       connector = Connector.getInstance(); 
       connector.executeQuery(queryString); 
      } catch (SQLException e1) { 

       e1.printStackTrace(); 
      } 

     } 

JAX-RS

kullanarak POST yapar servis yöntemi var
@POST 
    @Consumes(MediaType.APPLICATION_JSON) 
    @Produces(MediaType.APPLICATION_JSON) 
    public void addPerson(Person person){ 

     TeacherService.addPerson(person); 
    } 

konu veritabanına kaydedilir varlık değildir aralıksız olarak nesne, yayınlanan almıyor olmasıdır .

String queryString = "INSERT INTO persons (given_name, family_name) VALUES (" + givenName + " , " + familyName +");"; 

söz peeskillet gibi, sorun tırnak gibidir:

+1

Gördüğünüz bir sorun [this] ile ilgilidir (http://stackoverflow.com/q/36482730/2587435) –

cevap

0

sorun bu çizgidir. Java oluşturan kod örneğin geçerli:

-- From your code: 
INSERT INTO persons (given_name, family_name) VALUES (MyName , MyLastname); 
-- Should be: 
INSERT INTO persons (given_name, family_name) VALUES ('MyName' , 'MyLastname'); 

Yani Java kod olur: Ben Hazırlanan Tablolar (veya Parametreli sorgular) kullanmak için tavsiye edersiniz Ancak

String queryString = "INSERT INTO persons (given_name, family_name) VALUES ('" + givenName + "' , '" + familyName +"');"; 

SQL injection önlemek için.