<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                前面我們使用Maven構建了Struts2項目,這里我們來試一下Hibernate項目: ps: 昨天晚上沒有整明白,例子也一直有問題,就沒有完成博客,早上起來才明白錯在哪![大笑](https://box.kancloud.cn/2016-01-19_569e21abc5518.gif) 這里的例子,大體框架應該是正確的,但是,對于Maven的很多約定都沒有掌握,估計包的命名都不是非常好,等以后,理解深刻了再改吧![微笑](https://box.kancloud.cn/2016-01-18_569ca449c5105.gif) ### 1. 構建一個基本的Web項目 這里請參考前面的博客,一樣的 ### 2. 添加依賴,修改pom.xml ~~~ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.deppon.demo</groupId> <artifactId>test03</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>test03 Maven Webapp</name> <url>http://maven.apache.org</url> <!-- 屬性配置 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <!-- 添加Hibernate依賴 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.5.Final</version> </dependency> <!-- 添加Log4J依賴 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.6.4</version> </dependency> <!-- 添加javassist --> <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.11.0.GA</version> </dependency> </dependencies> <build> <finalName>test03</finalName> </build> </project> ~~~ 在保存的時候,Maven會自動從庫中各種包下載到本地,如果有異常的話,可以嘗試手動下載 ### 3. 添加hibernate.cfg.xml和log4j.properties資源文件 注意,資源文件的話,根據約定,需要放在src/main/resources文件夾下 hibernate.cfg.xml ~~~ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=Demo</property> <property name="connection.username">ygy</property> <property name="connection.password">shishi</property> <property name="javax.persistence.validation.mode">none</property> <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> <property name="current_session_context_class">thread</property> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="hbm2ddl.auto">update</property> <mapping class="com.deppon.test03.entity.PersonEntity"/> </session-factory> </hibernate-configuration> ~~~ log4j.properties ~~~ 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{ABSOLUTE} %5p %c{1}:%L - %m%n log4j.rootLogger=debug, stdout log4j.logger.org.hibernate.tool.hbm2ddl=debug ~~~ ### 4. 新建一個實體類,測試一下 PersonEntity.java ~~~ package com.deppon.test03.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "t_person") public class PersonEntity implements java.io.Serializable { private static final long serialVersionUID = -4376187124011546736L; private Integer id; private String name; @Id public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column(length = 50 , nullable = false , unique = true) public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "PersonEntity [id=" + id + ", name=" + name + "]"; } } ~~~ HibernateUtil.java ~~~ package com.deppon.test03.util; import org.apache.log4j.Logger; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { /**ThreadLocal Session Map */ public static final ThreadLocal<Session> SESSIONMAP = new ThreadLocal<Session>(); private static final SessionFactory sessionFactory; private static final Logger LOGGER = Logger.getLogger(HibernateUtil.class); static { try { LOGGER.debug("HibernateUti.static - loading cofig"); sessionFactory = new Configuration().configure("hibernate.cfg.xml") .buildSessionFactory(); LOGGER.debug("HibernateUtil.static - end"); } catch (Throwable ex) { ex.printStackTrace(); LOGGER.error("HibernateUti error : ExceptionInInitializerError"); throw new ExceptionInInitializerError(ex); } } private HibernateUtil() { } public static Session getSession() throws HibernateException { Session session = SESSIONMAP.get(); if(session == null) { session = sessionFactory.openSession(); SESSIONMAP.set(session); } return session; } public static void closeSession() throws HibernateException { Session session = SESSIONMAP.get(); SESSIONMAP.set(null); if(session != null) { session.close(); } } } ~~~ 測試類 ModelTest.java ~~~ package com.deppon.test03.model; import java.util.List; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.junit.Assert; import org.junit.Test; import com.deppon.test03.entity.PersonEntity; import com.deppon.test03.util.HibernateUtil; public class ModelTest { @Test public void testGetSession() { Session session = HibernateUtil.getSession(); Assert.assertNotNull(session); HibernateUtil.closeSession(); } @Test public void testExport() { new SchemaExport(new Configuration().configure()).create(true , true); } @Test public void testSave() { PersonEntity person = new PersonEntity(); person.setId(100); person.setName("路飛"); Session session = HibernateUtil.getSession(); Transaction tx = session.beginTransaction(); session.save(person); tx.commit(); HibernateUtil.closeSession(); } @Test public void testQuery() { Session session = HibernateUtil.getSession(); session.beginTransaction(); @SuppressWarnings("unchecked") List<PersonEntity> personList = session.createQuery("select p from PersonEntity p").list(); for(PersonEntity eachPerson : personList) { System.out.println(eachPerson); } session.getTransaction().commit(); HibernateUtil.closeSession(); } } ~~~ 項目結構如下圖所示: ![](https://box.kancloud.cn/2016-09-06_57ce64fbf4085.png) 對了,注意一下,在上面的pom.xml中,沒有看到數據庫驅動包,我用的是SQL Server,直接將jar包放到了項目的lib文件夾下,而從網上查的說,使用scope引入本地的包,試了一下,好像不行,等我再試一試。 ![](https://box.kancloud.cn/2016-09-06_57ce64fc1b3d5.png) ### 5. 測試 如果你現在運行JUnit測試的話,是不會成功的,昨天晚上就是這個原因,提示說找不到hibernate.cfg.xml, 后來發現,在target文件夾下,并沒有生成class文件,配置文件也沒有,這樣當然運行不成功 這里需要執行兩個命令 使用CMD窗口,進入當前項目的根目錄: ![](https://box.kancloud.cn/2016-09-06_57ce64fc3b26a.png) 第一條命令:輸入mvn compile ![](https://box.kancloud.cn/2016-09-06_57ce64fc50a58.png) ![](https://box.kancloud.cn/2016-09-06_57ce64fc67e25.png) 注意:這里一定要成功啊,即?? BUILD SUCCESS 第二條命令:輸入mvn test-compile ![](https://box.kancloud.cn/2016-09-06_57ce64fc7f901.png) 同樣的,這里一定要 BUILD SUCCESS 這樣的話,再一次運行測試程序,就可以成功了!![大笑](https://box.kancloud.cn/2016-01-19_569e21abc5518.gif) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - [Maven學習(一)- 環境搭建](http://blog.csdn.net/jolingogo/article/details/8775046) - [Maven學習(二)- 安裝m2eclipse插件?](http://blog.csdn.net/jolingogo/article/details/8796410) - [Maven學習(三)- 使用Maven構建Web項目](http://blog.csdn.net/jolingogo/article/details/8796726) - [Maven學習(四)- 使用Maven構建Web項目-測試](http://blog.csdn.net/jolingogo/article/details/8797153) - [Maven學習(五)- 使用Maven構建Struts2項目](http://blog.csdn.net/jolingogo/article/details/8798052) - [Maven學習(六)- 構建Hibernate項目](http://blog.csdn.net/jolingogo/article/details/8798684) - [Maven學習(七)- 構建Spring項目](http://blog.csdn.net/jolingogo/article/details/8799307) - [Maven學習(八)- 構建MyBatis項目](http://blog.csdn.net/jolingogo/article/details/8801158) - [Maven學習(九)- 構建SSH項目](http://blog.csdn.net/jolingogo/article/details/8811817) - [Maven學習(十) - 階段小結 ](http://blog.csdn.net/jolingogo/article/details/8821375) - [專欄:Maven學習之旅](http://blog.csdn.net/column/details/yuguiyang-maven.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看