1、
2、mybatis是什么
mybatis为DAO层提供了解决方案的这样一个框架既然他是为DAO层提供了解决方案 那么说明他的主要功能和JDBC以及dbutils是一样的都是实现数据库的增删改查
3、mybatis能干什么
数据库的增删改查的实现
4、有了JDBC为什么还要学习mybatis
SSH:struts/springMVC Spring HibernateSSM:struts/springMVC Spring mybatisSSS: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 ( ) ; }