MyBatis是一个开源的数据持久层框架。它内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis作为持久层框架,其主要思想是将程序中的大量SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置。这样做能将SQL与程序代码分离,可以在不修改程序代码的情况下,直接在配置文件中修改SQL。 简单点说就是,Mybatis的SqlSession中集成了所有数据库增删改查的功能,只要在配置文件中编写了相应的增删改查语句,那么不需要借助任何实现对象,SqlSession就能依照配置文件,帮我们完成数据库的操作。 Mybatis的核心就是SqlSession。
创建Dao:UserMapper接口
public interface UserMapper { public List<User> getUserList(); } 创建与接口同名的mapper.xml配置文件 <?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" > <mapper namespace="com.leon.dao.UserMapper"> <select id="getUserList" resultType="com.leon.pojo.User"> SELECT * FROM USER </select> </mapper> 将mapper.xml添加到核心配置文件mybatis-config.xml中。 <mappers> <mapper resource="UserMapper.xml"></mapper> </mappers> 编写测试代码。 public class MyTest { @Test public void mytest() throws IOException { List<User> userList= new ArrayList<User>(); //创建SqlSession String resource="mybatis-config.xml"; InputStream is=Resources.getResourceAsStream(resource); SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is); SqlSession sqlSession=factory.openSession(); //通过SqlSession执行Mapper.xml文件中的SQL语句。并得到返回结果 //前提是,接口类UserMapper.class必须与映射文件UserMapper.xml同名。 userList=sqlSession.getMapper(com.leon.dao.UserMapper.class).getUserList(); for(User user:userList){ System.out.println(user.getUserName()); } } }