idea+maven+ssm環境搭建

maven的下載、安裝、配置到idea中

maven下載地址http://maven.apache.org/download.cgi
在這個網頁裏你會看到如下圖,這兩個安裝包都可以下載
這裏寫圖片描述

下載好了就可以安裝了,創建一個目錄,將解壓的maven放入其中,在這個目錄裏在創建個目錄,用來放置maven的本地倉庫(第二個目錄也可以不建立,maven安裝時會在你的系統盤c://user/用戶名/.m2裏自動創建個本地倉庫,可能在你安裝好時看不到這個倉庫,這時你可以命令行 cmd -> mvn -intall,你就可以看到了),這是我的maven安裝後的目錄

這裏寫圖片描述

安裝好以後再conf目錄下有個setting.xml文件,在其localRepository節點下添加<localRepository>D:\java\apache-maven-3.5.0\maven_jar</localRepository>(這是你本地倉庫的地址)。
在其mirrors節點下添加

<mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>*</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror> 

(因爲maven的中央倉庫下載速度太慢了,在這將其改成阿里的鏡像倉庫,速度扛扛的),最後將其setting.xml複製一份放到你的本地倉庫中,這樣maven就安裝好了,接下來就將其集成到idea中去

打開idea,點擊file -> setting 在彈出的窗口中左上方有個搜索,搜索maven,修改如下三項
這裏寫圖片描述
這樣maven就集成到你的idea中了


接下就是在idea中搭建maven+ssm了

打開idea,做上面file -> new -> project 這時會彈出個窗口
這裏寫圖片描述

選擇好,然後next ,彈出另一個窗口

這裏寫圖片描述

繼續next ,彈出窗口

這裏寫圖片描述

點擊 finish

這是等待下,idea將自動創建這個項目,記得點擊右下角的config

將其文件補全成如下圖

這裏寫圖片描述

在這過程中你可能找不到建立package按鈕,按下圖操作,選擇sources file
這裏寫圖片描述

因爲使用了maven(jar包管理工具)會有個pom.xml文件,在這裏面添加

pom.xml配置如下(它會自動從鏡像倉庫下載項目所需要的jar包)

<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>cn.saleNc</groupId>
  <artifactId>SaleNc</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>SaleNc Maven Webapp</name>
  <url>http://maven.apache.org</url>

  <properties>
    <!-- 設置項目編碼編碼 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <!-- spring版本號 -->
    <spring.version>4.3.5.RELEASE</spring.version>
    <!-- mybatis版本號 -->
    <mybatis.version>3.4.1</mybatis.version>
  </properties>

  <dependencies>

    <!-- java ee -->
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>7.0</version>
    </dependency>

    <!-- 單元測試 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>

    <!-- 實現slf4j接口並整合 -->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.2</version>
    </dependency>

    <!-- JSON -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.7</version>
    </dependency>


    <!-- 數據庫 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.41</version>
      <scope>runtime</scope>
    </dependency>

    <!-- 數據庫連接池 -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>

    <!-- MyBatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>

    <!-- mybatis/spring整合包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>

    <!-- Spring -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>

  </dependencies>

  <build>
    <finalName>CaleNc</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <!-- 設置JDK版本 -->
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

jabc.properties配置

jdbc.driver=com.mysql.jdbc.Driver
#數據庫地址
jdbc.url=jdbc:mysql://192.168.1.230:3306/SaleNc?useUnicode=true&characterEncoding=utf8
#用戶名
jdbc.username=root
#密碼
jdbc.password=sa
#最大連接數
c3p0.maxPoolSize=30
#最小連接數
c3p0.minPoolSize=10
#關閉連接後不自動commit
c3p0.autoCommitOnClose=false
#獲取連接超時時間
c3p0.checkoutTimeout=10000
#當獲取連接失敗重試次數
c3p0.acquireRetryAttempts=2

spring-mvc.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<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:mvc="http://www.springframework.org/schema/mvc"
       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/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <!-- 掃描web相關的bean -->
    <context:component-scan base-package="cn.saleNc.controller"/>

    <!-- 開啓SpringMVC註解模式 -->
    <mvc:annotation-driven/>

    <!-- 靜態資源默認servlet配置 -->
    <mvc:default-servlet-handler/>

    <!-- 配置jsp 顯示ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

spring-mybatis.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<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: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/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 掃描service包下所有使用註解的類型 -->
    <context:component-scan base-package="cn.saleNc.service"/>

    <!-- 配置數據庫相關參數properties的屬性:${url} -->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 數據庫連接池 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="maxPoolSize" value="${c3p0.maxPoolSize}"/>
        <property name="minPoolSize" value="${c3p0.minPoolSize}"/>
        <property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}"/>
        <property name="checkoutTimeout" value="${c3p0.checkoutTimeout}"/>
        <property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/>
    </bean>

    <!-- 配置SqlSessionFactory對象 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入數據庫連接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 掃描model包 使用別名 -->
        <property name="typeAliasesPackage" value="cn.saleNc.model"/>
        <!-- 掃描sql配置文件:mapper需要的xml文件 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    <!-- 配置掃描Dao接口包,動態實現Dao接口,注入到spring容器中 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 給出需要掃描Dao接口包 -->
        <property name="basePackage" value="cn.saleNc.dao"/>
    </bean>

    <!-- 配置事務管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 注入數據庫連接池 -->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 配置基於註解的聲明式事務 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

</beans>

web.xml配置


UserController.java代碼

package cn.saleNc.controller;

import javax.servlet.http.HttpServletRequest;

import cn.saleNc.model.User;
import cn.saleNc.service.UserService;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@Controller
@RequestMapping(“/user”)
public class UserController {

@Resource
private UserService userService;

@RequestMapping("/showUser.do")
public void selectUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    long userId = Long.parseLong(request.getParameter("id"));
    User user = this.userService.selectUser(userId);
    ObjectMapper mapper = new ObjectMapper();
    response.getWriter().write(mapper.writeValueAsString(user));
    response.getWriter().close();
}

}

UserDao.java代碼

package cn.saleNc.dao;

import cn.saleNc.model.User;

public interface UserDao {

User selectUser(long id);

}

User.java 代碼

package cn.saleNc.model;

import java.util.Date;

public class User {

private long id;
private String email;
private String password;
private String username;
private String role;
private int status;
private Date regTime;
private String regIp;

public long getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getRole() {
    return role;
}

public void setRole(String role) {
    this.role = role;
}

public int getStatus() {
    return status;
}

public void setStatus(int status) {
    this.status = status;
}

public Date getRegTime() {
    return regTime;
}

public void setRegTime(Date regTime) {
    this.regTime = regTime;
}

public String getRegIp() {
    return regIp;
}

public void setRegIp(String regIp) {
    this.regIp = regIp;
}

}


UserService.java  代碼

package cn.saleNc.service;

import cn.saleNc.model.User;

public interface UserService {

public User selectUser(long userId);

}


UserServiceImpl.java代碼

package cn.saleNc.service.impl;

import cn.saleNc.dao.UserDao;
import cn.saleNc.model.User;
import cn.saleNc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service(“userService”)
public class UserServiceImpl implements UserService {

@Autowired
private UserDao userDao;

public User selectUser(long userId) {
    return this.userDao.selectUser(userId);
}

}


index.html代碼





test

function selectUser() { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("test").innerHTML = xmlhttp.responseText; } } xmlhttp.open("POST", "user/showUser.do", true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send("id=1"); }

Hello World!

onclick test

然後在你的數據庫中執行這段代碼

CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT COMMENT ‘用戶ID’,
email varchar(255) NOT NULL COMMENT ‘用戶郵箱’,
password varchar(255) NOT NULL COMMENT ‘用戶密碼’,
username varchar(255) NOT NULL COMMENT ‘用戶暱稱’,
role varchar(255) NOT NULL COMMENT ‘用戶身份’,
status int(1) NOT NULL COMMENT ‘用戶狀態’,
regTime datetime NOT NULL COMMENT ‘註冊時間’,
regIp varchar(255) NOT NULL COMMENT ‘註冊IP’,
PRIMARY KEY (id),
UNIQUE KEY email (email) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO user VALUES (‘1’, ‘[email protected]’, ‘**‘, ‘沉年’, ‘root’, ‘0’, ‘2017-09-9 09:40:31’, ‘127.0.0.1’);
SET FOREIGN_KEY_CHECKS=1;
“`

然後idea右上角(如圖)點擊Edit Configurations
這裏寫圖片描述

會出現如下彈窗

這裏寫圖片描述

選擇第二項,點擊OK
這裏寫圖片描述

這時 run 你的項目
彈出

這裏寫圖片描述

點擊按鈕彈出你存進數據庫的信息說明你搭建成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章