ssm框架整合笔记-3-mybatis的逆向工程与测试项目

zzfon      2022-02-07     557

关键词:

1、mybatis代码生成器(插件)

1.1 安装插件

资源准备:
mybatis_generator_1.3.1.zip
generatorConfig.xml

1.1.1 关闭MyEclipse,找到MyEclipse安装后的目录,新建文件夹soft/mybatis,如下图:

image

1.1.2 解压mybatis_generator_1.3.1.zip文件,并把解压出的features和pougins文件夹copy到“/soft/mybatis/”文件夹内。如下图:

image

同时,单独copy一个mysql驱动jar包,供mybatis代码生成器插件使用,不要共用项目中使用的驱动。

1.1.3 进入D:\Genuitec\MyEclipse 10\dropins文件夹,新建mybatis.link文件,并在文件内添加如下代码:

path=D:\\Genuitec\\MyEclipse 10\\dropins\\soft\\mybatis,内容如图:

image

1.1.4 启动MyEclipse,如果配置成功,启动后MyEclipse会弹出个成功的窗口,如下图。

image

 

1.2 使用插件方法

在项目中添加generatorConfig.xml文件,并修改内容。之后,在项目上鼠标右键点击该文件可看到菜单:generator mybatis artifacts生成。

generatorConfig.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>
    <!-- <properties resource="conn.properties" /> -->
    
    <!-- 为生成器指定数据库连接的驱动 -->
    <classPathEntry
        location="D:\Genuitec\MyEclipse 10\soft\mybatis\mysql-connector-java-5.1.26-bin.jar" />
    <!-- 指定运行环境是mybatis3的版本 -->
    <context id="testTables" targetRuntime="MyBatis3">

        <commentGenerator>
            <!-- 是否取消注释 -->
            <property name="suppressAllComments" value="true" />
            <!-- 是否生成注释代时间戳 -->
            <property name="suppressDate" value="true" />
        </commentGenerator>
        <!-- jdbc 连接信息 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/scm?useUnicode=true&amp;characterEncoding=UTF-8"
            userId="root" password="root">
        </jdbcConnection>

        <!-- targetPackage指定模型在生成在哪个包 ,targetProject指定项目的src, -->
        <javaModelGenerator targetPackage="cn.itcast.scm.entity"
            targetProject="scm/src">
            <!-- 去除字段前后空格 ,与javabean的set/get方法有关,不过一般我们现在写的set/get不存在这种情况,默认false就行 -->
            <property name="trimStrings" value="false" />
        </javaModelGenerator>
        <!-- 配置SQL映射文件生成信息 -->
        <sqlMapGenerator targetPackage="cn.itcast.scm.dao"
            targetProject="scm/src" />
        <!--配置dao接口生成信息 -->
        <javaClientGenerator type="XMLMAPPER"
            targetPackage="cn.itcast.scm.dao" targetProject="scm/src" />

        <!-- 需要生成的数据库表 提醒:如果某表生成过一次了,下次需要注释掉(或删掉), 因为该生成器没有那么智能,会重复生成属性和set/get -->
        <table tableName="account" domainObjectName="Account" />

        <table tableName="supplier" domainObjectName="Supplier" />
    </context>
</generatorConfiguration>

2、准备数据库和表

drop database if exists scm;

create database scm default character set utf8;

use scm;

drop table if exists supplier;


/*============================*/
/* Table: 管理员表结构           */
/*============================*/
create table account
(
   /* 管理员编号,自动增长 */
   acc_id                  int not null auto_increment,
   /* 管理员登录名  */
   acc_login               varchar(20),
   /* 管理员姓名  */
   acc_name                varchar(20),
   /* 管理员密码 */
   acc_pass                varchar(20),
   /* 设置编号为主键 */
   primary key (acc_id)
);

/*==============================================================*/
/* Table: 供应商表                                            */
/*==============================================================*/

create table supplier
(
   sup_id               int not null auto_increment,
   sup_name             varchar(20),
   sup_linkman          varchar(20),
   sup_phone            varchar(11),
   sup_address          varchar(100),
   sup_remark           varchar(200),
   primary key (sup_id)
);

/* 添加供应商数据, */
insert into account (acc_login,acc_pass) values ('admin','admin');
insert into account (acc_login,acc_pass) values ('admin2','admin2');
/* 添加供应商数据, */
insert into supplier (sup_name,sup_linkman,sup_phone,sup_address,sup_remark) values ('苹果供应商','小张','12388888887','广州花都','普通供应商');
insert into supplier (sup_name,sup_linkman,sup_phone,sup_address,sup_remark) values ('三星供应商','小王','12388888888','广州增城','普通供应商');
insert into supplier (sup_name,sup_linkman,sup_phone,sup_address,sup_remark) values ('华为供应商','小王','12388888889','广东深圳','一级供应商');


select * from account;
select * from supplier;

 

3、开始生成代码

3.1 生成后的项目代码,Entity部分包含一些我们没用的信息,可以删除掉,只留下我们需要的。

生成成功,生成后截图:image

删掉AccountExample.java和SupplierExample.java,之后如下图

image

 

3.2 在dao接口和Mapper.xml文件中,生成器为我们生成了很多方法。可自行调整。

4、测试scm项目

4.1 这里 ,为了测试,我们自己重新编写一些简单的dao接口方法,并修改Mapper.xml映射文件,

同时也可以为生成的实体实现序列化,并添加toString方法,方便测试。(下面以Account为例)

4.1.1 修改AccountMapper.java

package cn.itcast.scm.dao;

import cn.itcast.scm.entity.Account;

public interface AccountMapper {
    int insertAccount(Account record);
}

4.1.2修改AccountMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.itcast.scm.dao.AccountMapper" >
  <resultMap id="accountResultMap" type="cn.itcast.scm.entity.Account" >
    <id column="acc_id" property="accId" jdbcType="INTEGER" />
    <result column="acc_login" property="accLogin" jdbcType="VARCHAR" />
    <result column="acc_name" property="accName" jdbcType="VARCHAR" />
    <result column="acc_pass" property="accPass" jdbcType="VARCHAR" />
  </resultMap>
  
  <insert id="insert" parameterType="cn.itcast.scm.entity.Account" >
    insert into account (acc_name) values (#{accName})
  </insert>
   
</mapper>

4.1.3 修改生成的实体类Account

package cn.itcast.scm.entity;

import java.io.Serializable;

public class Account implements Serializable {

    private static final long serialVersionUID = -649693483437792411L;

    private Integer accId;
    private String accLogin;

    private String accName;

    private String accPass;

    //此处省略了setter/getter方法,自行补上
    ...
    
    @Override
    public String toString() {
        return "Account [accId=" + accId + ", accLogin=" + accLogin
                + ", accName=" + accName + ", accPass=" + accPass + "]";
    }
    

}

 

4.2 添加Service接口和实现类,添加控制器类。

4.2.1 AccountService.java

package cn.itcast.scm.service;
import cn.itcast.scm.entity.Account;

public interface AccountService {
    public int insertAccount(Account account) throws Exception;
}

4.2.2 AccountServiceImpl.java

package cn.itcast.scm.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.itcast.scm.dao.AccountMapper;
import cn.itcast.scm.entity.Account;
import cn.itcast.scm.service.AccountService;

@Service
public class AccountServiceImpl implements AccountService{
    @Autowired
    AccountMapper accountMapper;
    @Override
    public int insertAccount(Account account) throws Exception {
        return accountMapper.insertAccount(account);
    }
}
4.2.3 AccountAction.java
package cn.itcast.scm.action;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.itcast.scm.entity.Account;
import cn.itcast.scm.service.AccountService;


@Controller
@RequestMapping(value = "/account")
public class DeptAction {
    @Resource
    private AccountService accountService;


    @RequestMapping(value = "/insert")
    public String insert(Account account) {
        try {
            System.out.println("---action.account:" + account);
            accountService.insertAccount(account);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "forward:/jsp/main.jsp";
    }

}

4.2.4、修改index.jsp,用以测试插入记录

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
</head>
<body>
    <form action="account/insert.action" method="post">
        管理员名称:<input type="text" name="accName"><br> 
        <input type="submit" value="ok">
    </form>
</body>
</html>

 

5、测试插入数据。

ssm的整合(代码片段)

SSM的整合一、Spring集成MyBatis1.1准备工作1.2配置MyBatis主配置文件1.3配置Spring配置文件二、Spring与web的结合三、SSM整合的crud3.1配置pom.xml文件3.2配置web.xml3.3Spring配置文件3.4Springmvc配置文件3.5mybatis.xml的配置3.6controller层一、Spring集成M... 查看详情

ssm框架整合

...,今晚终于搞定了。做了一个简单的ssm整合demo。用到了逆向工程,注解配置。工程结构  util包里面放的是逆向工程java类的代码,也可以用eclipse插件自动生成,因为之前下载有点问题就索性找了段代码来实现逆向工程。具... 查看详情

ssm项目整合springsecurity

...y的功能更加强大。Springsecurity是属于Spring家族的,与Spring框架整合的比较贴切,充分利用了Spring框架的一些特性,IOC,AOP等。SSM项目整合SpringSecurity框架:1,导入springsecurity环境在health_parent父工程的po 查看详情

ssm框架整合

一.创建数据库和表二.逆向生成接口类和映射文件1、在工作空间导入generatorSqlmapCustom逆向工程  2、修改generatorConfig.xml配置:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEgeneratorConfiguration PUBLIC"-//mybatis.org// 查看详情

redis之实战篇(与mybatis整合)

...spring、struts2、hibernate),另一个是ssm(spring、springmvc、mybatis),由于之前已经有整合过ssm框架,所以在此基础上进行略微的改动,做一个Redis与Mybatis的整合具体步骤如下:1,准备好ssm工程,如果有不会的,可以参考springmvc+mybat... 查看详情

分布式电商项目(02)--后台管理系统ssm框架整合(代码片段)

...程都只是一个jar包,具体如下图所示  1.1DAO层 mybatis整合spring,通过spring管理SqlSessionFactory、mapper代理对象。需要m 查看详情

ssm框架整合

一、SSM框架整合前言  如果是初次接触SSM整合的朋友,那么最好是完全按照这个步骤来,包括各个起名。等项目正常跑起来再按自己的想法搭建一次会比较好。二、SSM框架介绍  SSM框架,emmmmm,没啥好介绍的,用起来很快捷... 查看详情

ssm框架的集体整合

...contextconfiglocation2.配置dao的:      1.通过mabatis的逆向工程去生成模型和dao层的mapper文件        疑问:逆向工程是如何生成这些东西的呢      2.配置mybatis 查看详情

shiro学习笔记_0700_整合ssm

现在最流行的框架就是ssm,学到最后,shiro在实际开发中,也就的整合框架。首先spring是少不了的,shiro也提供了和spring的整合包。首先,新建maven项目: maven依赖:<!--集中定义依赖版本号--><properties><junit.version>... 查看详情

springmvc-整合ssm框架(狂神学习笔记)2021-10-03(代码片段)

...求:需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识2.数据库环境创建一个存放书籍数据的数据库表CR 查看详情

javaweb学习笔记之ssm三大框架整合详细教程(代码片段)

1、基本概念1.1、SpringSpring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创... 查看详情

ssm框架整合

#弄了了我好久天的框架整合,今天终于弄好了。做一个小dome#1、构建web工程 2、把需要的jar包导进去  3、springmvc配置  <!-- spring自动扫描base-package下面的包或子包下面的Java文件,将扫描到有Spring的相关  注... 查看详情

ssm框架整合

SSM框架整合1,开发环境的搭建JDK+Eclipse+Tomcat+Maven的安装与配置参考:http://blog.csdn.net/zhshulin/article/details/307798732,MavenWeb项目创建创建一个Maven项目来配置环境参考:http://blog.csdn.net/zhshulin/article/details/379217053,SSM的整合2个 查看详情

springmvc-狂神(5.整合ssm框架)学习笔记(代码片段)

...章目录1.整合SSM1.环境要求2.数据库环境3.基本环境搭建4.Mybatis层编写5.Spring层6.SpringMVC层7.Controller和视图层编写项目结构图1.整合SSM1.环境要求环境:IDEA/EclipseMySQL5.7+Tomcat9Maven3.6要求:需要熟练掌握MySQL数据库,Spring&#... 查看详情

ssm框架的整合

首先创建一个web工程,我这里使用的IDE为eclipse。转载请注明出处:http://www.cnblogs.com/smfx1314/p/7749684.html结果目录如下:添加相关的jar包:接下来是完成配置文件首先我们先配置web.xml:<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns:xsi... 查看详情

ssm框架spring笔记---spring概述;ioc控制反转详解

Spring框架是一个容器,是一个整合了很多其他框架的框架,它的核心是IOC和AOPSpring框架是一个容器,是一个整合了很多其他框架的框架,它的核心是IOC和AOP 查看详情

ssm框架整合---完成对图书数据表的增删改查(代码片段)

...1.先去创建数据表2.创建maven普通项目,导入需要的依赖包3.mybatis层entitydaoservice4.spring层5.springmvc6.查询书籍功能实现7.新增书籍实现8.修改图书信息9.删除图书信息10.查询图书信息1.先去创建数据表并且放入几条初始化数据--创建数据... 查看详情

ssm框架笔记庆祝学习ssm框架结束!!!

终于在2023/3/29日,黑马程序员旗下的ssm框架视频看完了,也是总结了1万多字的笔记,把黑马的和自己的整合了一下完结撒花,接下来开始学习SpringBoot和软考中级设计师。总的来说,我还是比较喜欢.NET,SSM配置实在是太麻烦了,... 查看详情