Mybatis简介和使用步骤

一、Mybatis简介

Mybatis是一个基于Java的持久层框架,主要用于帮助程序员将数据存入
数据库或者从数据库中取出数据。传统的jdbc对数据库的操作有很多重复
的代码块,比如数据取出时的封装操作和数据库的建立连接等,而通过
Mybatis能够减少这些重复的代码块,提高开发的效率。

二、Mybatis使用步骤

1、导入mybatis相关jar包

用mybatis实现对数据库的操作主要需要以下jar包

mybatis的jar包

2、配置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>
    <!--环境配置,连接的数据库,这里使用的是MySQL-->
    <environments default="mysql">
        <environment id="mysql">
            <!--指定事务管理的类型,这里简单使用Java的JDBC的提交和回滚设置-->
            <transactionManager type="JDBC"/>
            <!--dataSource 指连接源配置,POOLED是JDBC连接对象的数据源连接池的实现-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/exercise"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--这是告诉Mybatis区哪找持久化类的映射文件,对于在src下的文件直接写文件名,
            如果在某包下,则要写明路径,如:com/mybatistest/config/User.xml-->
        <mapper resource="cn/ll/entity/goods.mapper.xml"/>
    </mappers>
</configuration>

在项目的根目录下新建一个mybatis.cfg.xml文件,在配置文件中对连接的数据库进行相关描述,并告诉mybatis映射文件的路径所在

3、创建SqlSessionFactory以及获得SqlSession

public class MybatisUtil {
    public static SqlSessionFactory getSqlSessionFactory() throws IOException {
        String resource = "mybatis.cfg.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        return sqlSessionFactory;
    }
    public static SqlSession getSqlSession() throws IOException {
        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
        return sqlSessionFactory.openSession();
    }
}

创建一个MybatisUtil类,并在该类中解析核心配置文件mybatis.cfg.xml,连接到数据库。

4、创建一个实体类

public class Goods {
    private int id;
    private String description;
    private Float current_price;
    private Float original_price;

    public int getId() {
        return id;
    }

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

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Float getCurrent_price() {
        return current_price;
    }

    public void setCurrent_price(Float current_price) {
        this.current_price = current_price;
    }

    public Float getOriginal_price() {
        return original_price;
    }

    public void setOriginal_price(Float original_price) {
        this.original_price = original_price;
    }
}

创建一个goods的实体类,用来封装从数据库中取出来的数据类型,具体实体类的编写还要依照数据库的数据类型进行。

5、编写sql语句的映射文件

<?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.ll.entity.GoodsMapper">
    <select id="selectGoods"  resultType="cn.ll.entity.Goods">
        select * from theme where id = #{id}
    </select>
</mapper>

针对goods实体类建一个goods.mapper.xml的映射文件,其中的namespace是自己明明的mapper命名空间,resultType="cn.ll.entity.Goods"对应着goods实体类的包名、类名,select标签里为sql语句。

6、测试

public class Test {
    public static void main(String[] args) throws IOException {
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        Goods goods = sqlSession.selectOne("cn.ll.entity.GoodsMapper.selectGoods",5);
        System.out.println("id="+goods.getId()+",description="+goods.getDescription());
    }
}

编写测试类代码Test.java,用映射文件的selectGoods读取数据库中的一条记录,以下是运行结果:
运行结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值