Mybatis基本配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis基本配置相关的知识,希望对你有一定的参考价值。

 

1. Mybatis介绍

        MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

2. 准备jar包

        1)mybatis-3.3.0.jar, Mybatis包。

        2)sqljdbc4.jar ,因为我们要用到SQLSERVER,所以需要此包。

3. 准备SQL SERVER表结构及数据

创建商品信息表并为商品信息表添加要用到的测试数据

CREATE TABLE tbInfoPart (
    ID INT IDENTITY(1,1), --自增id
    PartCode NVARCHAR(100), --商品编码
    PartName NVARCHAR(200), --商品名称
    Unit NVARCHAR(4), --商品单位
    SalePrice NUMERIC(14,6) --售价
)

INSERT INTO tbInfoPart (PartCode, PartName, Unit, SalePrice) VALUES 
(001-0001, TCL D32E161 32英寸 内置wifi 在线影视 窄边LED网络液晶电视, , 1099.90)
INSERT INTO tbInfoPart (PartCode, PartName, Unit, SalePrice) VALUES 
(001-0002, TCL D50A710 50英寸 40万小时视频 全高清 内置WiFi 八核安卓智能LED液晶电视, , 2799.00)

4. MyBatis基本配置

        1)打开MyExclipse,新建一个java project

        2)添加工程根目录lib文件夹,将我们所需要的两个jar包文件拷贝到这个文件夹下,并右键Build Path ==> Add To Build Path

        3)在src目录下添加mybatis.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <!-- 配置数据库连接信息 -->
            <dataSource type="POOLED">
                <!-- jdbc驱动 -->
                <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
                <!-- 数据库链接 -->
                <property name="url" value="jdbc:sqlserver://127.0.0.1; DatabaseName=Mybatis" />
                <!-- 数据库用户名 -->
                <property name="username" value="sa" />
                <!-- 数据库密码 -->
                <property name="password" value="-+" />
            </dataSource>
        </environment>
    </environments>   
</configuration>

        4)定义表tbInfoPart(商品信息表)对应的实体类

package com.mybatis.entity;

public class PartInfo {
    private int id;
    private String partCode;
    private String partName;
    private String unit;
    private Float salePrice;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getPartCode() {
        return partCode;
    }
    public void setPartCode(String partCode) {
        this.partCode = partCode;
    }
    public String getPartName() {
        return partName;
    }
    public void setPartName(String partName) {
        this.partName = partName;
    }
    public String getUnit() {
        return unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
    }
    public Float getSalePrice() {
        return salePrice;
    }
    public void setSalePrice(Float salePrice) {
        this.salePrice = salePrice;
    }
}

        5)定义维护tbInfoPart(商品信息表)的接口

package com.mybatis.dao;

import com.mybatis.entity.PartInfo;

public interface PartDao {
    public PartInfo getPartInfoByID(int id);
}

      6)配置tbInfoPart(商品信息表)接口在Mybatis中的实现

<?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">
<!-- namespace为dao接口类的全名(报名+类名) -->
<mapper namespace="com.mybatis.dao.PartDao">
    <!-- 如果要执行SELECT语句,就选择select标签。INSERT、UPDATE、DELETE同理 -->
    <!-- id属性:对应dao接口类的方法名 -->
    <!-- parameterType:对应dao接口类的参数类型,无参数可省略此属性 -->
    <!-- resultType:对应dao接口类的返回结果类型,无返回结果可省略此属性 -->
    <select id="getPartInfoByID" parameterType="int" resultType="com.mybatis.entity.PartInfo">
        SELECT * FROM tbInfoPart WHERE ID=#{id}
    </select>
</mapper>

         7)调整mybatis.xml,在</configuration>之前添加如下代码

    <mappers>
        <!-- 注册PartMapper.xml文件 -->
        <mapper resource="com/mybatis/dao/mapper/PartMapper.xml"/>
    </mappers>

5. 测试运行

package com.mybatis;

import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.mybatis.entity.PartInfo;

public class TestMain {
    public static void main(String[] args) {
        InputStream iStream = TestMain.class.getClassLoader().getResourceAsStream("mybatis.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(iStream);
        SqlSession session = sessionFactory.openSession();
        String statement = "com.mybatis.dao.PartDao.getPartInfoByID";
        PartInfo partInfo = session.selectOne(statement, 1);
        
        System.out.println("商品:["+partInfo.getPartCode()+"] "+partInfo.getPartName()+" ,售价:"+
                partInfo.getSalePrice()+"元/"+partInfo.getUnit());
    }
}

输出结果:

商品:[001-0001] TCL D32E161 32英寸 内置wifi 在线影视 窄边LED网络液晶电视 ,售价:1099.9元/台

可以看到,数据库中的记录已经成功查询到了。

6. 目录结构接源码

技术分享

源码下载:点此下载源码

以上是关于Mybatis基本配置的主要内容,如果未能解决你的问题,请参考以下文章

Spring+SpringMVC+MyBatis+Maven框架整合

mybatis学习(39):动态sql片段

SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper

mybatis动态sql片段与分页,排序,传参的使用

MyBatis动态SQL标签用法

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段