หมายเหตุ 1 : เครื่องมือที่ใช้ในบทความนี้
- JDK 1.7.0_79
- MySQL 5.6
- Hibernate 5.0.2.Final
- Eclipse 4.5 (Maven Integrate)
- การติดตั้ง Java JDK 7
- การกำหนด Java Path (JAVA_HOME)
- การติดตั้ง MySQL ใน Window
- การติดตั้ง Eclipse ใน Window
1 2 3 4 5 6 | CREATE TABLE ` user ` (`id` bigint (20) NOT NULL AUTO_INCREMENT, `first_name` varchar (50) NOT NULL , `last_name` varchar (50) NOT NULL , `age` int (11) DEFAULT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; |
ขั้นตอนที่ 2 : สร้าง Java Project ด้วย Maven
สามารถดูตัวอย่างวิธีการสร้างได้จาก การสร้าง Java Project ด้วย Maven ใน Eclipse
ขั้นตอนที่ 3 : แก้ไฟล์ pom.xml
ทำการแก้ไฟล์ pom.xml เพื่อเพิ่ม dependency ต่างๆที่จำเป็นสำหรับโปรเจค ซึ่งตัว Maven จะทำการดาวน์โหลด *.jar ต่างๆที่เกี่ยวข้อง ตามที่เราระบุไว้ใน pom.xml มาไว้ในเครื่องเราเพื่อใช้กับโปรเจค
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | < project xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://maven.apache.org/POM/4.0.0" xsi:schemalocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelversion >4.0.0</ modelversion > < groupid >com.xml.hibernate</ groupid > < artifactid >HibernateXML</ artifactid > < version >0.0.1-SNAPSHOT</ version > < packaging >jar</ packaging > < name >HibernateXML</ name > < properties > < project .build.sourceencoding = "" >UTF-8</ project > </ properties > < dependencies > < dependency > < groupid >junit</ groupid > < artifactid >junit</ artifactid > < version >3.8.1</ version > < scope >test</ scope > </ dependency > <!-- MySQL database driver --> < dependency > < groupid >mysql</ groupid > < artifactid >mysql-connector-java</ artifactid > < version >5.1.36</ version > </ dependency > <!-- Hibernate --> < dependency > < groupid >org.hibernate</ groupid > < artifactid >hibernate-core</ artifactid > < version >5.0.2.Final</ version > </ dependency > <!-- for logging --> < dependency > < groupid >org.jboss.logging</ groupid > < artifactid >jboss-logging</ artifactid > < version >3.3.0.Final</ version > </ dependency > </ dependencies > <!-- Build Main Class --> < build > < plugins > < plugin > < groupid >org.codehaus.mojo</ groupid > < artifactid >exec-maven-plugin</ artifactid > < version >1.4.0</ version > < executions > < execution > < phase >package</ phase > < goals > < goal >java</ goal > </ goals > </ execution > </ executions > < configuration > < mainclass >com.xml.hibernate.App</ mainclass > < cleanupdaemonthreads >false</ cleanupdaemonthreads > </ configuration > </ plugin > </ plugins > </ build > </ project > |
- สร้างไฟล์ที่ชื่อว่า User.hbm.xml ซึ่งไฟล์ *.hbm.xml ทำหน้าที่ในการ mapping filed จากฐานข้อมูลกับ Object ของ java โดยมีการระบุความสัมพันธ์ว่า ตัวแปลไหนใน object (Class) java ทำการ map กับ ตารางอะไร, column อะไรในฐานข้อมูล โดยสร้างไว้ที่ /src/main/resources/com/xml/hibernate/User.hbm.xml และใส่โคดดังต่อไปนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | < hibernate-mapping > < class catalog = "hibernate" name = "com.xml.hibernate.model.User" table = "user" > < id name = "id" type = "java.lang.Integer" > < column name = "id" > < generator class = "identity" > </ generator ></ column ></ id > < property name = "firstName" type = "string" > < column length = "50" name = "FIRST_NAME" not-null = "true" > </ column ></ property > < property name = "lastName" type = "string" > < column length = "50" name = "LAST_NAME" not-null = "true" > </ column ></ property > < property name = "age" type = "java.lang.Integer" > < column length = "11" name = "AGE" > </ column ></ property > </ class > </ hibernate-mapping > |
- ต่อมาสร้างไฟล์ที่ชื่อว่า User.java ซึ่งเป็นไฟล์ Java ที่เรียกว่า POJO (Plain Old Java Object) โดยโครงสร้างภายในจะมีแต่ ตัวแปล และ get, set เท่านั้น โดยสร้างไว้ที่ src/main/java/com/xml/hibernate/model/User.java และใส่โคดดังต่อไปนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | package com.xml.hibernate.model; import java.io.Serializable; @SuppressWarnings ( "serial" ) public class User implements Serializable { private Integer id; private String firstName; private String lastName; private Integer age; public User() { // TODO Auto-generated constructor stub } public Integer getId() { return id; } public User(String firstName, String lastName, Integer age) { super (); this .firstName = firstName; this .lastName = lastName; this .age = age; } public void setId(Integer id) { this .id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this .firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this .lastName = lastName; } public Integer getAge() { return age; } public void setAge(Integer age) { this .age = age; } } |
สร้างไฟล์ที่ชื่อว่า hibernate.cfg.xml ซึ่งเป็นไฟล์ที่ทำหน้าที่เก็บข้อมูลต่างๆที่ใช้ในการเชื่อมต่อกับฐานข้อมูลโดยที่
- hibernate.connection.driver_class : driver ซึ่งต้องเป็น driver ที่เกี่ยวกับฐานข้อมูลที่ใช้อยู่
- hibernate.connection.url : url ที่อยู่ของฐานข้อมูล
- hibernate.connection.username : ชื่อผู้ใช้
- hibernate.connection.password : รหัสผ่าน
- hibernate.connection.pool_size : จำนวนสูงสุดที่สามารถเชื่อมต่อฐานข้อมูลได้
- hibernate.dialect : ค่าที่กำหนดเพื่อให้ Hibernate Generate SQL กับฐานข้อมูลนั้นๆ เช่น
- DB2 : org.hibernate.dialect.DB2Dialect
- HSQLDB : org.hibernate.dialect.HSQLDialect
- HypersonicSQL : org.hibernate.dialect.HSQLDialect
- Informix : org.hibernate.dialect.InformixDialect
- Ingres : org.hibernate.dialect.IngresDialect
- Interbase : org.hibernate.dialect.InterbaseDialect
- Microsoft SQL Server 2000 : org.hibernate.dialect.SQLServerDialect
- Microsoft SQL Server 2005 : org.hibernate.dialect.SQLServer2005Dialect
- Microsoft SQL Server 2008 : org.hibernate.dialect.SQLServer2008Dialect
- MySQL : org.hibernate.dialect.MySQLDialect
- Oracle (any version) : org.hibernate.dialect.OracleDialect
- Oracle 11g : org.hibernate.dialect.Oracle10gDialect
- Oracle 10g : org.hibernate.dialect.Oracle10gDialect
- Oracle 9i : org.hibernate.dialect.Oracle9iDialect
- PostgreSQL : org.hibernate.dialect.PostgreSQLDialect
- Progress : org.hibernate.dialect.ProgressDialect
- SAP DB : org.hibernate.dialect.SAPDBDialect
- Sybase : org.hibernate.dialect.SybaseDialect
- Sybase Anywhere : org.hibernate.dialect.SybaseAnywhereDialect
- show_sql : กำหนดเพื่อแสดงชุดคำสั่ง SQL หรือไม่
- /* Mapping Files */ : ใน Mapping Files ใช้สำหรับอ้างอิงไฟล์ Mapping ที่เราสร้างไปก่อนหน้านั้น
1 2 3 4 5 6 7 8 9 10 11 12 13 | < hibernate-configuration > < session-factory > < property name = "hibernate.connection.driver_class" >com.mysql.jdbc.Driver</ property > < property name = "hibernate.connection.username" >root</ property > < property name = "hibernate.connection.password" >1234</ property > < property name = "hibernate.dialect" >org.hibernate.dialect.MySQLDialect</ property > < property name = "show_sql" >true</ property > <!-- Mapping Files --> < mapping resource = "com/xml/hibernate/User.hbm.xml" ></ mapping > </ session-factory > </ hibernate-configuration > |
สร้างไฟล์ที่ชื่อว่า log4.properties ซึ่งเป็นไฟล์ที่ทำหน้าที่เก็บค่าต่างๆสำหรับ Logs โดยสร้างไว้ที่ /src/main/resources/log4.properties และใส่โคดดังต่อไปนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # Root logger option log4j.rootLogger=DEBUG,stdout # Redirect log messages to console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{ 1 }:%L - %m%n # hibernate log log4j.logger.org.hibernate.SQL=ALL log4j.logger.org.hibernate.type=ALL log4j.logger.org.hibernate.tool.hbm2ddl=INFO log4j.logger.org.hibernate=INFO |
สร้างไฟล์ที่ชื่อว่า HibernateUtil.java ซึ่งเป็นไฟล์ที่ทำหน้าที่สร้าง Session เพื่อเชื่อมต่อกับฐานข้อมูลโดยสร้างไว้ที่ /src/main/java/com/xml/hibernate/util/HibernateUtil.java และใส่โคดดังต่อไปนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package com.xml.hibernate.util; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { try { // Create the SessionFactory from hibernate.cfg.xml return new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println( "Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void shutdown() { // Close caches and connection pools getSessionFactory().close(); } } |
สร้างไฟล์ที่ชื่อว่า UserManager.java ซึ่งทำหน้าที่เป็นตัวจัดการการ insert, update, delete และ query ต่างๆ โดยสร้างไว้ที่ /src/main/java/com/xml/hibernate/manager/HibernateUtil.java และใส่โคดดังต่อไปนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | package com.xml.hibernate.manager; import java.util.ArrayList; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.jboss.logging.Logger; import com.xml.hibernate.manager.UserManager; import com.xml.hibernate.model.User; public class UserManager { private static final Logger logger = Logger.getLogger(UserManager. class ); public void create(User user) { logger.info( "========== Insert Data Section ==========" ); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); session.save(user); session.getTransaction().commit(); } public void update(User user) { logger.info( "========== Update Data Section ==========" ); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); session.update(user); session.getTransaction().commit(); } public void delete(User user) { logger.info( "========== Delete Data Section ==========" ); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); session.delete(user); session.getTransaction().commit(); } @SuppressWarnings ( "unchecked" ) public List<user> query() { logger.info( "========== Query Data Section ==========" ); List<user> result = new ArrayList<user>(); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Query query = session.createQuery( "FROM User " ); // FROM com.xml.hibernate.User session.getTransaction().commit(); result = (List<user>) query.list(); return result; } } </user></user></user></user> |
ขั้นตอนที่ 10 : แก้ไฟล์หลักของโปรเจค App.java
กรณี Create :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | package com.xml.hibernate; import java.util.List; import org.jboss.logging.Logger; import com.xml.hibernate.manager.UserManager; import com.xml.hibernate.model.User; public class App { final static Logger logger = Logger.getLogger(App. class ); public static void main(String[] args) { UserManager usermgr = new UserManager(); User user1 = new User(); user1.setFirstName( "Nopphanan" ); user1.setLastName( "Mayoe" ); user1.setAge( 18 ); User user2 = new User(); user2.setFirstName( "Kingsuwan" ); user2.setLastName( "Mayoe" ); user2.setAge( 18 ); // insert usermgr.create(user1); usermgr.create(user2); } } |
ผลลัพธ์ที่ได้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Oct 10 , 2015 10 : 01 : 11 PM com.xml.hibernate.manager.UserManager create INFO: ========== Insert Data Section ========== Oct 10 , 2015 10 : 01 : 12 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core { 5.0 . 2 .Final} Oct 10 , 2015 10 : 01 : 12 PM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Oct 10 , 2015 10 : 01 : 12 PM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist Oct 10 , 2015 10 : 01 : 13 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations { 5.0 . 0 .Final} Oct 10 , 2015 10 : 01 : 15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!) Oct 10 , 2015 10 : 01 : 15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql: //localhost:3306/hibernate] Oct 10 , 2015 10 : 01 : 15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000046: Connection properties: {user=root, password=****} Oct 10 , 2015 10 : 01 : 15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000006: Autocommit mode: false Oct 10 , 2015 10 : 01 : 15 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000115: Hibernate connection pool size: 10 (min= 1 ) Oct 10 , 2015 10 : 01 : 15 PM org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect Oct 10 , 2015 10 : 01 : 16 PM org.hibernate.boot.internal.SessionFactoryBuilderImpl$SessionFactoryOptionsStateStandardImpl <init> WARN: Unrecognized hbm2ddl_auto value : Create. Supported values include create, create-drop, update, and validate. Ignoring Hibernate: insert into hibernate.user (FIRST_NAME, LAST_NAME, AGE) values (?, ?, ?) Oct 10 , 2015 10 : 01 : 16 PM com.xml.hibernate.manager.UserManager create INFO: ========== Insert Data Section ========== Hibernate: insert into hibernate.user (FIRST_NAME, LAST_NAME, AGE) values (?, ?, ?) </init></init></clinit></clinit> |
กรณี Read:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package com.xml.hibernate; import java.util.List; import org.jboss.logging.Logger; import com.xml.hibernate.manager.UserManager; import com.xml.hibernate.model.User; public class App { final static Logger logger = Logger.getLogger(App. class ); public static void main(String[] args) { // query UserManager usermgr = new UserManager(); List<user> result = usermgr.query(); for ( int i = 0 ; i < result.size(); i++) { logger.info( "========== query index " + i + " ==========" ); User user = result.get(i); logger.info( "id : " + user.getId() + " first name : " + user.getFirstName() + " last name : " + user.getLastName() + " age : " + user.getAge()); } } } </user> |
ผลลัพธ์ที่ได้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | Oct 10 , 2015 10 : 05 : 23 PM com.xml.hibernate.manager.UserManager query INFO: ========== Query Data Section ========== Oct 10 , 2015 10 : 05 : 23 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core { 5.0 . 2 .Final} Oct 10 , 2015 10 : 05 : 23 PM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Oct 10 , 2015 10 : 05 : 23 PM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist Oct 10 , 2015 10 : 05 : 25 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations { 5.0 . 0 .Final} Oct 10 , 2015 10 : 05 : 27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!) Oct 10 , 2015 10 : 05 : 27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql: //localhost:3306/hibernate] Oct 10 , 2015 10 : 05 : 27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000046: Connection properties: {user=root, password=****} Oct 10 , 2015 10 : 05 : 27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000006: Autocommit mode: false Oct 10 , 2015 10 : 05 : 27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000115: Hibernate connection pool size: 10 (min= 1 ) Oct 10 , 2015 10 : 05 : 27 PM org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect Oct 10 , 2015 10 : 05 : 27 PM org.hibernate.boot.internal.SessionFactoryBuilderImpl$SessionFactoryOptionsStateStandardImpl <init> WARN: Unrecognized hbm2ddl_auto value : Create. Supported values include create, create-drop, update, and validate. Ignoring Oct 10 , 2015 10 : 05 : 28 PM org.hibernate.hql.internal.QueryTranslatorFactoryInitiator initiateService INFO: HHH000397: Using ASTQueryTranslatorFactory Hibernate: select user0_.id as id1_0_, user0_.FIRST_NAME as FIRST_NA2_0_, user0_.LAST_NAME as LAST_NAM3_0_, user0_.AGE as AGE4_0_ from hibernate.user user0_ Oct 10 , 2015 10 : 05 : 28 PM com.xml.hibernate.App main INFO: ========== query index 0 ========== Oct 10 , 2015 10 : 05 : 28 PM com.xml.hibernate.App main INFO: id : 2 first name : Nopphanan last name : Mayoe age : 18 Oct 10 , 2015 10 : 05 : 28 PM com.xml.hibernate.App main INFO: ========== query index 1 ========== Oct 10 , 2015 10 : 05 : 28 PM com.xml.hibernate.App main INFO: id : 3 first name : Kingsuwan last name : Mayoe age : 18 </init></init></clinit></clinit> |
กรณี Update:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package com.xml.hibernate; import java.util.List; import org.jboss.logging.Logger; import com.xml.hibernate.manager.UserManager; import com.xml.hibernate.model.User; public class App { final static Logger logger = Logger.getLogger(App. class ); public static void main(String[] args) { UserManager usermgr = new UserManager(); User user1 = new User(); user1.setId( 2 ); user1.setFirstName( "Hello" ); user1.setLastName( "World" ); user1.setAge( 15 ); // update usermgr.update(user1); } } |
ผลลัพธ์ที่ได้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | Oct 10 , 2015 10 : 10 : 26 PM com.xml.hibernate.manager.UserManager update INFO: ========== Update Data Section ========== Oct 10 , 2015 10 : 10 : 26 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core { 5.0 . 2 .Final} Oct 10 , 2015 10 : 10 : 26 PM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Oct 10 , 2015 10 : 10 : 26 PM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist Oct 10 , 2015 10 : 10 : 29 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations { 5.0 . 0 .Final} Oct 10 , 2015 10 : 10 : 30 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!) Oct 10 , 2015 10 : 10 : 30 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql: //localhost:3306/hibernate] Oct 10 , 2015 10 : 10 : 30 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000046: Connection properties: {user=root, password=****} Oct 10 , 2015 10 : 10 : 30 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000006: Autocommit mode: false Oct 10 , 2015 10 : 10 : 30 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000115: Hibernate connection pool size: 10 (min= 1 ) Oct 10 , 2015 10 : 10 : 31 PM org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect Oct 10 , 2015 10 : 10 : 31 PM org.hibernate.boot.internal.SessionFactoryBuilderImpl$SessionFactoryOptionsStateStandardImpl <init> WARN: Unrecognized hbm2ddl_auto value : Create. Supported values include create, create-drop, update, and validate. Ignoring Hibernate: update hibernate.user set FIRST_NAME=?, LAST_NAME=?, AGE=? where id=? </init></init></clinit></clinit> |
กรณี Delete:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package com.xml.hibernate; import java.util.List; import org.jboss.logging.Logger; import com.xml.hibernate.manager.UserManager; import com.xml.hibernate.model.User; public class App { final static Logger logger = Logger.getLogger(App. class ); public static void main(String[] args) { UserManager usermgr = new UserManager(); User user1 = new User(); user1.setId( 2 ); user1.setFirstName( "Hello" ); user1.setLastName( "World" ); user1.setAge( 15 ); // delete usermgr.delete(user1); } } |
ผลลัพธ์ที่ได้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | Oct 10 , 2015 10 : 16 : 24 PM com.xml.hibernate.manager.UserManager delete INFO: ========== Delete Data Section ========== Oct 10 , 2015 10 : 16 : 24 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core { 5.0 . 2 .Final} Oct 10 , 2015 10 : 16 : 24 PM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Oct 10 , 2015 10 : 16 : 24 PM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist Oct 10 , 2015 10 : 16 : 25 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations { 5.0 . 0 .Final} Oct 10 , 2015 10 : 16 : 29 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!) Oct 10 , 2015 10 : 16 : 29 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql: //localhost:3306/hibernate] Oct 10 , 2015 10 : 16 : 29 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000046: Connection properties: {user=root, password=****} Oct 10 , 2015 10 : 16 : 29 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH000006: Autocommit mode: false Oct 10 , 2015 10 : 16 : 29 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000115: Hibernate connection pool size: 10 (min= 1 ) Oct 10 , 2015 10 : 16 : 29 PM org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect Oct 10 , 2015 10 : 16 : 29 PM org.hibernate.boot.internal.SessionFactoryBuilderImpl$SessionFactoryOptionsStateStandardImpl <init> WARN: Unrecognized hbm2ddl_auto value : Create. Supported values include create, create-drop, update, and validate. Ignoring Hibernate: delete from hibernate.user where id=? </init></init></clinit></clinit> |
0 comments:
Post a Comment