MyBatis学习笔记---基础知识(一)

MyBatis学习笔记—基础知识(一)

​ Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身。
​ 他有两种实现方式:xml与注解。

配置文件xml

​ Mybatis 是对JDBC的封装,也就是说,JDBC该怎样Mybatis 一个也少不了,只是将一些代码以配置文件的方式来呈现。都是固定写法,定义一个配置文件mybatis-config.xml,将他放到resources中:

<?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>
    <!--    其他-->
</configuration>

连接数据库

​ JDBC需要加载驱动,连接数据库,Mybatis 也不例外,固定写法。添加到configuration中。

<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/store?characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="admin"/>
            </dataSource>
        </environment>
    </environments>

注意改成自己的数据库,用户名和密码。

编写sql

​ 使用Mybatis编写sql语句需要映射器,他将极大方便我们 sql结果与实体类的映射。
​ 在jdbc中,sql代码主要在dao层以及接口的实现来完成的,Mybatis当然也需要dao层,但是优化了实现,它不需要实现类了。

​ 定义一个接口ProduceMapper,和实体类Produce,具体不需要在意,重要的是过程。

public interface ProduceMapper {
    public List<Produce> getAllPro();
    
    //其他
}

​ 他将sql代码也放入配置文件中了,在定一个配置文件ProduceMapper.xml,将他放到resources/mapper中,具体如下:

<?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.zsy.mapper.ProduceMapper">
    <select id="getAllPro" resultType="Produce">
        SELECT * FROM Produce
    </select>
</mapper>

​ mapper就是我们的映射器,只要实体类与数据库列名相同,就会自动映射,而不需要想jdbc的一个个代码实现。
​ 让后将我们的mpper文件引入config中:

<mappers>
        <mapper resource="mapper/ProduceMapper.xml"/>
    </mappers>

​ 这样我们完成配置文件的编写,但是没有java程序,配置文件是没有作业的,下面开始编写代码。

java代码

 public class Test {
    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();
        ProduceMapper mapper = session.getMapper(ProduceMapper.class);
        mapper.getAllPro();

    }
}

​ 首先将文件变成流式数据Resources.getResourceAsStream()方法得到InputStream。SqlSessionFactory是MyBatis中的一个重要的对象,它是用来创建SqlSession对象的,而SqlSession用来操作数据库的。
​ SqlSessionFactory对象可以通过SqlSessionFactoryBuilder来获得,而SqlSessionFactoryBuildr则可以从XML配置文件或预先定制的Configuration实例构建出SqlSessionFactory的实例。
​ getMapper获取接口模板,就可以调用方法了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值