亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

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 即可。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91社影院在线观看| 国产做受高潮69| 欧美亚洲成人xxx| 欧美超级免费视 在线| 欧美一区三区三区高中清蜜桃| 国产午夜精品全部视频播放| 午夜伦理精品一区| 国产成人福利网站| 插插插亚洲综合网| 成人羞羞国产免费| 国产福利精品在线| 免费91在线视频| 欧美国产在线电影| 青草青草久热精品视频在线网站| 久久久免费观看视频| 国产日韩欧美成人| 国产又爽又黄的激情精品视频| 97在线视频一区| 欧美一区第一页| 久久久成人的性感天堂| 97av视频在线| 久久久精品视频在线观看| 人九九综合九九宗合| 久久国内精品一国内精品| 国产欧美最新羞羞视频在线观看| 亚洲精品视频网上网址在线观看| 黑人巨大精品欧美一区二区| 一区二区欧美激情| 这里精品视频免费| 亚洲第一免费播放区| 日韩久久精品电影| 国产成人精品免费视频| 国产精品久久久久久久久免费看| 日韩经典第一页| 亚洲午夜精品久久久久久性色| 日韩精品在线免费观看视频| 欧美午夜丰满在线18影院| 亚洲人成在线观| 久久综合久久八八| 中文字幕精品www乱入免费视频| 久久影院模特热| 久久国内精品一国内精品| 久久手机精品视频| 国产日韩在线精品av| 欧美成人精品激情在线观看| 在线播放国产一区二区三区| 最近2019免费中文字幕视频三| 亚洲国产天堂网精品网站| 麻豆国产精品va在线观看不卡| 久久精品国产一区二区电影| 97视频在线播放| 欧美精品中文字幕一区| 亚洲免费视频一区二区| www.美女亚洲精品| 国产精品普通话| 91免费高清视频| 欧美日韩另类在线| 国产日韩中文字幕在线| 91精品视频观看| 欧美日韩国产色| 国产亚洲a∨片在线观看| 亚洲综合在线播放| 国产精品网红直播| 亚洲欧美国内爽妇网| 国产成人拍精品视频午夜网站| 国产精品久久国产精品99gif| 91精品久久久久久久久不口人| 欧美日本高清视频| 国产精品流白浆视频| 欧美高清videos高潮hd| 97精品国产97久久久久久免费| 亚洲欧洲日韩国产| 日韩久久精品电影| 久久亚洲电影天堂| 91精品国产免费久久久久久| 精品日韩中文字幕| 亚洲国产中文字幕在线观看| 日韩高清电影免费观看完整版| 欧美激情亚洲视频| 成年无码av片在线| 97高清免费视频| 久久精品国产电影| 91成人天堂久久成人| 91精品免费久久久久久久久| 欧美在线一级va免费观看| 国产午夜精品一区理论片飘花| 精品偷拍各种wc美女嘘嘘| 日韩在线小视频| 国产精品日韩欧美综合| 91精品久久久久久| 91精品在线影院| 日韩欧美aⅴ综合网站发布| 久久99久久99精品免观看粉嫩| 久久免费观看视频| 日韩美女免费线视频| 日韩a**中文字幕| 97超碰国产精品女人人人爽| 亚洲精品乱码久久久久久按摩观| 国产精品美女免费视频| 亚洲欧美一区二区三区四区| 亚洲午夜久久久影院| 日本不卡视频在线播放| 在线精品视频视频中文字幕| 国产精品一区二区三区毛片淫片| 菠萝蜜影院一区二区免费| 国产精品视频xxxx| 成人激情综合网| 亚洲在线一区二区| 性欧美长视频免费观看不卡| 欧美性猛交xxxx黑人| 日韩精品一区二区三区第95| 亚洲精品99999| 色黄久久久久久| 久久五月情影视| 国产精品久久久久不卡| 久久久久久这里只有精品| 国内成人精品一区| 日韩精品中文字幕在线播放| 亚洲精品国产suv| 亚洲乱码av中文一区二区| 九九热r在线视频精品| 精品亚洲国产成av人片传媒| 8x海外华人永久免费日韩内陆视频| 国产精品丝袜久久久久久高清| 一区二区三区国产在线观看| 国产日韩欧美视频在线| 在线视频免费一区二区| 一本一本久久a久久精品综合小说| 欧美影院成年免费版| 91在线无精精品一区二区| 日韩女优在线播放| 日韩精品高清在线观看| 亚洲国产欧美日韩精品| 久久精品国产99国产精品澳门| 久久久久久久久网站| 国产精品视频白浆免费视频| 国产高清在线不卡| 国产91在线视频| 国产一级揄自揄精品视频| 亚洲精品一区二三区不卡| 国产精品成人国产乱一区| 日韩精品免费在线| 欧美性少妇18aaaa视频| 亚洲福利视频专区| 国产精品自拍偷拍| 国产在线播放91| 久久久中文字幕| 高清一区二区三区四区五区| 久久久久久av| 57pao国产精品一区| 韩剧1988免费观看全集| 欧美黄网免费在线观看| 91精品久久久久久久久久久久久久| 一色桃子一区二区| 精品久久久久久亚洲精品| 欧美电影在线观看网站| 国产不卡av在线免费观看| 国产美女精品视频| 国产精品日韩在线一区| 91精品中文在线| 欧美一级电影在线| 国产精品jizz在线观看麻豆| 欧美老少配视频| 国产成人亚洲综合91精品|