国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

IntelliJ IDEA:Getting Started with Spring MVC, Hibernate and JSON實踐

2019-11-14 22:16:55
字體:
來源:轉載
供稿:網友
IntelliJ IDEA:Getting Started with SPRing MVC, Hibernate and JSON實踐

最近把編輯器換成IntelliJ IDEA,主要是Eclipse中處理Maven項目很不方便,很早就聽說IntelliJ IDEA的大名了,但是一直沒機會試試。最近終于下載安裝了,由于是新手,決定嘗試個Tutorials,最終找了個熟悉點的項目,就是Getting Started with Spring MVC, Hibernate and JSON(http://confluence.jetbrains.com/display/IntelliJIDEA/Getting+Started+with+Spring+MVC%2C+Hibernate+and+JSON)。廢話不多說了, 下面是我的實踐過程:

在實踐之前,有個問題首先要明確下,在IntelliJ IDEA中project相當于Eclipse中的workspace,module相當于Eclipse中的project。

1.創建Project。具體的過程我就不詳述了,可以在官方的Tutorials中查看。下面是我的project structure截圖

2.配置Tomcat,這步很簡單,沒什么可說的。配置完成后,將步驟1中建立的項目deployed到Tomcat上運行,等Tomcat啟動完成后,就會啟動你默認的瀏覽器,如果上面的步驟沒什么錯誤的話,你就可以在你的瀏覽器中看到Hello World!了。

3.添加依賴。因為要使用數據庫,Hibernate,JPA等。所以需要在pom文件中添加對應的依賴。等你添加完成后,IntelliJ IDEA會自動引入或下載所需的包。

4.接下來是創建持久化的配置文件。這個地方需要注意路徑的問題。具體的路徑可以查看project structure截圖。這個配置文件中都是數據庫的配置信息。數據庫使用的是hsqldb,如果不想使用,可以改成自己想用的數據庫,但是要注意修改相應的jar包。

<?xml version="1.0" encoding="UTF-8"?><persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">    <persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">        <provider>org.hibernate.ejb.HibernatePersistence</provider>        <properties>            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />            <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:spring" />            <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />            <property name="hibernate.connection.username" value="sa" />            <property name="hibernate.connection.passWord" value="" />            <property name="hibernate.hbm2ddl.auto" value="create-drop" />        </properties>    </persistence-unit></persistence>

5.配置Model類,使用的技術為JPA。

package com.springapp.mvc;import javax.persistence.*;/** * Created by yul on 2014/12/18. */@Entity(name = "account")public class User {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private Long id;    @Basic    private String firstName;    @Basic    private String lastName;    @Basic    private String email;    public Long getId() {        return id;    }    public String getFirstName() {        return firstName;    }    public String getLastName() {        return lastName;    }    public String getEmail() {        return email;    }    public void setId(Long id) {        this.id = id;    }    public void setFirstName(String firstName) {        this.firstName = firstName;    }    public void setLastName(String lastName) {        this.lastName = lastName;    }    public void setEmail(String email) {        this.email = email;    }}

定義service,這里官方的示例代碼中沒有@Repository注解,需要添加上

package com.springapp.mvc;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;/** * Created by yul on 2014/12/18. */@Repositorypublic interface UserRepository extends JpaRepository<User, Long> {}

6.注冊bean。包括repository, entity manager factory and transaction manager

<beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:context="http://www.springframework.org/schema/context"       xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:tx="http://www.springframework.org/schema/tx"       xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">    <context:component-scan base-package="com.springapp.mvc"/>    <jpa:repositories base-package="com.springapp.mvc" />    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">        <property name="persistenceUnitName" value="defaultPersistenceUnit" />    </bean>    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">        <property name="entityManagerFactory" ref="entityManagerFactory"/>    </bean>    <tx:annotation-driven transaction-manager="transactionManager"/>    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/WEB-INF/pages/"/>        <property name="suffix" value=".jsp"/>    </bean></beans>

7.定義Controller。

package com.springapp.mvc;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.validation.BindingResult;import org.springframework.web.bind.annotation.*;/** * Created by yul on 2014/12/18. */@Controllerpublic class UserController {    @Autowired    private UserRepository userRepository;    @RequestMapping(value = "/", method = RequestMethod.GET)    public String listUsers(ModelMap model) {        model.addAttribute("user", new User());        model.addAttribute("users", userRepository.findAll());        return "users";    }    @RequestMapping(value = "/add", method = RequestMethod.POST)    public String addUser(@ModelAttribute("user")User user, BindingResult result) {        userRepository.save(user);        return "redirect:/";    }    @RequestMapping(value = "/delete/{userId}")    public String deleteUser(@PathVariable("userId") Long userId) {        userRepository.delete(userRepository.findOne(userId));        return "redirect:/";    }    @RequestMapping(value = "/api/users", method = RequestMethod.GET)    public    @ResponseBody    String listUsersJson(ModelMap model) throws JSONException {        JSONArray userArray = new JSONArray();        for (User user : userRepository.findAll()) {            JSONObject userJSON = new JSONObject();            userJSON.put("id", user.getId());            userJSON.put("firstName", user.getFirstName());            userJSON.put("lastName", user.getLastName());            userJSON.put("email", user.getEmail());            userArray.put(userJSON);        }        return userArray.toString();    }    }

我把后面返回JSON數據的方法也加上了。

8.定義view。官方提供的Bootstrap的CDN不好用,估計是GFW的問題,可以換成國內的。如果對于Bootstrap有興趣,可以去這個網址http://www.bootCSS.com/看看

<!doctype html><%@taglib prefix="spring" uri="http://www.springframework.org/tags" %><%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html><head>    <meta charset="utf-8">    <title>Spring MVC application</title>    <meta content="IE=edge, Chrome=1" http-equiv="X-UA-COMPATIBLE">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <!-- 新 Bootstrap 核心 CSS 文件 -->    <link rel="stylesheet" >    <%--<link  rel="stylesheet">--%>    <%--<link  rel="stylesheet">--%></head><body><div class="container">    <div class="row">        <div class="span8 offset2">            <h1>User</h1>            <form:form method="post" action="add" commandName="user" class="form-horizontal">                <div class="control-group">                    <form:label cssClass="control-label" path="firstName">First Name:</form:label>                    <div class="controls">                        <form:input path="firstName" />                    </div>                </div>                <div class="control-group">                    <form:label cssClass="control-label" path="lastName">Last Name:</form:label>                    <div class="controls">                        <form:input path="lastName" />                    </div>                </div>                <div class="control-group">                    <form:label cssClass="control-label" path="email">Email:</form:label>                    <div class="controls">                        <form:input path="email" />                    </div>                </div>                <div class="control-group">                    <div class="controls">                        <input type="submit" value="Add User" class="btn" />                    </div>                </div>            </form:form>            <c:if test="${!empty users}">                <h3>Users</h3>                <table class="table table-bordered table-striped">                    <thead>                    <tr>                        <th>Name</th>                        <th>Email</th>                        <th>&nbsp;</th>                    </tr>                    </thead>                    <tbody>                    <c:forEach items="${users}" var="user">                        <tr>                            <td>${user.lastName}, ${user.firstName}</td>                            <td>${user.email}</td>                            <td>                                <form action="/delete/${user.id}" method="post">                                    <input type="submit" class="btn btn-danger btn-mini" value="Delete" />                                </form>                            </td>                        </tr>                    </c:forEach>                    </tbody>                </table>            </c:if>        </div>    </div></div></body></html>

到了這里,基本任務就算完成了。

下面就是測試了。在Tomcat中運行起你的項目。就可以在瀏覽器中看到效果了.

如果想查看返回的JSON數據。在瀏覽器中輸入http://localhost:8080/api/users 即可。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂林市| 卫辉市| 佛学| 西林县| 武城县| 辉县市| 阳朔县| 临夏县| 郴州市| 左贡县| 普洱| 盘锦市| 沽源县| 大石桥市| 新龙县| 阿坝县| 婺源县| 丽江市| 密云县| 三台县| 张家港市| 兴文县| 金溪县| 天门市| 五家渠市| 泗阳县| 和龙市| 鞍山市| 古浪县| 秦安县| 大同县| 丰原市| 金寨县| 玉屏| 特克斯县| 镇康县| 罗甸县| 乡宁县| 清丰县| 浮梁县| 六安市|