2016-03-29 24 views
0

現在、Spring MVCフレームワークでJDBCテンプレートを使用してデータにアクセスし、クエリを作成しています。私はこれが不必要な定型コードをたくさん持っているため、これがデータにアクセスする有効な方法ではないと聞きました。このE.Gを行う別の方法があるかどうかを知りたいと思います。 Spring JPA/hibernateでもこれがどのように達成されるかはまだ分かりません。spring JDBCテンプレートからJPAへの切り替え

//DAO Class 
@Repository 
public class UserDAO { 

private final String GET_USERS_SQL = "SELECT users.username AS 'users.username',\n" 
     + "  users.enabled AS 'users.enabled',\n" 
     + "  users.timestamp AS 'users.timestamp',\n" 
     + "  users.id AS 'users.id'\n" 
     + " FROM users"; 

@Autowired 
private JdbcTemplate jt; 

public List<User> getAllUsers() { 
List<User> users = this.jt.query(GET_USERS_SQL, new UserRowMapper()); 

    return users; 
    } 

} 

//エンティティクラス

public class User { 

private final long id; 
private final String username; 
private final boolean enabled; 
private final Timestamp timestamp; 

public User(long id, String username, boolean enabled, Timestamp timestamp) { 
    this.id = id; 
    this.username = username; 
    this.enabled = enabled; 
    this.timestamp = timestamp; 
} 


// getters & setters 

@Override 
    public String toString() { 
    return "User{" + "id=" + id + ", username=" + username + ", enabled=" + enabled + ", timestamp=" + timestamp + '}'; 
} 

}

コードは、すべてが正常に動作しているが、これは、このような定型的なコード 誰でものような問題につながることができますJDBCテンプレートを使用して簡単な例をこれがどのように簡単なバージョンに変更できるのか知っていますか?

おかげ

答えて

0

あなたは春JPAデータを使用することができます。

@Repository 
    public interface UserDAO extends CrudRepository<User, Long>, PagingAndSortingRepository<User, Long> { 
    } 

サービスクラス:

@Service 
public UserService { 

     @Resource 
     private UserDoa dao; 

     @Transactional 
     public List<User> getAllUsers() { 
      List<User> users = dao.findAll(); 
      return users; 
     } 
    } 

これはあなたがまたからqueryDsl and Specificationsを使用することができますquery creation mechanism

のリストですより複雑なシナリオとほぼ完全に取り除くことができますlのSQLボイラープレートの方法。

+0

は、私がどこかに私のクエリを含める必要がありますか?私は自分の設定ファイルを変更する必要があると思います。 pom.xmlとservlet.xml? – r93

+0

'@ NamedQuery'を使って必要な場合に備えてクエリをインクルードすることができます。はい、春データのアーティファクト依存性を追加する必要がありますが、それは私の意見では価値があります。 –

+0

@ r93このチュートリアルのリストは役立ちますhttp://www.petrikainulainen.net/spring-data-jpa-tutorial/ –

0

Spring Data JPAを使用すると、多くのコードを生成することができます。

主な手順:

  1. JPAリポジトリを有効にし、スプリング・データ-JPAへ
  2. を依存関係を追加します。あなたは今のリポジトリを使用することができますCrudRepository

を拡張するリポジトリのインターフェースを作成します。実装が生成されます。

は、詳細な手順を参照してください:http://docs.spring.io/spring-data/jpa/docs/1.9.4.RELEASE/reference/html/#repositories.core-concepts

関連する問題