Mybatis学习总结
Mybatis的简单介绍
- Mybatis是一个ORM框架
- Mybatis可以使用XML或注解的方式进行配置和映射,它是把实体类和SQL语句之间建立了映射关系,对比Hibernate是在女实体类和数据库之间建立了映射关系。
Mybatis的简单使用
创建一个Java project
导入Mybatis需要的jar包
在工程中新建Source Folder命名为resources来专门存放MyBatis的主配置文件mybatis.xml
创建实体类和映射器接口
-
创建MyBatis的SQL映射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"> <!-- namespace:映射器接口的全名 --> <mapper namespace="com.mybatis.mapper.UserMapper"> <!-- 结果映射 --> <resultMap type="com.mybatis.entity.User" id="userMap"> <id column="id" property="id"></id> <result column="user_name" property="userName"/> <result column="password" property="password"/> </resultMap> <!-- 映射select语句 --> <select id="findAllUsers" resultMap="userMap"> select * from user </select> </mapper>
-
将SQL映射文件与主配置文件进行关联.在Mybatis.xml住配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <!-- 事务和数据源 --> </environments> <mappers> <!-- 使用相对于类路径的资源引用 --> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <!-- 使用映射器接口的完全限定类名 --> <mapper class="org.mybatis.builder.AuthorMapper"/> <!-- 将包内的映射器接口全部注册为映射器 --> <package name="org.mybatis.builder"/> </mappers> </configuration>
-
编写代码进行测试
SqlSession session = MyBatisUtil.openSqlSession(); UserMapper userMapper = session.getMapper(UserMapper.class); List<User> users = userMapper.selectAllUsers(); for(User u : users) { System.out.println(u); } session.close();
Mybatis中使用Mapper接口的具体要求
- Mapper接口的全限定名为映射文件的namespace的值
- Mapper接口的方法名称和映射文件中定义的每个sql的id相同
- Mapper接口的方法参数和映射文件中定义每个sql的parameterType类型相同
- Mapper接口的方法返回的单个对象类型和映射文件中定义的每个sql的resultType类型相同