手记

Mybatis从零单排-1

Mybatis的基本使用。

1、在mysql数据库中创建测试的数据库mybatis和测试数据表。

create database mybatis;

create table tb_country(

    id int not null auto_increment,

    country_name varchar(255) default null,

    country_code varchar(255) default null,

    primary key(id)

);

2、在数据表中插入测试数据。

insert into tb_country(country_name,country_code) values('中国','CN'),('美国','US'),('俄罗斯','RU'),('英国','GB'),('法国','FR');

3、pom.xml文件中引入mybatis和mysql的驱动jar包

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.4.2</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.37</version>
</dependency>

4、引入mybatis配置文件(告知mybatis如何工作)

<?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="UNPOOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <!--指定配置文件路径-->
    <mappers>
        <mapper resource="mapper/CountryDao.xml"/>
    </mappers>
</configuration>

5、编写实体类Country
package com.imooc.testmybatis;

public class Country {
    private int id;
    private String countryName;
    private String countryCode;

    public int getId() {
        return id;
    }

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

    public String getCountryName() {
        return countryName;
    }

    public void setCountryName(String countryName) {
        this.countryName = countryName;
    }

    public String getCountryCode() {
        return countryCode;
    }

    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    @Override
    public String toString() {
        return "Country{" +
                "id=" + id +
                ", countryName='" + countryName + '\'' +
                ", countryCode='" + countryCode + '\'' +
                '}';
    }
}

6、编写Dao接口

package com.imooc.dao;

import com.imooc.testmybatis.Country;

import java.util.List;

public interface CountryDao {

    List<Country> selectAll();
}

7、编写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">
<mapper namespace="com.imooc.dao.CountryDao">
    <select id="selectAll" resultType="com.imooc.testmybatis.Country">
        SELECT id,country_name AS countryName,country_code AS countryCode
        FROM tb_country
    </select>

</mapper

8、测试mybatis操作数据库

package com.imooc;

import com.imooc.dao.CountryDao;
import com.imooc.testmybatis.Country;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.BeforeClass;
import org.junit.Test;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

public class CountryMapperTest {
    private static SqlSessionFactory sqlSessionFactory;

    @BeforeClass
    public static void init(){
        try {
                  Reader reader = Resources.getResourceAsReader("config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            reader.close();
        } catch ( IOException e ) {
            e.printStackTrace();
        }
    }

      @Test
    public void testSelectAll(){
        SqlSession sqlSession = sqlSessionFactory.openSession();
        try{
            CountryDao countryMapper = sqlSession.getMapper(CountryDao.class);
            List<Country> countryList = countryMapper.selectAll();
            System.out.println(countryList);
        }finally {
            sqlSession.close();
        }

    }
}

9、数据库返回数据

[

Country{id=1, countryName='中国', countryCode='CN'}, 

Country{id=2, countryName='美国', countryCode='US'}, 

Country{id=3, countryName='俄罗斯', countryCode='RU'}, 

Country{id=4, countryName='英国', countryCode='GB'}, 

Country{id=5, countryName='法国', countryCode='FR'}

]

0人推荐
随时随地看视频
慕课网APP