1、![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e43ed7b08c9542cc844d0a2c0cef95cf.png#pic_center)
2、mybatis是什么
mybatis为DAO层提供了解决方案的这样一个框架
既然他是为DAO层提供了解决方案 那么说明他的主要功能和JDBC以及dbutils是一样的
都是实现数据库的增删改查
3、mybatis能干什么
数据库的增删改查的实现
4、有了JDBC为什么还要学习mybatis
SSH:struts/springMVC Spring Hibernate
SSM:struts/springMVC Spring mybatis
SSS:struts/springMVC Spring SpringData JPA
所有的DAO层的解决方案中 我们的Hibernate的代码是最简单的 SQL语句都不用写 因为会帮你自动生成 但是他的效率是最低的 因为 我们在查询数据库的时候写的是 HQL语句 他需要将 HQL语句给你翻译成 SQL语句 所以效率低
在所有的DAO层的解决方案中 JDBC的效率是最高的(写法是最原生态的) 效率是最高的 但是代码的复杂程度也是最高的
而我们的mybatis就不一样的 他的效率是位于 Hibernate和JDBC之间 他的代码的复杂程度也是位于两者之间 这就
是我们学习他的原因 到今天的时候 我们真正的开发的时候 用它的时候还是少 因为 mybatis-plus的出现 开发的
问题全部都给你解决了...
离线乐观锁
数据的自动填充
逻辑删除
...
之所以我们要学习 mybatis是因为 mybatisplus中并不是 所有的问题 都给你解决了 。。。。复杂的问题还是需要自己手动的去完成 这个时候 就需要使用 mybatis了...
5、mybatis下的第一个helloworld程序
5.1、导包
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
5.2、编写mybatis.xml文件
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql:///cd_2307"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</dataSource>
</environment>
<environment id="Oracle">
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"></mapper>
</mappers>
</configuration>
5.3、编写实体
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String username;
private String password;
}
5.4、编写UserMapper.xml
<mapper namespace="UserMapper">
<insert id="insert">
insert into t_user(username,password) values('helloworld','123')
</insert>
</mapper>
5.5、测试
@Test
public void testHelloworld() throws IOException {
Reader resourceAsReader = Resources.getResourceAsReader("mybatis.xml");
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsReader);
SqlSession sqlSession = build.openSession();
sqlSession.insert("UserMapper.insert");
sqlSession.commit();
sqlSession.close();
}