Mybatis学习(一)Mybatis的基本配置

本文主要介绍了Mybatis的基础配置,包括导包、配置xml文件config.xml以创建链接,以及通过XML文件来创建SqlSessionFactory和SqlSession,执行持久层操作。特别提到了在connect8.0以上版本需要配置serverTimezone参数。

一.基础知识

	早期的名字叫 iBatis ,2010年后更名为 Mybatis 是一个半自动的ORM(持久层)框架,需要指定SQL语句,
相对于 Hibernate 全自动来说,Hibernate 只需要指定类与表的关系,无需指定SQL语句。

需求背景:
		1.原生JDBC创建连接的时候,每次用完都会销毁(性能问题,不销毁有资源占用问题)
		2.DAO层好多流程都一样(绕不过增删改查),造成代码冗余

1.基础操作
①导包

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.4.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.21</version>
</dependency>

②配置xml文件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>
 <environments default="development">
   <environment id="development">
   <transactionManager type="JDBC"/>
   <dataSource type="POOLED">
     <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
     <property name="url" value="jdbc:mysql://localhost:3306/study?serverTimezone=Hongkong"/>
     <property name="username" value="root"/>
     <property name="password" value="root"/>
   </dataSource>
  </environment>
</environments>
<mappers>
   <mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
environment可以配置多个,通过属性id 在environments 处切换不同的数据库信息
transactionManager 指定事务的管理方式
DataSource的类型指定的是连接池的方式来创建连接,底层会自动的创建一个连接池来管理连接数量。
mappers下指定的是SQL语句文件所在的路径。(  如果用注解的方式,则不需要这项。)

这里是通过xml文件来创建链接,还有另一种通过java类来创建链接,详细参照Mybatis文档
(connect8.0往后的版本需要配置serverTimezone参数)
③通过xml创建链接。
需要读取xml配置文件的流。
一个SqlSessionFactoryBuilder类根据读取的XML信息来构建SqlSessionFactory
再通过SqlSessionFactory.openSession()方法来获取SqlSession
(openSession(true/false)默认是false,指定是否自动提交事务;)
最后调用SqlSession的方法并制定SQL语句来执行持久层的操作

String resource = "config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory =
     new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = sqlSession.selectOne("com.zwei.selectUser", 1);

④创建一个存放SQL语句的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">
<mapper namespace="com.zwei">
    <select id="selectUser" resultType="com.zwei.domain.User">
        select * from user where user_id = #{id}
    </select>
</mapper>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值