Java成神之路(二十九)IDEA之SSM基础环境配置

利用IDEA快速建立SSM基础环境配置:
新建Maven项目:
注意勾选create from archetype
在这里插入图片描述
新建构建工程目录:
Java:源代码文件
Controller:存放控制器
Dao:存放Dao层接口文件
impl:Services:实现Dao层接口的实现类
Model:存放实体类。
Resources:存放资源配置文件
mapper:存放数据库映射文件
jdbc.properties:数据库连接文件
Mybatis-generator-config.xml:generator自动生成配置文件
Spring-mybatis.xml:s数据库连接池,配置文件
SpringMVC:springmvc配置文件。
在这里插入图片描述
设置文件夹属性:
右键项目,选择Open Module Settings
将Java设置为Sources;将resources设置为Resources;
至此项目结构基本结束,项目结构依照个人喜好和习惯来确定,不一定要求如此。
在这里插入图片描述
编写配置文件:
首先编写Maven配置文件,即pom.xml:一般新建项目时,IDEA会在右下角提示是否选择自动加载,选择automatic即可。

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ -->
<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>
  <packaging>war</packaging>

  <name>SSM_demo</name>
  <groupId>SSM_demo</groupId>
  <artifactId>SSM_demo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <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>8.0.13</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>
  <!-- generator自动生成工具 -->
    <dependency>
         <groupId>org.mybatis.generator</groupId>
          <artifactId>mybatis-generator-core</artifactId>
          <version>1.3.2</version>
      </dependency>
  </dependencies>


  <build>
    <plugins>
      <plugin>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-maven-plugin</artifactId>
      <version>1.3.2</version>
      <configuration>
        <configurationFile>
          <!-- 该路径就是我们创建Mybatis-generator-config.xml文件的全路径,千万别配错了 -->
          src/main/resources/Mybatis-generator-config.xml
        </configurationFile>
        <verbose>true</verbose>
        <overwrite>true</overwrite>
      </configuration>
      <executions>
        <execution>
          <id>Generate MyBatis Artifacts</id>
          <goals><goal>generate</goal></goals>
        </execution>
      </executions>
      </plugin>
    </plugins>
  </build>
</project>

接下来配置web.xml:主要配置编码与核心拦截器:

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
  <display-name>Archetype Created Web Application</display-name>

<!--编码过滤-->
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>edcofing</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

<!--Spring 核心拦截器-->
  <servlet>
    <servlet-name>SpringMVC</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:*.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
  </servlet>
  <!--拦截所有.do请求-->
  <servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  <!--设置项目起时界面-->
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>
 

接下来配置SpringMVC.xml:配置Spring相关功能

<?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.2.xsd">
    <!--扫描控制器注解-->
    <context:component-scan base-package="com.java.Controller"></context:component-scan>

    <!--开启注解-->
    <mvc:annotation-driven></mvc:annotation-driven>


    <!--静态资源配置-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>

    <!--页面配置-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
        <property name="prefix" value=""></property>
        <property name="suffix" value=""></property>
    </bean>

</beans>

配置jdbc.properties文件:
数据库连接

#数据库驱动
jdbc.driver=com.mysql.jdbc.Driver
#数据库地址:视个人电脑数据库而变
jdbc.url=jdbc:mysql://127.0.0.1:3306/study_there?useUnicode=true&characterEncoding=utf8
#用户名
jdbc.username=root
#密码
jdbc.password=mininet123
#最大连接数
c3p0.maxPoolSize=30
#最小连接数
c3p0.minPoolSize=10
#关闭连接后不自动commit
c3p0.autoCommitOnClose=false
#获取连接超时时间
c3p0.checkoutTimeout=10000
#当获取连接失败重试次数
c3p0.acquireRetryAttempts=2

配置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">

    <!--扫描注解-->
    <context:component-scan base-package="com.java.impl"></context:component-scan>

    <!--扫描数据库配置文件-->
    <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>

    <!--数据库连接池-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property>
        <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>

    <!--配置SqlSeesionFactory对象-->
    <bean id="sqlSeesionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <property name="dataSource" ref="dataSource"></property>
        <!--扫描model实体包-->
        <property name="typeAliasesPackage" value="com.java.Model"></property>
        <!--扫描mybatis关联数据库配置文件-->
        <property name="mapperLocations" value="classpath*:mapper/*.xml"></property>
    </bean>

    <!--配置扫描Dao包,动态实现Dao接口-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSeesionFactory"></property>

        <property name="basePackage" value="com.java.Dao"></property>
    </bean>
</beans>

项目使用generator自动生成实体文件与基础接口,配置文件如下:
数据库驱动可以选择项目的External Libraries,找到mysql-connector-java-xx.jar,右键,选择路径进行复制。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包。该路径一定别写错了-->
    <classPathEntry  location="/Users/huangxiaoning/.m2/repository/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar"/>

    <!-- 数据库驱动 -->
    <context id="mysql" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="false" />
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/study_there" userId="root"
                        password="mininet123">
        </jdbcConnection>
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL
            和 NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- 生成模型的包名和位置实体类 -->
        <javaModelGenerator targetPackage="Model"
                            targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置 -->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject="src/main/resources">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置,接口 -->

        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="Dao" targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 -->
        <table tableName="department" domainObjectName="Department"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>


项目主页index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
    <script src="views/index.js"></script>
</head>

<body>

<button id="button">查询</button>
<div id="div1"></div>

<script>

</script>
</body>
</html>

index.js:

$(document).ready(function() {
    $("button").click(function () {
        $.ajax({
            url: "index.do",
            success: function (result) {
                console.log(result)
                $("#div1").html(result.toString());
            }
        });
    });
});

接下来进行项目测试:
新建数据库表:并填入一行数据。
在这里插入图片描述
利用generator生成映射文件,与实体和基本接口:
选择Edit Configurations中点击➕号出来的maven
在这里插入图片描述
在Command line中键入:mybatis-generator:generate -e
在这里插入图片描述
完成运行,即自动生成DepartmentMapper接口,Separtment实体类,DepartmentMapper.xm;配置映射文件。
在这里插入图片描述
新建Controller类以及servies接口和Serviesimpl接口实现类:Servies存放业务逻辑接口,Serviesimpl为其具体实现类。具体代码如下:
Servies:

package com.java.impl;

import com.java.Model.Department;
import org.springframework.stereotype.Service;

@Service
public interface services {
    Department selectByPrimaryKey(String departmentId);
}

Serviesimpl:

package com.java.impl;

import com.java.Dao.DepartmentMapper;
import com.java.Model.Department;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class Servicesimpl implements services {

    @Autowired
    private DepartmentMapper deprecated;

  public Department selectByPrimaryKey(String departmentId){ return deprecated.selectByPrimaryKey(departmentId); };
}

Controller:

package com.java.Controller;


import com.java.Model.Department;
import com.java.impl.services;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;


@Controller
public class controller {

@Autowired(required = true)
private services se;

        @RequestMapping("/index.do")
        public @ResponseBody Department dSeclectByID(String index){
            System.out.println("emmmmmm");
            return  se.selectByPrimaryKey("1") ;
       }
}

运行项目,选择Edit Configurations中点击➕号出来的Tomact server,在界面上点击Deployment,点击➕号选择第二个。
在这里插入图片描述
运行,在界面上点击查询:出现如图,就是成功。
在这里插入图片描述
源码连接:SSM基础配置

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值