Added setup and code for MySQL DB
This commit is contained in:
		
							parent
							
								
									2478619202
								
							
						
					
					
						commit
						d7524f9501
					
				| @ -62,6 +62,21 @@ | |||||||
| 			<version>${oracle.version}</version> | 			<version>${oracle.version}</version> | ||||||
| 		</dependency> | 		</dependency> | ||||||
| 
 | 
 | ||||||
|  | 		<!-- Postgres JDBC --> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>org.postgresql</groupId> | ||||||
|  |             <artifactId>postgresql</artifactId> | ||||||
|  |             <version>9.4.1208</version> | ||||||
|  |         </dependency> | ||||||
|  | 
 | ||||||
|  | 		<!-- MySql JDBC --> | ||||||
|  | 
 | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>mysql</groupId> | ||||||
|  | 			<artifactId>mysql-connector-java</artifactId> | ||||||
|  | 			<version>5.1.38</version> | ||||||
|  | 		</dependency> | ||||||
|  | 
 | ||||||
| 		<!-- Junit Library --> | 		<!-- Junit Library --> | ||||||
| 
 | 
 | ||||||
| 		<dependency> | 		<dependency> | ||||||
|  | |||||||
| @ -9,10 +9,10 @@ import javax.persistence.*; | |||||||
| @Entity | @Entity | ||||||
| @Table(name = "CAR") | @Table(name = "CAR") | ||||||
| @NamedStoredProcedureQueries({ | @NamedStoredProcedureQueries({ | ||||||
|         @NamedStoredProcedureQuery(name = "findByModelProcedure", procedureName = "FIND_CAR_BY_MODEL", resultClasses = { Car.class }, parameters = { @StoredProcedureParameter(name = "p_model", type = String.class, mode = ParameterMode.IN), |         @NamedStoredProcedureQuery(name = "findByModelProcedure", procedureName = "FIND_CAR_BY_MODEL", resultClasses = { Car.class }, parameters = { @StoredProcedureParameter(name = "data", type = Car.class, mode = ParameterMode.REF_CURSOR), | ||||||
|                 @StoredProcedureParameter(name = "data", type = Car.class, mode = ParameterMode.REF_CURSOR) }), |                 @StoredProcedureParameter(name = "p_model", type = String.class, mode = ParameterMode.IN) }), | ||||||
|         @NamedStoredProcedureQuery(name = "findByYearProcedure", procedureName = "FIND_CAR_BY_YEAR", resultClasses = { Car.class }, parameters = { @StoredProcedureParameter(name = "p_year", type = Integer.class, mode = ParameterMode.IN), |         @NamedStoredProcedureQuery(name = "findByYearProcedure", procedureName = "FIND_CAR_BY_YEAR", resultClasses = { Car.class }, parameters = { @StoredProcedureParameter(name = "data", type = Car.class, mode = ParameterMode.REF_CURSOR), | ||||||
|                 @StoredProcedureParameter(name = "data", type = Car.class, mode = ParameterMode.REF_CURSOR) }) }) |                 @StoredProcedureParameter(name = "p_year", type = Integer.class, mode = ParameterMode.IN) }) }) | ||||||
| public class Car { | public class Car { | ||||||
| 
 | 
 | ||||||
|     private long id; |     private long id; | ||||||
| @ -30,6 +30,7 @@ public class Car { | |||||||
|     @Id |     @Id | ||||||
|     @SequenceGenerator(name = "CarIdSequence", sequenceName = "SEQ_CAR_ID", allocationSize = 1) |     @SequenceGenerator(name = "CarIdSequence", sequenceName = "SEQ_CAR_ID", allocationSize = 1) | ||||||
|     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CarIdSequence") |     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CarIdSequence") | ||||||
|  |     //@GeneratedValue(strategy = GenerationType.IDENTITY) -- for MySQL | ||||||
|     @Column(name = "ID", unique = true, nullable = false, scale = 0) |     @Column(name = "ID", unique = true, nullable = false, scale = 0) | ||||||
|     public long getId() { |     public long getId() { | ||||||
|         return id; |         return id; | ||||||
|  | |||||||
| @ -16,5 +16,15 @@ | |||||||
| 			<property name="hibernate.connection.password" value="JPA" /> | 			<property name="hibernate.connection.password" value="JPA" /> | ||||||
| 			<property name="hibernate.show_sql" value="true" /> | 			<property name="hibernate.show_sql" value="true" /> | ||||||
| 		</properties> | 		</properties> | ||||||
|  | 
 | ||||||
|  | 		<!-- MySQL properties configuration --> | ||||||
|  | 		<!--properties> | ||||||
|  | 			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> | ||||||
|  | 			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/jpa" /> | ||||||
|  | 			<property name="javax.persistence.jdbc.user" value="jpa" /> | ||||||
|  | 			<property name="javax.persistence.jdbc.password" value="bagnara.82" /> | ||||||
|  | 			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> | ||||||
|  | 			<property name="hibernate.show_sql" value="true" /> | ||||||
|  | 		</properties--> | ||||||
| 	</persistence-unit> | 	</persistence-unit> | ||||||
| </persistence> | </persistence> | ||||||
| @ -0,0 +1,8 @@ | |||||||
|  | DELIMITER $$ | ||||||
|  | CREATE DEFINER=`root`@`localhost` PROCEDURE `FIND_CAR_BY_YEAR`(in p_year int) | ||||||
|  | begin | ||||||
|  | SELECT ID, MODEL, YEAR | ||||||
|  |     FROM CAR | ||||||
|  |     WHERE YEAR = p_year; | ||||||
|  | end$$ | ||||||
|  | DELIMITER ; | ||||||
| @ -0,0 +1,6 @@ | |||||||
|  | CREATE TABLE `car` ( | ||||||
|  |   `ID` int(10) NOT NULL AUTO_INCREMENT, | ||||||
|  |   `MODEL` varchar(50) NOT NULL, | ||||||
|  |   `YEAR` int(4) NOT NULL, | ||||||
|  |   PRIMARY KEY (`ID`) | ||||||
|  | ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; | ||||||
| @ -28,7 +28,7 @@ public class StoredProcedureTest { | |||||||
|         EntityTransaction transaction = entityManager.getTransaction(); |         EntityTransaction transaction = entityManager.getTransaction(); | ||||||
|         try { |         try { | ||||||
|             transaction.begin(); |             transaction.begin(); | ||||||
|             Car car = new Car("Ford Mustang", 2015); |             Car car = new Car("Fiat Punto", 2015); | ||||||
|             entityManager.persist(car); |             entityManager.persist(car); | ||||||
|             transaction.commit(); |             transaction.commit(); | ||||||
|         } catch (Exception e) { |         } catch (Exception e) { | ||||||
| @ -57,12 +57,21 @@ public class StoredProcedureTest { | |||||||
|     public void findCarsByYearNoNamedStored() { |     public void findCarsByYearNoNamedStored() { | ||||||
|         StoredProcedureQuery findByYearProcedure = |         StoredProcedureQuery findByYearProcedure = | ||||||
|          entityManager.createStoredProcedureQuery("FIND_CAR_BY_YEAR", Car.class) |          entityManager.createStoredProcedureQuery("FIND_CAR_BY_YEAR", Car.class) | ||||||
|          .registerStoredProcedureParameter("p_year", Integer.class, ParameterMode.IN) |            .registerStoredProcedureParameter("data", Void.class, ParameterMode.REF_CURSOR) | ||||||
|          .registerStoredProcedureParameter("data", Void.class, ParameterMode.REF_CURSOR).setParameter("p_year", 2015); |            .registerStoredProcedureParameter("p_year", Integer.class, ParameterMode.IN) | ||||||
|  |            .setParameter("p_year", 2015); | ||||||
| 
 | 
 | ||||||
|         findByYearProcedure.getResultList().forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear())); |         findByYearProcedure.getResultList().forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear())); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @Test @Ignore | ||||||
|  |     public void findCarsByYearMySql() { | ||||||
|  |         StoredProcedureQuery storedProcedure = entityManager.createStoredProcedureQuery("FIND_CAR_BY_YEAR",Car.class) | ||||||
|  |           .registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN) | ||||||
|  |           .setParameter(1, 2015); | ||||||
|  |         storedProcedure.getResultList().forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear())); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     @AfterClass |     @AfterClass | ||||||
|     public static void destroy() { |     public static void destroy() { | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -16,6 +16,16 @@ | |||||||
| 			<property name="hibernate.connection.password" value="JPA" /> | 			<property name="hibernate.connection.password" value="JPA" /> | ||||||
| 			<property name="hibernate.show_sql" value="true" /> | 			<property name="hibernate.show_sql" value="true" /> | ||||||
| 		</properties> | 		</properties> | ||||||
|  | 
 | ||||||
|  | 		<!-- MySQL properties configuration --> | ||||||
|  | 		<!--properties> | ||||||
|  | 			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> | ||||||
|  | 			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/jpa" /> | ||||||
|  | 			<property name="javax.persistence.jdbc.user" value="jpa" /> | ||||||
|  | 			<property name="javax.persistence.jdbc.password" value="bagnara.82" /> | ||||||
|  | 			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> | ||||||
|  | 			<property name="hibernate.show_sql" value="true" /> | ||||||
|  | 		</properties--> | ||||||
| 	</persistence-unit> | 	</persistence-unit> | ||||||
| </persistence> | </persistence> | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user