飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

学习MyBatis必知必会(2)~MyBatis基本介绍和MyBatis基本使用

时间:2022-02-03  作者:shan333  

一、MyBatis框架基本介绍:

1、认识 MyBatis:

  • MyBatis 是支持普通 SQL 查询,存储过程和高级映射的持久层框架,严格上说应该是一个 SQL 映射框架

  • 前身是 iBatis,也就是淘宝使用的持久层框架

  • 几乎所有的 JDBC 代码和参数的手工设置以及结果集的处理都可以交给 MyBatis 完成, 而这只需要简单的使用 XML或注解配置 就可以完成。

  • 和 Hibernate 相比更简单、更底层、性能更优异,因此更深入人心,更受企业的青睐。


2、下载地址和文档:

  • GitHub 地址为 https://域名/mybatis

  • 中文文档:http://域名/mybatis-3/zh/域名

​                        http://域名/spring/zh/域名



二、MyBatis 基本使用

1、开发步骤一:拷贝jar包

■ 项目拷贝jar记得先建立一个lib目录

  • mysql连接驱动jar包【MyBatis底层是jdbc】
  • 域名

2、开发步骤二:编写配置文件【主配置文件和映射文件】

2-1、了解一下MyBatis的配置文件(两种---主配置文件和映射文件):

(1)MyBatis全局配置文件/主配置文件:
  • 起名:不固定,但是需要见名知意,例如:mybatis-域名
  • 路径:classpath 的根路径
  • 参考文档:mybatis中文官网的xml配置章节
✿ MyBatis全局配置文件内容:

① 全局配置信息

② 属性配置信息

③ 插件配置信息

配置环境信息事务+连接池

关联映射文件


(2) MyBatis 映射文件/Mapper文件:
  • 起名:不固定,但是需要见名知意,例如:域名,是哪一个对象的映射文件,例如域名
  • 路径:Mapper 文件应该放到 Mapper接口的路径咱暂时放到domain位置
  • 参考文档:mybatis中文官网的xml映射文件章节
✿ MyBatis 映射文件内容:

编写增删改查sql,把sql存放到insert| update| delete| select 元素中去

结果集映射:解决表中的列和对象属性不匹配问题

③ 缓存配置


2-2、配置文件的约束文件【约束文件在入门章节】:

//mybatis主配置文件 [例如mybatis-域名] 的约束文件---mybatis-3-域名 【连网状态它会自动下载】
<!DOCTYPE configuration
  PUBLIC "-//域名//DTD Config 3.0//EN"
  "http://域名/dtd/mybatis-3-域名">

 //mybatis映射文件 [例如域名] 的约束文件---mybatis-域名 【连网状态它会自动下载】
<!DOCTYPE mapper
  PUBLIC "-//域名//DTD Mapper 3.0//EN"
  "http://域名/dtd/mybatis-3-域名">

■ 关联本地文件,以防止网络不好下载失败

image


2-3、编写主配置文件和映射文件内容

✿ 全局/主配置文件[mybatis-域名文件]:
  • 配置环境信息事务+连接池
  • 关联映射文件
  <configuration>
  	<environments default="dev">
	  <!-- 开发环境:在以后的事务管理器和链接池都是交给spring框架来管理的 -->
	  	<!-- 1、配置数据库的环境 -->
	  	<environment id="dev">
	  		<!-- ① 事务管理器 -->
	  		<transactionManager type="JDBC"/>
	  		<!-- ② 连接池【连接数据库4要素】 -->
	  		<dataSource type="POOLED">
	  			<property name="driver" value="域名.域名er"/>
	  			<property name="url" value="jdbc:mysql://localhost:3306/mybatisdemo"/>
	  			<property name="username" value="root"/>
	  			<property name="password" value="admin"/>
	  		</dataSource>
	  	</environment>
  </environments>
  	<!-- 2、关联映射文件  -->
	<mappers>
	<!-- 全局的配置文件是在项目输出路径bin目录下 -->
	<!-- classpath路径(默认项目输出路径是bin【即编译成class字节码的文件夹bin,未编译前是在源码src】) -->
		<mapper resource="com/shan/hello/域名"/>
	</mappers>
  </configuration>



✿ 映射文件[域名文件]:
  • 编写增删改查的sql
  <!-- namespace 命名空间:是对应的Mapper接口的全限定名称,咱暂时写类的全限定名称
  		不同的mappe文件的namespace是不一样的。
  		mapper的namespace结合id属性【域名】唯一地表示了应用中某一条sql语句。
   -->
  <mapper namespace="域名域名Mapper">
  	  <!-- select标签:用来编写查询sql语句
  	  	id: 唯一的标识符,标识被引用的这条sql语句
		parameterType:表示执行该sql语句需要的参数类型,建议不屑,MyBatis可以自行推断出来
		resultType:把结果集中的每一行数据封装成什么类型的对象
  	   -->
	  <select id="get" parameterType="域名" resultType="域名域名">
	    select * from t_user where id = #{id}
	  </select>
</mapper>

3、开发步骤三:编写测试代码,测试myBatis执行增删改查操作:

  • 以查询为例:

    加载配置文件

    创建会话工厂对象SqlSessionFactory【好比连接池DataSource】

    通过会话工厂创建会话对象SqlSession【好比连接对象Connection】

    执行crud操作

    关闭资源

	public void testGet() throws IOException {
		//1、从classpath路径加载mybatis全局配置文件mybatis-域名
		InputStream in = 域名esourceAsStream("mybatis-域名");
		//2、创建SqlSessoinFactory会话工厂对象,好比连接池DataSource
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		//3、创建SqlSession会话对象,好比连接对象Connection
		SqlSession session = 域名Session();
		//4、进行数据库操作(CRUD)
		User user = 域名ctOne("域名域名", 300L);
    	域名tln(user);
		//5、关闭资源
		域名e();
	}

❀ 总结:开发流程-拷贝jar包,编写配置文件,然后进行测试

标签:编程
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。