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