本文转自:http://www.yihaomen.com/article/java/302.htm
1. 配置文件参数说明:
mybatis 配置文件:Configuration.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> <typeAliases> <typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/> </typeAliases> <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://127.0.0.1:3306/mybatis" /> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/yihaomen/mybatis/model/User.xml"/> </mappers> </configuration>
typeAliases :
<!-- typeAliases 表示model的别名,方便映射文件的配置 --> <typeAliases> <typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/> </typeAliases>
mappers :
<!-- 关联具体的映射文件 --> <mappers> <mapper resource="com/yihaomen/mybatis/model/User.xml"/> </mappers>
mapper :
<!-- id 与对应接口中的方法名保持一致 ;parameterType 为参数类型 --> <!-- 具体的SQL语句 --> <mapper namespace="com.yihaomen.mybatis.models.UserDao"> <select id="selectUserByID" parameterType="int" resultType="User"> select * from `user` where id = #{id} </select> </mapper>
关于命名空间namespace:
1). 命名空间一般为:package.interName ,接口中的方法分别与该映射文件中的方法名对应
2). 命名空间也可以自定义,但访问方法为:session.method(namespace + 对应id , param);
关于返回结果类型resultType/resultMap:
1). 返回结果类型可以为:基本类型,字符串,对象(一般使用typeAliases中的别名表示)
2). 返回类型为集合的时候,我们需要使用resultMap。我们可以自定义返回类型,例如:
<!-- 为了返回list 类型而定义的returnMap --> <resultMap type="User" id="resultListUser"> <id column="id" property="id" /> <result column="userName" property="userName" /> <result column="userAge" property="userAge" /> <result column="userAddress" property="userAddress" /> </resultMap> <!-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 --> <select id="selectUsers" parameterType="string" resultMap="resultListUser"> select * from user where userName like #{userName} </select>
2. mybatis 访问方式:
1). session 直接访问:
SqlSession session = sqlSessionFactory.openSession();
// com.yihaomen.mybatis.models.UserMapper 为namespace
User user = (User) session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID", 1);
2). 接口访问:
SqlSession session = sqlSessionFactory.openSession();
// 这里需要将namespace修改为 package.IUserOperation
IUserOperation userOperation=session.getMapper(IUserOperation.class);
User user = userOperation.selectUserByID(1);