mybatis 是一个持久层的框架, 是对 JDBC 操作数据库的封装, 使开发者只需要关注业务 本身, 不需要花费精力去处理加载驱动、 创建数据库连接对象、 创建 statement 语句对象、 参数设置、 结果集处理等一系列繁杂的过程代码。
mybatis 通过 xml 或注解进行配置, 将 java 对象与 sql 语句中的参数自动映射生成最终 执行的 sql 语句, 并将 sql 语句执行结果自动映射成 java 对象, 返回给业务层(service) 应用。 入门程序流程分析 1.创建项目,导入相关依赖(mysql驱动,mybatis) 2.编写SqlMapConfig.xml(***) 3.创建User实体 4.编写UserDao接口和UserDao接口映射文件(***) 5.测试
注意点:要和映射的接口名称一致。而且要在相同目录下(看编译后的target目录)
<?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接口的名称,通常Dao接口的全名 --> <mapper namespace="com.huihui.dao.UserDao"> <!-- 在这里面写每个方法对应的sql语句 --> <!-- 映射findAll方法 --> <!-- select: 代表查询操作 id: 映射的方法名称 resultType: 结果的类型(输出参数) 注意:如果结果类型是集合类型,只需要定义集合里面的类型即可 --> <select id="findAll" resultType="com.huihui.pojo.User"> SELECT * FROM USER </select> </mapper>测试类:
import com.huihui.dao.UserDao; import com.huihui.pojo.User; 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.InputStream; import java.util.List; /** * mybatis程序 */ public class Demo1 { public static void main(String[] args) throws IOException { //加载SqlMapConfig.xml,创建字节流 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); //创建SqlSessionFactoryBuilder SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //创建SqlSessionFactory SqlSessionFactory factory = builder.build(in); //1.创建SqlSession对象,生成Dao接口的代理对象 SqlSession sqlSession = factory.openSession(); //2.生成Dao接口的代理 UserDao userDao = sqlSession.getMapper(UserDao.class); System.out.println("代理对象:"+userDao.getClass()); //3.执行具体业务方法 List<User> list = userDao.findAll(); //4.遍历数据 for(User u:list){ System.out.println(u); } //释放资源 sqlSession.close(); in.close(); } }