1.MyBatis的介绍:
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装。MyBatis 可以使用简单的 XML 或注解用于
配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录.
2.如何简单的使用MyBatis:
第一步:创建一个java工程,导入驱动包和MyBatis包
第二步:创建相应的实体类(bean),操作接口(dao),映射文件(mapper.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> <properties resource="db.properties"></properties> 引入db.propertise进行优化 <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/zhiyou/zt/mapper/Usersmapper.xml"/> <!--【为引入的映射文件】-->
</mappers>
</configuration>
第五步:在映射文件中关联查询
1:添加配置信息:
<?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="为接口所在地方的名称"> 关联查询 </mapper>
2:映射文件中添加关联查询:当表列名与实体类字段名不相同时,需要在返回类型使用resultMap,然后重新建立一个resultMap标签,进行列名对应,主键用id标签,column属性为表的列名,property属性为对应实体类的字段名,当表的实体类关系为多的那一方时,在实体类中添加一个对应关系为一的那一方的一个对象属性。在resulyMap标签中使用association标签,属性property为实体类的属性名,javaType属性为实体类属性对应的实体类的引用位置,当表实体类关系为一的那一方时,在实体类中添加一个对应关系为多的那一方的一个集合属性,在resultMap中使用collection标签,属性property为实体类的属性名,ofType属性为实体类属性对应的实体类的引用位置。
resultMap
<?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.zhiyou.zt.dao.Clazzdao"> <select id="getClazz" resultMap="Mymap"> select * from class,teacher,student where class.teacher_id=teacher.t_id and student.class_id=class.c_id and c_id=#{id} </select> <resultMap type="com.zhiyou.zt.bean.Clazz" id="Mymap"> <id column="c_id" property="cid"/> <result column="c_name" property="cname"/> <result column="teacher_id" property="tid"/> <association property="teacher" javaType="com.zhiyou.zt.bean.Teacher"> <id column="t_id" property="tid"/> <result column="t_name" property="tname"/> </association> <collection property="students" ofType="com.zhiyou.zt.bean.Student"> <id column="s_id" property="sid"/> <result column="s_name" property="sname"/> <result column="class_id" property="classid"/> </collection> </resultMap> </mapper>