mybatis基础知识(入门指南)

mybatis是什么?

mybatis是持久层框架(不完全的ORM框架)。
mybatis入门门槛不高,学习成本低,可以让程序员把精力放到SQL语句上,对sql语句优化非常方便,适用于需求变化较多的项目,比如互联网项目。

为什么要学习mybatis?

1.在mybatis中数据库没有连接池,每次请求都会重新创建。 mybatis使用线程池
2.用传统的方式写的dao包方法中,sql语句是写死在代码中,preparedStatement 中的设置的参数也是写的死不利于程序后期维护。mybatis可以把这些内容都在xml文件中进行配置。

mybatis框架的执行过程

  1. 配置mybatis的配置文件(SqlMapConfig.xml)
  2. 通过配置文件,加载mybatis的运行环境,创建SqlSessionFactory会话工厂
  3. 通过SqlSessionFactory会话工厂来创建sqlsession
  4. 调用sqlsession的操作数据库方法
  5. 释放资源,关闭sqlsession

mybatis的核心配置文件(SqlMapConfig.xml)

SqlMapConfig.xml中由下列标签组成:

  • properties 属性:可以加载properties配置文件的信息
  • settings 设置:可以设置mybatis的全局属性
  • typeAliases 类型命名
  • typeHandlers 类型处理器
  • objectFactory 对象工厂
  • plugins 插件
  • environments 环境
  • environment 环境变量
  • transactionManager 事务管理器
  • dataSource 数据源
  • databaseIdProvider 数据库厂商标识
  • mappers 映射器

这些标签都包在configuration标签中

下面是SqlMapConfig.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>
	<!-- 打印查询语句,配置日志文件 -->
	<settings>
        <setting name="logImpl" value="STDOUT_LOGGING" />
    </settings>
    <!-- 给全路径起别名 -->
    <typeAliases>
		<typeAlias type="cn.mybatis.po.emp" alias="emp"/>
		<typeAlias type="cn.mybatis.po.Departments" alias="Departments"/> 
	</typeAliases>
	<!-- 配置数据库连接 -->
	<environments default="sqlserver">
		<environment id="sqlserver">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver"
					value="com.mysql.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://localhost:3306/emp" />
				<property name="username" value="root" />
				<property name="password" value="123456" />
			</dataSource>
		</environment>
	</environments>
	<!-- 加载映射文件 -->
	<mappers>
		<mapper resource="sqlmap/emp.xml"/>
		<mapper resource="sqlmap/empMapper.xml"/>
		<mapper resource="sqlmap/departmentsMapper.xml"/>
	</mappers>
</configuration>   

使用工厂模式创建sqlsession并且操作数据库

		//获取SqlMapConfig.xml配置文件
		String resource = "SqlMapConfig.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		//创建会话工厂,要传入mybitis的配置信息
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		//得到sqlsession对象
		SqlSession sqlSession = sqlSessionFactory.openSession();
		//sqlsession对象可以通过Execute执行器来执行sql语句
		//第一个参数statementid,第二个参数是指占位符的参数
		emp emp = sqlSession.selectOne("cn.swjd.mapper.StudentMapper.findEmpById", id);
		//最后释放资源
		sqlSession.close();

empMepper.xml文件

<?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">
//namespace:可能会有很多的mapper.xml文件,相当于mapper.xml文件的唯一标识,为了使用代理模式,和接口的全限定类名保持一致
<mapper namespace="com.mybatis.interfaces.empMapper">
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值