Java自学之Mybatis:Mybatis入门初识

学习目的:初步了解Mybatis,使用mybatis查询数据库中的数据。

Part 1

准备数据库:

create database vaefun_mybatis;

use vaefun_mabatis;

create table category_
(
    id   int auto_increment
        primary key,
    name varchar(32) null
)
    engine = MyISAM
    charset = utf8;

create table product_
(
    id    int auto_increment
        primary key,
    name  varchar(32) charset utf8 null,
    price float(10, 2)             null
);

添加数据

INSERT INTO `vaefun_mybatis`.`product_`(`id`, `name`, `price`) VALUES (1, '戴尔7472', 5499.99);
INSERT INTO `vaefun_mybatis`.`product_`(`id`, `name`, `price`) VALUES (2, '华硕', 3499.99);
INSERT INTO vaefun_mybatis.category_ (id, name) VALUES (1, 'category1');
INSERT INTO vaefun_mybatis.category_ (id, name) VALUES (2, 'category2');

Part 2

创建Java项目:mybatis,并导入相应的jar包。

v2-6475bca96963e66d5ed869c8e8109811_b.jpg

Part 3

准备pojo,用于映射创建的表

Category

package cn.vaefun.pojo;

public class Category {
    private int id;
    private String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

Product

package cn.vaefun.pojo;

public class Product {
    private int id;
    private String name;
    private float price;

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }
}

Part 4

配置pojo.xml:在cn.vaefun.pojo中新建pojo.xml。

namespace="cn.vaefun.pojo":表示命名空间为cn.vaefun.pojo。

select * from category_这条sql语句用id:listCategory进行标示以供后续代码调用。resultType="Category"表示返回的数据和Category关联起来,这里本应该使用的是com.how2java.pojo.Category, 但是因为上一步配置了别名,所以直接使用Category就行了。

<?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="cn.vaefun.pojo">
    <select id="listCategory" resultType="Category">
            select * from   category_
        </select>
    <select id="listProduct" resultType="Product">
            select * from   product_
        </select>
</mapper>

Part 5

在src下新建mybatis-config.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>
    <typeAliases>
        <package name="cn.vaefun.pojo"/>
        <!--    扫描该包下的类
            使得在后续配置文件pojo.xml中使用resultType的时候,可以直接使用Category,
            而不必写全cn.vaefun.pojo.Category-->
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/vaefun_mybatis?characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/vaefun/pojo/pojo.xml"/>
        <!--    映射pojo.xml    -->
    </mappers>
</configuration>

Part 6

新建测试类:TestMybatis

根据mybatis-config.xml获取sqlSessionFactoy,然后获取sqlSession。

根据上文配置文件中的select id执行相对应的sql语句,并使用相应的对象集合接收查询到的数据对象,然后遍历集合,打印相应的属性。

package cn.vaefun.test;

import cn.vaefun.pojo.Category;
import cn.vaefun.pojo.Product;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class TestMybatis {

    public static void main(String[] args) throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session=sqlSessionFactory.openSession();

        List<Category> cs=session.selectList("listCategory");
        for (Category c : cs) {
            System.out.println(c.getName());
        }

        List<Product> products=session.selectList("listProduct");
        for (Product p : products) {
            System.out.println(p.getId());
            System.out.println(p.getName());
            System.out.println(p.getPrice());
        }

    }
}

Part 7

运行测试。

v2-7d257e99e27dbd77f0b4b081af44501b_b.jpg

成功使用mybatis查询到数据库中的信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值