跳到主要內容

發表文章

目前顯示的是 7月, 2017的文章

Spring boot v1.5 (六) spring data jpa 基本操作

最近天氣好熱,做甚麼事都覺得很懶,想要寫個spring data jpa也是懶懶的,不過這部分卻也是滿重要的一部分,前一篇介紹 JDBCTemplate ,已經覺得跟以前寫SQL方式有所差異了,JPA帶來的是物件導向的設計面思考,說到JPA不得不提提 ORM ,Object-relational mapping主要想法為簡化及物件導向的設計,讓RDB更貼近Object,在設計上可以更加便利,甚至透過一些設計可以讓Table具有物件導向的特性如繼承等等,以往要使用ORM的框架,都會先以 Hibernate 進行,不過近來慢慢地轉向JPA,主要還是在減少程式碼、增加彈性等等,大體的功能沒有差異很大,所以從Hibernate轉到JPA問題不大,JPA要介紹的東西還滿多的,所以我這裡會再分成三個章節來介紹。 SPRING DATA JPA基本操作 JPQL & Named SQL & Native SQL Cache & DB Design Pattern SPRING DATA JPA更加簡化的程式撰寫,只需要一個 Interface內寫一些查詢 method就可以操作JPA,因為利用 method 組合查詢條件,確實很方便也很容易理解,若是都沒有辦法符合需求當然也可以自己實作一個來用當然沒有問題。 學習目的 :SPRING DATA JPA基本操作。 學習時數 :3.5hr 教學影片: pom.xml 說明 spring-boot-starter-web:配置 Web Project所需的函式庫。 spring-boot-starter-test:配置 unit or mock test 所需的函式庫。 spring-boot-starter-actuator:配置監控spring boot所需的函式庫,後續spring cloud會使用到,所以一開就導入。 spring-boot-starter-jdbc:配置使用jdbc所需的函式庫。 postgresql:配置postgresql連接Driver所需的函式庫。 jasypt-spring-boot-starter:加解密所需的函式庫。 spring-boot-starter-data-jpa:配置Spring data jpa所需的函式庫。

Spring boot v1.5 (五) JDBCTemplate

    我個人是較推崇 JPA的,不過有些情況下,或是架構設計上,會需要純SQL的方式進行,但是像教科書介紹的方式進行,在實務上很難看到,太難用、程式太醜、修改太複雜等等都是要克服的問題,不可能期望所有開發者都是同一高等級的,JDBCTemplate某程度簡化了使用SQL的繁雜度,若是需要大量的純SQL時,JDBCTemplate絕對是首選,也會介紹JDBCTemplate如增刪修查方式、Connection Pool設定及帳密加密的方式等等。 預先準備項目 :請先 下載 並 安裝 PostgreSQL ,並建立一個DB(louisz)及Table(users),DDL如下: 。 CREATE DATABASE louisz WITH OWNER = louisz ENCODING = 'UTF8' LC_COLLATE = 'Chinese (Traditional)_Taiwan.950' LC_CTYPE = 'Chinese (Traditional)_Taiwan.950' TABLESPACE = pg_default CONNECTION LIMIT = -1; CREATE TABLE public.users ( id integer NOT NULL, name character varying COLLATE pg_catalog."default", email character varying COLLATE pg_catalog."default", mobilenumber character varying COLLATE pg_catalog."default", CONSTRAINT user_pkey PRIMARY KEY (id) ) WITH ( OIDS = FALSE ) TABLESPACE pg_default;