2014-06-19 234 views
0

我有一個要求將國家代碼像+919025645765的電話號碼存儲到數據庫中。但是,當我試圖存儲它只存儲919025645765的號碼。如何使用java在數據庫中存儲特殊符號(+)?

我這樣做是利用春季休眠..

請幫助我.. 這是我在控制器方法

@RequestMapping(value="/signup",method = RequestMethod.POST) 
     @ResponseBody() 
     public User processSignUp(@RequestBody SignUpForm signUpForm, HttpServletRequest request) 
     { 
       User newUser=new User(); 

      newUser.setFirstName(signUpForm.getFirstname()); 
      newUser.setPhoneNumber(signUpForm.getMobilenumber());//here mobile number is +919025645765 
      userServices.saveUser(newUser);//here we are sending new user to DAOImpl class where data is stored 

    } 

我DaoImpl是:

@Override 
    public void saveUser(User newUser) { 


     try{ 
       sessionFactory.getCurrentSession().save(newUser); 

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

     } 
    } 

這裏數據名和電話號碼存儲在分貝,但它看起來像919025645765這隻..但我需要存儲+919025645765這樣。

和我的POJO類是這樣的:

@Entity 
@Table(name = "User") 
public class User implements Serializable { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1522690839402700573L; 

    @Id 
    @GeneratedValue 
    @Column(name="UserID") 
    private long userID; 

    @Column(name = "FirstName") 
    private String firstName; 

    @Column(name="PhoneNumber") 
    private String phoneNumber; 

} 
+2

什麼數據類型是電話號碼?你能顯示一些代碼嗎? – Martin

+0

春季dbs中禁止使用大部分特殊字符,除了句點。 –

+0

我發佈了我的示例代碼..請檢查一次.. – srihari

回答

1

如果必須存放「+」,那麼你就需要將電話號碼存儲爲一個字符串。例如您的pojo可能看起來像這樣:

@Entity 
@Table(name = "people", 
class Person { 

    @Column(nullable = false) 
    private String phoneNumber; 
} 
+0

我添加了我的示例代碼,一旦檢查它.. – srihari

相關問題