mybatis就是一个DAO层的解决方案,再简单点说mybatis就是一个用来进行数据库访问的一个框架
2、为什么要使用mybatis-
JDBC的效率应该是最高的,但是代码的复杂度也是最高的
-
Hibernate是最低的,但是Hibernate中的SQL语句是不需要程序员写的,是可以自动生成的,但是这个过程在原本的SQL执行的基础上多了一个步骤,就是将你面向对象的写法要翻译成SQL语句,所以他的效率是最低的,而Hibernate的代码的复杂度是最低的
-
dbutils/jdbcTemplate:这两个框架都不算 最多只是算一个帮助类 而且很多东西的封装没有那么全面
-
mybatis效率是位于Jdbc和Hibernate之间的,而且代码的复杂度也是位于JDBC和Hibernate之间,而且Hibernate在使用的时候并没有像想像的这么灵活,这也就是为什么大多数企业都愿意使用Mybatis来作为 DAO层的解决方案的原因
我们经常所说的 ibatis和mybatis是一个什么关系呢?
3、mybatis的第一个helloworld程序 3.1、导包ibatis是以前的名字,mybatis是现在的名字
3.2、编写mybatis.xml文件junit junit 4.11 test org.mybatis mybatis 3.4.6 mysql mysql-connector-java 5.1.6 log4j log4j 1.2.17 org.slf4j slf4j-api 1.5.10 org.slf4j slf4j-log4j12 1.6.1 org.junit.jupiter junit-jupiter-api RELEASE compile org.junit.jupiter junit-jupiter-api RELEASE compile
3.3、编写UserMapper.xml文件
3.4、编写测试文件insert into t_user(userName,password) values("cdlkx","123");
package com.qf.ibatis.pojo;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.Reader;
public class Test001 {
public static void main(String[] args) throws IOException {
//把mybatis的配置文件给加载进来
Reader resourceAsReader = Resources.getResourceAsReader("mybatis.xml");
//获取这个session的工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
//打开一个会话
SqlSession sqlSession = sqlSessionFactory.openSession();
int insert = sqlSession.insert("UserMapper.add");
//进行事务的提交
sqlSession.commit();
sqlSession.close();
}
}
3.5、编写pojo
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String userName;
private String password;
}
4、mybatis的基本的增删改查
public class Test001 {
@Test
public void testAdd() throws IOException {
Reader resourceAsReader = Resources.getResourceAsReader("mybatis.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
SqlSession sqlSession = sqlSessionFactory.openSession();
int insert = sqlSession.insert("UserMapper.add");
sqlSession.commit();
sqlSession.close();
}
@Test
public void testDelete() throws IOException {
Reader resourceAsReader = Resources.getResourceAsReader("mybatis.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
SqlSession sqlSession = sqlSessionFactory.openSession();
int insert = sqlSession.insert("UserMapper.delete");
sqlSession.commit();
sqlSession.close();
}
@Test
public void testUpdate() throws IOException {
Reader resourceAsReader = Resources.getResourceAsReader("mybatis.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
SqlSession sqlSession = sqlSessionFactory.openSession();
int insert = sqlSession.insert("UserMapper.update");
sqlSession.commit();
sqlSession.close();
}
@Test
public void testList() throws IOException {
Reader resourceAsReader = Resources.getResourceAsReader("mybatis.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
SqlSession sqlSession = sqlSessionFactory.openSession();
Object o = sqlSession.selectOne("UserMapper.getById");
System.out.println("查询到的数据是:"+o);
sqlSession.commit();
sqlSession.close();
}
}



