2016-11-18 8 views
1

ユーザにいくつかのフィールドのある予約を予約させるためのウィンドウがあります。(date, start time, end time, ...)をデータベースに保存します。なぜ私はこのデータのセットを取得するためにgetメソッドを使用してJava、データベース - データベースに直接入れることができる新しいオブジェクトを割り当てる理由

Appointment a = new Appointment(date,start,end,...); 

、その後のようなオブジェクトで、これらのフィールドを保存バックの代わりに、データベースに直接それを保存する必要がありますか?

オブジェクト指向プログラミングの仕組みによって、誰かが教えてくれるのですが、タスクはデータベースに新しいデータセットを挿入するだけです。修正は必要ありません。

+0

関連コードをさらに表示してください。データベースAPIは 'Appointment'オブジェクトを受け入れる能力を持っていますか? 'Appointment'オブジェクトはあなたが与えた値を操作しますか? – 4castle

答えて

2

はい、私たちはそれらを直接置くことができますが、それは不便です。

私たちは生の入力データと対話しないようにOOPスタイルで作業しています。いくつかのデータを受け取った後、我々は通常、あるクラスのインスタンスを構築し、このオブジェクトとその状態だけで動作します。

インスタンスが提示するオブジェクトに関するすべての必要な情報を保持するので便利です。私たちは問題を抱えていないので、1つの引数だけを使って別のメソッドに渡すことができます(保存したいフィールドの数は考慮しません)。

処理中に、インスタンスが保持する準備が整う前に、フィルタリング、検証などのいくつかのマイルストーンを実行することがあります。したがって、このようなインフラストラクチャ・メソッドは、既に形成されたオブジェクトを完全に取り、その状態に触れるだけで重要です。

最後に、OOPを使用すると、コードを読みやすく、わかりやすくすることができます。

0

必ずしもこれを行う必要はありません。たとえば、基本EntityManagerを使用して、executeQueryメソッドを使用して任意のデータベースに値を直接挿入することができます。オブジェクトの作成は、主にオブジェクト指向のプログラミングのためのものであり、私(そして私のようなOOの中毒者)は、オブジェクトへの保存を優先します。 1つの理由は、データベースから情報を取得する場合、実際に返されたデータがはるかに理解できるということです。もう1つは全体的なコードの概要です。それをより読みやすくしてくれる。 EntityManagerの

例:

EntityManager em; 
//Initialize em by setting up the database source, there's a lot of information on google =) 
em.createQuery(
    "SELECT c FROM Customer c WHERE c.name LIKE :custName") 
    .setParameter("custName", name) 
    .setMaxResults(10) 
    .getResultList(); 
関連する問題