2、mybatis的基本使用

对于初学者,如果进行mybatis的学习呢?我总结了几点,会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点;当知道了为什么的时候就开始了解如何用的问题,如何使用mybatis、有几种使用方式、各种方式的优缺点,在这个阶段也会学习mybatis涉及到的一些标签的用法;当知道了基础用法之后,就开始接触一些高级的用法,例如动态sql的使用、mybatis的缓存使用等;至此,在实战项目中使用mybatis进行开发已经没有问题了。

接下来就开始深入的研究一下mybatis这个持久层的框架,在纯技术的方面进行研究,提高自己的能力。首先,大家需要了解一下mybatis的整体技术架构和工作原理;接下来,就开始了解一下mybatis各大核心组件的具体功能及其工作原理。至此,算是对mybatis的原理简单的了解一下了,由于博主的能力有限,因此对于mybatis的框架技术研究也就到这里算结束了。

最后会了解一些其他的东西,例如:mybatis的逆向工程使用、如何开发一个mybatis插件,在这里会介绍一下mybatis的分页实现等。

至此,mybatis也算是入门了,出去就可以和别人说,你稍微了解mybatis框架,对其也多少有一点自己的理解和看法了。


目录

1、mybatis整体使用步骤

2、针对具体的数据操作上,mybatis 有两种处理方式

3、实际操作,如何从0开始使用mybatis

3、1 创建maven项目,添加mybatis依赖和mysql驱动

3、2 创建mybatis全局配置文件mybatis-config.xml,添加数据库配置信息

3、3 整体上使用mybatis的代码实现

 4、数据处理上的具体实现方式

4、1 通过直接调用API的方式使用

4、2 通过接口式编程方式使用


这一节介绍一下mybatis的基本使用,仅仅停留在使用层面。

1、mybatis整体使用步骤

        1)根据mybatis的全局配置文件构建对应的SqlSessionFactory;

        2)通过SqlSessionFactory创建对应的SqlSession;

        3)通过SqlSession进行接下来的与数据库具体的操作动作;

        4)SqlSession就是和数据库的一次对话,使用完之后需要关闭。

2、针对具体的数据操作上,mybatis 有两种处理方式

        1)创建sql映射的xml文件,之后通过SqlSession直接调用映射文件中声明的对应的sql。

        2)创建一个接口,仍然需要使用xml,xml的命名空间必须是接口的全路径名,之后可以通过SqlSession获取接口对应的代理对象,之后通过代理对象进行数据的操作。

3、实际操作,如何从0开始使用mybatis

3、1 创建maven项目,添加mybatis依赖和mysql驱动

    <dependencies>

        <!-- DataBase数据库连接 mysql包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.20</version>
        </dependency>

        <!--   引入mybatis依赖包     -->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>

    </dependencies>

3、2 创建mybatis全局配置文件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>

    <properties resource="db.properties"></properties>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/app/test/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

<!-- ----这里通过引入properties文件的方式设置,peoperties文件内容如下----------- -->

driver = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
username = root
password = *******

 此配置文件放在资源类路径下,如下:

  

3、3 整体上使用mybatis的代码实现

// 读取到配置文件信息
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");

// 根据配置文件构建 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);

// 获取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();

// 通过SqlSession进行接下来的数据处理操作
// 此处是伪代码,具体实现在第4部分详细说明

// 关闭 SqlSession
sqlSession.close();

 4、数据处理上的具体实现方式

接下来以获取数据表oa_user 中的id 为5的user信息来进行代码实现,有两种实现方式,具体如下:

4、1 通过直接调用API的方式使用

 1)创建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="com.app.test.mapper.UserMapper">
    <select id="selectUser" parameterType="Long" resultType="com.app.test.mapper.User">
        select * from oa_user where id = #{id}
    </select>
</mapper>

 2)使用SqlSession直接调用API进行数据处理

// 读取到配置文件信息
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");

// 根据配置文件构建 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);

// 获取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();

// 通过SqlSession进行接下来的数据处理操作
User user = (User) sqlSession.selectOne("com.app.test.mapper.UserMapper.selectUser", 5L);
System.out.println(user);

注:如果无法查询到xml文件时,需要在pom.xml中显式的声明一下资源路径,如下:

<build>
	<resources>
		<resource>
			<directory>src/main/java</directory>
			<filtering>false</filtering>
			<includes>
				<include>**/*.xml</include>
			</includes>
		</resource>
		<resource>
			<directory>src/main/resources</directory>
			<filtering>true</filtering>
		</resource>
	</resources>
</build>

4、2 通过接口式编程方式使用

1)创建sql映射文件,如 4、1 中操作,但需注意,sql映射文件中的命名空间namespace必须是其对应的接口的全路径名

2)创建接口

3)使用SqlSession获取接口的代理对象,继而数据处理

// 读取到配置文件信息
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");

// 根据配置文件构建 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);

// 获取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();

// 通过SqlSession进行接下来的数据处理操作
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.selectUser(5L);

// 关闭 SqlSession
sqlSession.close();

  

mybatis的基本使用先写到这里。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值