Mabatis
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
MyBatis的持久化解决方案是将用户从原始的JDBC访问中解放出来,用户只需要定义需要操作的SQL语句,无须关注底层的JDBC操作,就可以以面向对象的方式来进行持久化层操作.底层数据库连接的获取,数据访问的实现,事务控制等都无须用户关心。
mybatis的使用
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<configuration>
<!-- environment 元素体中包含了事务管理和连接池的配置。-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis? &characterEncoding=utf8&useSSL=true&useUnicode=true"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
</configuration>
- 编写mybatis工具类
public class MybatisUtils {
static private SqlSessionFactory build;
static {
try {
//获取sqlSessionFactory对象
String resource = "src/main/resources/mybatis-config.xml";
InputStream io = Resources.getResourceAsStream(resource);
build = new SqlSessionFactoryBuilder().build(io);
} catch (IOException e) {
e.printStackTrace();
}
}
//接下来可以通过sqlSessionFactory对象获取sqlSession
public static SqlSession getSqlSession(){
return build.openSession();
}
}
介绍SqlSessionFactory:
SqlSessionFactory是MyBatis的关键对象。SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得。
SqlSessionFactoryBuilder可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实,顾名思义SqlSessionFactory就是创建SqlSession的工厂。
介绍SqlSession:
SqlSession是MyBatis的关键对象,SqlSession中包含了执行SQL的所有方法,它的底层封装了JDBC连接,可以用SqlSession实例来直接执行被映射的SQL语句.
编写代码测试
public interface UserDao {
List<User> getUserList();
}
<?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">
<!--namespace绑定一个Dao/Mapper接口产生联系-->
<mapper namespace="com.zhang.DAO.UserDao">
<!-- id对于绑定的方法 返回类型要写全名-->
<select id="getUserList" resultType="com.zhang.pojo.User">
select * from user where id = 1;
</select>
</mapper