intelij中ssm基本配置(二)

在之前的文章我们已经介绍了如何新建一个maven项目以及如何导入一个ssm工程所需的jar包,接下来继续进行ssm的配置。


3、进行mybatis配置

mybatis主要是一个能够将数据库中单个的表映射到java中的pojo(与class类似),并用.xml文件的方法定义了数据库中的crud操作。例如,我在mysql中定义这样一个表结构:


一个很简单的表结构,其中有id和name两个属性,其type分别为int和varchar。那么使用mybatis进行映射后,得到的pojo如下:
public class TestTable {
    private Integer id;

    private String name;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }
}
很显然,得到的pojo将表中的字段定义为class中的属性,并在这个pojo中定义了属性的get和set方法。可以看到,字段和属性是一一对应的。当然,单从这些DTO(数据传输对象)中我们还不能对数据库中的表进行操作,仅仅得知数据库的表结构。不用着急,在使用mybatis生成pojo时,还顺带生成了一个Example类,用于进行数据库表的操作,这里先不提,先介绍如何使用mybatis生成对应的pojo以及对应Example类的mapper。

添加插件mybatis generator

mybatis generator是一个非常实用的进行mybatis映射的工具,引入该插件可以更加便捷的使用mybatis进行DTO的生成,添加该插件的方法非常简单,只需在pom文件的<build>节点下添加相应的plugin节点即可,直接上代码:
<build>
  <finalName>ssm</finalName>
  <plugins>
    <plugin>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-maven-plugin</artifactId>
      <version>1.3.5</version>
      <configuration>
        <verbose>true</verbose>
        <overwrite>true</overwrite>
      </configuration>
    </plugin>
  </plugins>
</build>
添加完毕后稍等一会,mybatis generator插件就会自动地被引入到项目中。

编辑项目的文件结构

清晰、合理的项目结构能够很好的帮助我们进行代码的编写及阅读,我在这里将项目的文件结构分为一个四个directory,这四个directory同属于一个java directory。它们各自的作用如下:
1、controller:MVC中的C层的上层,用于直接对jsp文件中显示的数据进行操作;
2、service:MVC中的C层的下层,用于执行Example类中定义的函数,对Model层进行操作;
3、pojo:对应于数据库映射中的DTO类,mybatis自动生成;
4、mapper:对应于数据库映射中的CRUD操作,mybatis自动生成。
如图:


注意,创建java文件夹时,需要制定其为source root,具体方法为右键java文件夹--make directory as...--source root,可以看到,指定完毕后,java文件夹变成蓝色。

添加配置文件generatorConfig.xml文件

mybatis的使用属性需要一个.xml文件进行指定,这里我命名为generatorConfig.xml,放在resources目录下,如图:


首先引入mybatis的命名空间,加入如下doctype:
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">


在该文件中,我们需要指定mybatis的generatorConfig属性,因此,先把其中的<bean>节点去掉,换成<generatorConfiguration>节点,如下:
<?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>
    
</generatorConfiguration>

下面制定mysql-java驱动的地址,使用CLASSPATHENTRY的location属性指定,也就是你导入
mysql-connector-java.jar
这个包如果是用pom文件自动导入的,那么应该放在
.m2\repository\mysql\mysql-connector-java\

目录下,写法如下:

<classPathEntry location="C:\Users\MECHREVO\.m2\repository\mysql\mysql-connector-java\5.1.39\mysql-connector-java-5.1.39.jar"/>

接下来配置具体的连接信息,用<context>节点指定。该节点需要指定一个id和targetRuntime,用于指定使用的mybatis版本,写法如下:

<context id="testTable" targetRuntime="MyBatis3">
    
</context>

在context中可以进行数据库连接信息的配置,包括数据库驱动类,连接地址,用户名以及密码,分别由driverClass,connectionURL,userID,password四个值指定,包含在jdbcConnection节点下:


其中localhost是主机地址,3306是端口号,后边跟的是你要进行映射的数据库名(不是表名!),使用mybatis编译成功后会将数据库中所有的表转成pojo和mapper。


接下来指定生成pojo类的位置,也就是设置target,这里使用<javaModelGenerator>节点进行指定,其中要设置targerPackage和targetProject,如下:

<javaModelGenerator targetPackage="com.ricary.ssmtest.pojo"
                    targetProject="src/main/java">

</javaModelGenerator>

类似地,接下来指定mapper生成的位置,使用<sqlMapGenerator>节点指定,也要设置相应的targetPackage和targetProject,如下:

<sqlMapGenerator targetPackage="com.ricary.ssmtest.mapper"
                 targetProject="src/main/java">

</sqlMapGenerator>

为了方便我们查看数据库中的方法调用,mybatis还提供了一组可以查看mapper中定义方法的接口,生成接口需要用<javaClientGenerator>节点指定,如下:

<javaClientGenerator type="XMLMAPPER"
                     targetPackage="com.ricary.ssmtest.mapper"
                     targetProject="src/main/java">
    
</javaClientGenerator>

最后要指定数据库中要映射的表名,用<table>节点指定,比如我要映射的表名为“test_table”:

<table schema="" tableName="test_table"></table>

整个的.xml代码如下:

<?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制定驱动jar包位置-->
    <classPathEntry location="C:\Users\MECHREVO\.m2\repository\mysql\mysql-connector-java\5.1.39\mysql-connector-java-5.1.39.jar"/>
    <!--使用context指定配置属性-->
    <context id="testTable" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test"
                        userId="ricarvy"
                        password="789632145">
        </jdbcConnection>
        <javaModelGenerator targetPackage="com.ricary.ssmtest"
                            targetProject="src/main/java">

        </javaModelGenerator>
        <sqlMapGenerator targetPackage="com.ricary.ssmtest.mapper"
                         targetProject="src/main/java">

        </sqlMapGenerator>
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.ricary.ssmtest.mapper"
                             targetProject="src/main/java">

        </javaClientGenerator>
        <table tableName="test_table"></table>
    </context>
</generatorConfiguration>

这就完成了generatorConfig.xml文件的配置。


执行mybatis框架

接下来我们要使用mybatis -generator插件对指定的属性进行实现。点击右上角的Edit Configurations,如图:


弹出如下对话框:


点击左上角的“+”,选择“maven”,出现如图:

给该Config起名为mybatis -generator,并在Command Line中输入命令:
mybatis-generator:generate -e
点击“Apply”,然后“OK”。

最后点击右上角绿色的三角符号,等待运行结束后,可以看到,对应于test_table的pojo和mapper已经被放到了对应的位置当中,如图:


可以看到生成了对应的pojo和mapper。
(未完持续...)

猜你喜欢

转载自blog.csdn.net/qq_30474361/article/details/54799015