Mybatis框架原理简单示例

这里写图片描述

代码示例:

Step1. 创建一个普通java工程

这里写图片描述

Step2. 配置sqlMapConfig.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configyration 
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configyration>
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc事务管理, 事务控制由mybatis进行管理  -->
            <transactionManager type="JDBC" />
            <!-- 数据库连接池,由mybatis进行管理  -->
            <dataSource type="POOLED">
                <property name="driver" value="驱动"/>
                <property name="url" value="数据库地址"/>
                <property name="username" value="用户名"/>
                <property name="password" value="密码"/>
            </dataSource>
        </environment>  
    </environments>

    <!-- 加载映射文件 -->
    <mappers>
        <mapper resource="sqlmap/EbizCode.xml" />
    </mappers>

</configyration>
Step2.2. 配置映射文件
注:整合ssm框架后可自动生成基本功能,部分特殊查询需自己进行编写
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-config.dtd">

<!--
     命名空间,作用是对sql进行分类管理,理解sql隔离 
    注意:使用mapper代理方法开发,namesapce有特殊重要的作用
-->
<mapper namespace="ebizCode">

    <!-- 配置sql语句 -->
    <!-- 
        通过selct执行数据库查询

        id:标识映射文件中的sql,称为statement的id

        将sql语句封装到mapperdstatement对象中

        #{} 表示一个占位符号

        parameterType 指定输入参数的类型

        #{codeType} 其中codeType表示输入的参数,参数名称就是id,若输入参数为简单类型, #{}中参数名可以任意,可以value或其它名称

        resultType:指定sql输出结果的映射的java对象类型,select指定resultType表示将单条记录(画重点)映射成java对象
     -->

    <select id="getEbizCodeByType" parameterType="String" resultType="com.zyl.mybatis.demo.pojo.EbizCode">
        select * from ebiz_code c where c.code_type= #{codeType} 
    </select>

    <!-- 根据用户名模糊查询,可能返回多条 -->
    <!-- (画重点)resultType:指定就是单条记所映射的java对象类型 -->
    <!-- ${}表示拼接sql串,将接收到的参数不加任何修饰拼接在sql中(容易造成sql注入) 
         ${value}表示输入参数的内容,若传入类型是简单类型,${}中只能传value
    -->
    <select id="getEbizCodeByName" parameterType="String" resultType="com.zyl.mybatis.demo.pojo.EbizCode">
        select * from ebiz_code c where c.code_type like '%#{value}%' 
    </select>

</mapper>
Step2.3. 配置POJO
/**
 * pojo
 * @author suk1M
 * 随便写的就不加注释了,然而不加注释不是一个好习惯
 */
public class EbizCode {

    private BigDecimal id;

    private String codeType;

    private String code;

    private String codeLabel;

    private BigDecimal showOrder;

    private String parentCode;

    private Date createdDate;

    private Date modifiedDate;

    private String createdUser;

    private String modifiedUser;

    private Short isDelete;

    private String standByFlag1;

    private String standByFlag2;

    private String standByFlag3;

    private String standByFlag4;

    private String standByFlag5;

    public BigDecimal getId() {
        return id;
    }

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

    public String getCodeType() {
        return codeType;
    }

    public void setCodeType(String codeType) {
        this.codeType = codeType == null ? null : codeType.trim();
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code == null ? null : code.trim();
    }

    public String getCodeLabel() {
        return codeLabel;
    }

    public void setCodeLabel(String codeLabel) {
        this.codeLabel = codeLabel == null ? null : codeLabel.trim();
    }

    public BigDecimal getShowOrder() {
        return showOrder;
    }

    public void setShowOrder(BigDecimal showOrder) {
        this.showOrder = showOrder;
    }

    public String getParentCode() {
        return parentCode;
    }

    public void setParentCode(String parentCode) {
        this.parentCode = parentCode == null ? null : parentCode.trim();
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public Date getModifiedDate() {
        return modifiedDate;
    }

    public void setModifiedDate(Date modifiedDate) {
        this.modifiedDate = modifiedDate;
    }

    public String getCreatedUser() {
        return createdUser;
    }

    public void setCreatedUser(String createdUser) {
        this.createdUser = createdUser == null ? null : createdUser.trim();
    }

    public String getModifiedUser() {
        return modifiedUser;
    }

    public void setModifiedUser(String modifiedUser) {
        this.modifiedUser = modifiedUser == null ? null : modifiedUser.trim();
    }

    public Short getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(Short isDelete) {
        this.isDelete = isDelete;
    }

    public String getStandByFlag1() {
        return standByFlag1;
    }

    public void setStandByFlag1(String standByFlag1) {
        this.standByFlag1 = standByFlag1 == null ? null : standByFlag1.trim();
    }

    public String getStandByFlag2() {
        return standByFlag2;
    }

    public void setStandByFlag2(String standByFlag2) {
        this.standByFlag2 = standByFlag2 == null ? null : standByFlag2.trim();
    }

    public String getStandByFlag3() {
        return standByFlag3;
    }

    public void setStandByFlag3(String standByFlag3) {
        this.standByFlag3 = standByFlag3 == null ? null : standByFlag3.trim();
    }

    public String getStandByFlag4() {
        return standByFlag4;
    }

    public void setStandByFlag4(String standByFlag4) {
        this.standByFlag4 = standByFlag4 == null ? null : standByFlag4.trim();
    }

    public String getStandByFlag5() {
        return standByFlag5;
    }

    public void setStandByFlag5(String standByFlag5) {
        this.standByFlag5 = standByFlag5 == null ? null : standByFlag5.trim();
    }
}
Step3. 编写demo示例
/**
 * testDemo
 * @author suk1M
 *
 */
public class MybatisDemo {

    public static void main(String[] args) throws IOException {
        // mybatis 配置文件
        String resource = "sqlMapConfig.xml";

        // 读取配置文件,得到sql配置文件流
        InputStream is = Resources.getResourceAsStream(resource);

        // 创建会话工厂,传入mybatis配置信息
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);

        // 通过工厂得到SqlSession
        SqlSession ss = ssf.openSession();

        // 通过工厂得到SqlSession操作数据库
        // 第一个参数:statement的id,等于namespace + "." + statement的id
        // 第二个参数:指定和映射文件中所匹配的parameterType类型的参数
        // ss.selectOne结果是与映射文件中所匹配的resultType类型的对象
        EbizCode ec = ss.selectOne("ebizCode.getEbizCodeByType", "firstChannel");


        System.out.println(ec);

        ss.close();

    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值