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






















{call CatalogInfo_AddOrEdit(?,?,?,?,?,?,?,?,?,?,?,?,?,?)}




























{call CatalogInfo_ByDelOrEdit(?,?)}











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 ListfindCatalogInfo(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类似。

你可能感兴趣的:(spring mvc /spring boot整合mybatis ssm搭建)