1. 程式人生 > >IDEA新增Hibernate框架以及常見問題的解決

IDEA新增Hibernate框架以及常見問題的解決

IDEA新增Hibernate框架以及常見問題的解決

主要描述:

  • 在IDEA專案中新增Hibernate框架的步驟
  • SpringMVC+Hibernate會遇到的常見問題
在IDEA專案中新增Hibernate框架
  1. 新增資料庫

    • 資料庫表結構

      在這裡插入圖片描述

    • idea中新增資料來源

      在這裡插入圖片描述

    • 連線資料庫

      在這裡插入圖片描述

  2. 專案中新增對hibernate框架

    • 右鍵專案名新增hibernate支援

      在這裡插入圖片描述

    • 選擇建立配置檔案以及生成實體

      在這裡插入圖片描述

    • 選擇資料來源以,需要生成實體的表,生成實體類的名字前後綴以及存放位置

      在這裡插入圖片描述

    • 自動生成的專案結構

      其中Main為自動生成的測試類

      在這裡插入圖片描述

      此時還還需要幾步配置才能使得Main能夠正常執行

      • Unable to load class [com.mysql.jdbc.Driver]

        匯入mysql-connector-jar-8.0.13.jar

      • Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect’ not set

        hibernate.cfg.xml中配置:

        <property name="hibernate.dialect"
        >
        org.hibernate.dialect.MySQLDialect</property>
      • ERROR: Access denied for user ‘’@‘localhost’ (using password: NO)

        hibernate.cfg.xml中配置賬號密碼

        <property name="connection.username">root</property>
        <property name="connection.password">123</property>
        
      • Main測試時,是在src目錄下尋找hibernate.cfg.xml

      正常執行輸出

      executing: from UsersEntity
        [email protected]
      
      
SpringMVC+Hibernate會遇到的常見問題

分包好之後的專案結構

在這裡插入圖片描述

  1. hibernate.cfg.xml檔案中com.mysql.jdbc.Driver標紅

    匯入MySQL-connector包即可

  2. tomcat啟動後 呼叫hibernate內容 :/hibernate.cfg.xml not found

    將hibernate.cfg.xml新增到web/WEB-INF/classes目錄下

  3. Artifact中需要新增hibernate和MySQL的庫
    在這裡插入圖片描述

  4. 使用示例

    action:

    @Controller
    public class UserController {
    @RequestMapping(value = "users",method = RequestMethod.GET)
    public String listUsers(ModelMap map){
        Session session= Dbconnection.getSession();
        List<UsersEntity> list =session.createCriteria(UsersEntity.class).list();
        map.addAttribute("users",list);
        session.close();
        return "users";
    }
    

    users.jsp

    <ol>
        <%for(UsersEntity e:(List<UsersEntity>)request.getAttribute("users")){%>
        <li>名字:<%out.print(e.getName());%>,年齡:<%out.print(e.getAge());%>
        <%}%>
    </ol>