ssm初入门

74 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情

在学习完成Javaweb,一般菊花开始接触框架了,本文回开一个专栏,讲述我学习ssm的一些问题和一些例子,希望可以帮到大家。

学习框架第一步:搭建maven环境

参考:maven配置和在Eclipse建项目 - 掘金 (juejin.cn)

首先,去官网下载maven

**Maven 官网地址是:maven.apache.org/index.html*…

image.png

Maven 官网下载地址

Maven 官网下载地址是:maven.apache.org/download.cg…

解压之后安装好mavern了

image.png

Maven 配置环境变量

之前学习Java,我们配置过javahome这次也类似

第一步,新建第一个环境变量MAVEN_HOME,如下所示:

image.png 提醒:变量值部分根据自己的情况,自行设置即可,也就是Maven的解压文件目录。

第二步,编辑Path变量,新增:%MAVEN_HOME%\bin,如下所示:

image.png

  • 提醒:

当项目比较大时,使用Maven生成项目需要占用大量内存,如果超过Java默认的最大可用内存,则会报java.lang.OutOfMemeoryError。 解决此问题为设置MAVEN_OPTS环境变量,此方法一次设定,一劳永逸,为推荐方法。

MAVEN_OPTS环境变量设置方法:在环境变量中添加一个新变量名为MAVEN_OPTS,值为-Xms128m -Xmx512m(数值可以自定义,Xms为初始内存,即最小内存,Xmx为最大内存)

不过在学习阶段一般不会超过,可以忽略。

验证maven是否安装成功

打开cmd(win+R) 输入mvn -v

这样就是成功了 image.png

为什么要使用maven?

Maven 是一个项目管理工具,可以对 Java 项目进行自动化的构建和依赖管理

试想一下,你在学习Javaweb时候,使用tomcat,如果不是使用模板,每次new项目后,都需要手动导入tomcat依赖。那么有了maven我们就可以直接配置,不用手动导入

Maven诞生之初的目的是为了管理Java项目,后来 Maven 也可被用于构建和管理其他各种项目

在idea连接maven

新建一个maven文件,在这三个位置,变成自己的maven

image.png

第二步:完成第一个Mabatis项目

new一个maven项目

image.png

image.png 直接下一步

image.png 点击完成。

image.png

点击后就会发现,右侧多了一个这个

image.png

点击那个扳手样式的

image.png 选择maven-setting

image.png 然后点击完成,至于re文件,参考上面第一步连接里面的文章配置,也可以百度其他教材。

接下来在pom。xml里面随便写一个依赖

image.png 刷新后,右侧出现dependencies,并且没有报错,表示完成了连接。

添加两个目录

打开src目录,如果有java和service就不需要导入,如果没有就如下图,然后选择就是。

image.png

在pom.xml导入mybatis和mysql依赖

image.png

对于版本可以自己选择,有可能你们配置的第三方库没有一些版本。

打开数据库,书写一个test数据库,并且里面有一个book表。

create database test;
use test;
create table Book(
 id int primary key,
 uname varchar(20),
 auther varchar(20),
 chuabnshe varchar(20),
 chubantime datetime
 );
 - 导入数据省略
 insert into Book  values(xxxxx)

最后我的表:

image.png

在resource下新建config文件夹,然后再新建文件mybatis-config.xml用来配置,在里面配置我们mysql基本信息

如果new右键没有xml就新建一个file。不过这样里面是空的,我们来进行填充(COnfig非常重要)

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties>
        <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true;characterEncoding=utf8"/>
        <property name="username" value="你自己的用户名"/>
        <property name="password" value="你自己的密码"/>
    </properties>
    <environments default="development">

        <environment id="development">

            <transactionManager type="JDBC"/>

      
            <dataSource type="POOLED">

                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

</configuration>
  • 注意:
  • 如果pom你导入的mysql是5.几版本
  • driver=com.mysql.jdbc.Driver
  • 为什么我在dataSource 使用 ${driver}来书写?
  • 可以把${driver}变成com.mysql.cj.jdbc.Driver
  • 我这里是把他们配置在最开始,后面连接数据库就方便修改

书写Book实体类

参照mysql字段,书写Book实体类,包括属性id,uname,auther,chubanshe,chubantime,并且完成他们setget方法,完成tostring方法

映射sql

创建一个bookmapper.xml

image.png

创建一个接口类 bookmapper.java

有一个selectAll方法,返回值是List

在mybatis-config里面加入

<mappers>
    <mapper resource="mapper/BooMapper.xml"/>
    <mapper resource="mapper/UserMapper.xml"/>

</mappers>

书写test方法


import java.io.IOException;
import java.io.InputStream;

public class Test {
    public static void main(String[] args) throws IOException {
        //读取配置文件
        InputStream config = Resources.getResourceAsStream("config/mybatis-config.xml");
        //根据配置文件构建sqlSessioinFactory,
//         sqlSessioinFactory单例模式(懒汉,饿汉),SqlSessionFactoryBuilder用完就丢
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(config);
        //通过sqlSessionFactory创建sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        BookMapper bookMapper=sqlSession.getMapper(BookMapper.class);
        System.out.println(bookMapper.selectAll());
    }
    }

image.png