spring mvc /spring boot整合mybatis ssm搭建

spring boot整合mybatis:https://blog.csdn.net/ljheee/article/details/76599363

https://blog.csdn.net/ljheee/article/details/76618762

https://blog.csdn.net/qq_35860138/article/details/86477661 去xml

https://blog.csdn.net/ljheee/article/details/76618762

文件配置详解:https://www.cnblogs.com/zHpx/p/7476539.html

非常完整的示例:https://www.cnblogs.com/best/p/5688040.html

好好研究一下:https://www.jb51.net/article/118785.htm

https://www.cnblogs.com/xiaoxi/p/6260628.html

乱码问题:https://blog.csdn.net/vipmao/article/details/51096125

mybatis存储过程学习:https://blog.csdn.net/programer_bei/article/details/51475485

http://www.cnblogs.com/huaxingtianxia/p/5628828.html

添插增删改:https://blog.csdn.net/dwenxue/article/details/82257944

https://www.cnblogs.com/yanan7890/p/8776379.html

mybatis存储过程:https://www.cnblogs.com/best/p/5688040.html

mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD//EN"  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.mybatis.CatalogDao">
<!-- 添加频道方法1 -->
<parameterMap type="com.entity.CatalogInfo" id="SaveCatalog">
<parameter property="catalogId" jdbcType="INTEGER" javaType="Integer" mode="IN"></parameter>
<parameter property="catalogChain" jdbcType="VARCHAR" javaType="String" mode="IN"></parameter>
<parameter property="catalogType" jdbcType="VARCHAR" javaType="String" mode="IN"></parameter>
<parameter property="catalogNameCn" jdbcType="VARCHAR" javaType="String" mode="IN"></parameter>
<parameter property="catalogNameEn" jdbcType="VARCHAR" javaType="String" mode="IN"/>
<parameter property="openMode" jdbcType="VARCHAR" javaType="String" mode="IN"/>
<parameter property="enableUrl" jdbcType="INTEGER" javaType="Integer" mode="IN"/>
<parameter property="catalogUrl" jdbcType="VARCHAR" javaType="String" mode="IN"/>
<parameter property="catalogSort" jdbcType="INTEGER" javaType="Integer" mode="IN"/>
<parameter property="keyword" jdbcType="VARCHAR" javaType="String" mode="IN"/>
<parameter property="description" jdbcType="VARCHAR" javaType="String" mode="IN"/>
<parameter property="display" jdbcType="INTEGER" javaType="Integer" mode="IN"/>
<parameter property="saveIp" jdbcType="VARCHAR" javaType="String" mode="IN"/>
<parameter property="saveTime" jdbcType="TIMESTAMP" javaType="java.sql.Timestamp" mode="IN"/>
</parameterMap>
<insert id="saveCatalogInfo" parameterMap="SaveCatalog" statementType="CALLABLE">
{call CatalogInfo_AddOrEdit(?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
</insert>
<!-- 添加保存频道方法2 -->
<!-- <insert id="saveCatalogInfo" parameterType="com.entity.CatalogInfo" statementType="CALLABLE"> -->
<!-- {call CatalogInfo_AddOrEdit(#{catalogId,mode=IN,jdbcType=INTEGER}, -->
<!-- #{catalogChain,mode=IN,jdbcType=VARCHAR}, -->
<!-- #{catalogType,mode=IN,jdbcType=VARCHAR}, -->
<!-- #{catalogNameCn,mode=IN,jdbcType=VARCHAR}, -->
<!-- #{catalogNameEn,mode=IN,jdbcType=VARCHAR}, -->
<!-- #{openMode,mode=IN,jdbcType=VARCHAR}, -->
<!-- #{enableUrl,mode=IN,jdbcType=INTEGER}, -->
<!-- #{catalogUrl,mode=IN,jdbcType=VARCHAR}, -->
<!-- #{catalogSort,mode=IN,jdbcType=INTEGER}, -->
<!-- #{keyword,mode=IN,jdbcType=VARCHAR}, -->
<!-- #{description,mode=IN,jdbcType=VARCHAR}, -->
<!-- #{display,mode=IN,jdbcType=INTEGER}, -->
<!-- #{saveIp,mode=IN,jdbcType=VARCHAR}, -->
<!-- #{saveTime,mode=IN,jdbcType=TIMESTAMP} -->
<!-- )} -->
<!-- </insert> -->

<!-- 统计或获取最大值查询 -->
<select id="countCatalogInfo" parameterMap="countOrMax" statementType="CALLABLE" resultType="Integer">
{call CatalogInfo_ByCount(?)}
</select>
<parameterMap type="String" id="countOrMax">
<parameter property="countWhere" jdbcType="VARCHAR" javaType="String" mode="IN" />
<!-- <parameter property="countNumber" jdbcType="INTEGER" javaType="Integer" mode="OUT"/> -->
</parameterMap>
<!-- 删除或编辑 -->
<update id="delOrEditCatalogInfo" parameterMap="delOrEdit" statementType="CALLABLE">
{call CatalogInfo_ByDelOrEdit(?,?)}
</update>
<parameterMap type="String" id="delOrEdit">
<parameter property="delOrEditContent" jdbcType="VARCHAR" javaType="String" mode="IN"/>
<parameter property="delOrEditWhere" jdbcType="VARCHAR" javaType="String" mode="IN"/>
</parameterMap>
<!-- 查找频道 -->
<select id="findCatalogInfo" resultType="com.entity.CatalogInfo" statementType="CALLABLE" parameterMap="findInfo">
{call CatalogInfo_ByFind(?)}
</select>
<parameterMap type="String" id="findInfo">
<parameter property="findWhere" jdbcType="VARCHAR" javaType="String" mode="IN"/>
</parameterMap>
</mapper>

Dao

package com.dao.mybatis;

import com.entity.CatalogInfo;

public interface CatalogDao {
	/**
	 * 保存频道数据
	 * @param catalogInfo
	 * @return
	 */
	public Integer saveCatalogInfo(CatalogInfo catalogInfo);
/**
	 * 统计数或获取最大值  
	 * @param countWhere all-统计频道所有条数  maxSort-获取最大排序号  maxChain-获取频道当前最大关链值  其它-否则是按条件统计当前频道条数
	 * @return
	 */
	public Integer countCatalogInfo(String countWhere);
	
	/**
	 * 删除或编辑频道信息
	 * @param delOrEditContent del-删除当前频道   其它为编辑当前信息
	 * @param delOrEditWhere
	 * @return
	 */
	public Integer delOrEditCatalogInfo(String delOrEditContent,String delOrEditWhere);
	
	/**
	 * 查频道信息
	 * @param findWhere all-全部显示,否则按条件查找
	 * @return
	 */
	public List<CatalogInfo>findCatalogInfo(String findWhere);
}

频道实体entity

package com.entity;

import java.sql.Timestamp;

public class CatalogInfo {
	private Integer catalogId;
	private String catalogChain;
	private String catalogType;
	private String catalogNameCn;
	private String catalogNameEn;
	private String openMode;
	private Integer enableUrl;
	private String catalogUrl;
	private Integer catalogSort;
	private String keyword;
	private String description;
	private Integer display;
	private String saveIp;
	private Timestamp saveTime;

	/**
	 * 获取频道主Id
	 * 
	 * @return
	 */
	public Integer getCatalogId() {
		return catalogId;
	}

	/**
	 * 设置频道Id
	 * 
	 * @param catalogId
	 */
	public void setCatalogId(Integer catalogId) {
		this.catalogId = catalogId;
	}

	/**
	 * 获取频道关联字段唯一字段
	 */
	public String getCatalogChain() {
		return catalogChain;
	}

	/**
	 * 设置频道关联字段唯一字段
	 * 
	 * @param catalogChain
	 */
	public void setCatalogChain(String catalogChain) {
		this.catalogChain = catalogChain;
	}

	/**
	 * 获取频道类型
	 * 
	 * @return
	 */
	public String getCatalogType() {
		return catalogType;
	}

	/**
	 * 设置频频类型
	 * 
	 * @param catalogType
	 */
	public void setCatalogType(String catalogType) {
		this.catalogType = catalogType;
	}

	/**
	 * 获取频道中文名称
	 * 
	 * @return
	 */
	public String getCatalogNameCn() {
		return catalogNameCn;
	}

	/**
	 * 设置频道中文名称
	 * 
	 * @param catalogNameCn
	 */
	public void setCatalogNameCn(String catalogNameCn) {
		this.catalogNameCn = catalogNameCn;
	}

	/**
	 * 获取频道英文名称
	 */
	public String getCatalogNameEn() {
		return catalogNameEn;
	}

	/**
	 * 设置频道英文名称
	 * 
	 * @param catalogNameEn
	 */
	public void setCatalogNameEn(String catalogNameEn) {
		this.catalogNameEn = catalogNameEn;
	}

	/**
	 * 获取频道链打窗口打开方式
	 * 
	 * @return
	 */
	public String getOpenMode() {
		return openMode;
	}

	/**
	 * 设置频道链接窗口打开方式
	 * 
	 * @param openMode
	 */
	public void setOpenMode(String openMode) {
		this.openMode = openMode;
	}

	/**
	 * 获取是否启用外部链接 0-不启用 1-启用
	 * 
	 * @return
	 */
	public Integer getEnableUrl() {
		return enableUrl;
	}

	/**
	 * 设置频道是否启用外部链接 0-不启 1-启用
	 * 
	 * @param enableUrl
	 */
	public void setEnableUrl(Integer enableUrl) {
		this.enableUrl = enableUrl;
	}

	/**
	 * 获取频道的外部链接
	 * 
	 * @return
	 */
	public String getCatalogUrl() {
		return catalogUrl;
	}

	/**
	 * 设置频道的外部链接
	 * 
	 * @param catalogUrl
	 */
	public void setCatalogUrl(String catalogUrl) {
		this.catalogUrl = catalogUrl;
	}

	/**
	 * 获取频道排序
	 * 
	 * @return
	 */
	public Integer getCatalogSort() {
		return catalogSort;
	}

	/**
	 * 设置频道排序
	 * 
	 * @param catalogSort
	 */
	public void setCatalogSort(Integer catalogSort) {
		this.catalogSort = catalogSort;
	}

	/**
	 * 获取频道关键字词组
	 * 
	 * @return
	 */
	public String getKeyword() {
		return keyword;
	}

	/**
	 * 设置频道关键字词组
	 * 
	 * @param keyword
	 */
	public void setKeyword(String keyword) {
		this.keyword = keyword;
	}

	/**
	 * 获取频道描述
	 * 
	 * @return
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * 设置频道描述
	 * 
	 * @param description
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * 获取频道是否关闭或显示 0-关闭 1-开启
	 * 
	 * @return
	 */
	public Integer getDisplay() {
		return display;
	}

	/**
	 * 设置频道是否关闭或显示 0-关闭 1-开启
	 * 
	 * @param display
	 */
	public void setDisplay(Integer display) {
		this.display = display;
	}

	/**
	 * 获取频道保存Ip来源
	 * 
	 * @return
	 */
	public String getSaveIp() {
		return saveIp;
	}

	/**
	 * 设置频道保存IP来源
	 * 
	 * @param saveIp
	 */
	public void setSaveIp(String saveIp) {
		this.saveIp = saveIp;
	}

	/**
	 * 获取频道保存时间
	 */
	public Timestamp getSaveTime() {
		return saveTime;
	}

	/**
	 * 设置频道保存时间
	 * 
	 * @param saveTime
	 */
	public void setSaveTime(Timestamp saveTime) {
		this.saveTime = saveTime;
	}

}

存储过程MSSQL(Sql server)

//添修
PROCEDURE [dbo].[CatalogInfo_AddOrEdit]
	@cid int,
	@cChain varchar(100),
	@cType varchar(50),
	@cNameCn varchar(500),
	@cNameEn varchar(500),
	@openMode varchar(50),
	@enUrl int,
	@Url varchar(max),
	@cSort int,
	@keyword varchar(500),
	@desc varchar(500),
	@display int,
	@ip varchar(50),
	@ctime datetime
AS
if(@cid=0)
begin
insert eyucom_Catalog(catalogChain,catalogType,catalogNameCn,catalogNameEn,openMode,enableUrl,catalogUrl,catalogSort,keyword,description,display,saveIp,saveTime)
values(@cChain,@cType,@cNameCn,@cNameEn,@openMode,@enUrl,@Url,@cSort,@keyword,@desc,@display,@ip,@ctime)
end
else
BEGIN
update eyucom_Catalog set catalogChain=@cChain,catalogType=@cType,catalogNameCn=@cNameCn,catalogNameEn=@cNameEn,openMode=@openMode,enableUrl=@enUrl,catalogUrl=@Url,
catalogSort=@cSort,keyword=@keyword,description=@desc,display=@display,saveIp=@ip,saveTime=@ctime
where catalogId=@cid
END

//统计相关
PROCEDURE[dbo].[CatalogInfo_ByCount] 
	@countWhere varchar(max)
AS
if(@countWhere='all')
begin
select COUNT(catalogId) as countNumber from eyucom_Catalog
end
else if(@countWhere='maxSort')
begin
select MAX(catalogSort) as countNumber from eyucom_Catalog
end
else if(@countWhere='maxChain')
begin
select MAX(catalogChain) as countNumber from eyucom_Catalog
end
else
BEGIN
exec('select COUNT(catalogId) as countNumber from eyucom_Catalog where '+@countWhere+'')
END

//删除或修改部份字段
 PROCEDURE [dbo].[CatalogInfo_ByDelOrEdit]
	@delOrEditContent varchar(max),
	@delOrEditWhere varchar(max)
AS
if(@delOrEditContent='del')
begin
exec('delete from eyucom_Catalog whrer '+@delOrEditWhere+'')
end
BEGIN
exec('update eyucom_Catalog set '+@delOrEditContent+' where '+@delOrEditWhere+'')
END

//查找
PROCEDURE [dbo].[CatalogInfo_ByFind] 
	@findWhere varchar(max)
AS
if(@findWhere='all')
begin
select * from eyucom_Catalog order by catalogSort ASC
end
BEGIN
exec('select * from eyucom_Catalog where '+@findWhere+' order by catalogSort ASC')
END

注意以下 MyBatis 通过包含的jdbcType类型

BIT、FLOAT、CHAR 、TIMESTAMP 、 OTHER 、UNDEFINEDTINYINT 、REAL 、
VARCHAR 、BINARY 、BLOB NVARCHAR、SMALLINT 、DOUBLE 、LONGVARCHAR 、
VARBINARY 、CLOB、NCHAR、INTEGER、 NUMERIC、DATE 、LONGVARBINARY 
、BOOLEAN 、NCLOB、BIGINT 、DECIMAL 、TIME 、NULL、CURSOR

Mybatis中javaType和jdbcType对应关系

 JDBCType            JavaType
    CHAR                String
    VARCHAR             String
    LONGVARCHAR         String
    NUMERIC             java.math.BigDecimal
    DECIMAL             java.math.BigDecimal
    BIT                 boolean
    BOOLEAN             boolean
    TINYINT             byte
    SMALLINT            short
    INTEGER             int
    BIGINT              long
    REAL                float
    FLOAT               double
    DOUBLE              double
    BINARY              byte[]
    VARBINARY           byte[]
    LONGVARBINARY               byte[]
    DATE                java.sql.Date
    TIME                java.sql.Time
    TIMESTAMP           java.sql.Timestamp
    CLOB                Clob
    BLOB                Blob
    ARRAY               Array
    DISTINCT            mapping of underlying type
    STRUCT              Struct
    REF                 Ref
    DATALINK            java.net.URL[color=red][/color]

关于ResultMap和ResultType、ParameterMap和ParameterType,它们都是存在于mybatis的应用中。当我们在编写mapper.xml的时候,经常可以看到这几个参数,接下来就来分析一下它们之间的区别了。

    首先看看ResultMap和ResultType,它们都是用来表示查询结果集与java对象之间的一种关系,将查询结果集,按照某种关系映射到java对象。

    ResultMap:将查询结果集中的列一一映射到java对象的各个属性上去,此处的这个映射关系,是根据用户在“resultMap”的子标签中的配置来决定的,灵活多变,常用于多表查询以及查询时使用别名的情况。

ResultMap标签及其子标签部分属性:

id:指定查询结果集中的唯一标识,即主键,可配置多个;
column:查询结果集中的列名;
property:需要映射到java对象中的属性名。
    ResultType:将查询结果集中的各个列,一一映射到java对象中与列名一致的属性中。换句话说,此处查询结果集到java对象的映射关系是固定的,只有列名和属性名相同,该列才能映射成功。

    了解完ResultMap和ResultType,接下来学习ParameterMap和ParameterType就简单多了。

    ParameterMap其实和ResultMap类似,映射关系灵活多变,但ParameterMap并不被各个开发者推荐。相对的,ParameterType则是比较常用,该项与ResultType类似。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值