mybatis映射文件与接口绑定
映射文件 ScoreMapper.xml
完整路径: mybatis.ScoreMapper.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="mybatis_orm.ScoreMapper"> <select resultType="mybatis_orm.Score" id = "selectAllScore"> select * from score </select> </xml>
配置文件 mybatis-config.xml
完整路径: mybatis.mybatis-config.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="mybatis/database.properties"/> <settings> <setting name="logImpl" value="LOG4J" /> </settings> <!-- 配置mybatis运行环境 --> <environments default="development"> <environment id="development"> <!-- 使用JDBC的事务管理 --> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <!-- 连接数据库的URL --> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <!-- 将mapper文件加入到配置文件中 --> <mappers> <mapper resource="mybatis/ScoreMapper.xml"/> </mappers> </configuration>
要绑定的接口文件 ScoreMapper2.java
完整路径: mybatis_orm.ScoreMapper2.java
package mybatis_orm; import java.util.List;public interface ScoreMapper2 { public List<Score> selectAllScore(); }
测试代码
public class Application { public static void main(String[] args) throws IOException { InputStream config = Resources.getResourceAsStream("mybatis/mybatis-config.xml"); SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config); SqlSession session = ssf.openSession(); ScoreMapper2 scoreMapper2 = session.getMapper(ScoreMapper2.class);
List<Score> resultList = scoreMapper2.selectAllScore();
}
以上就完成了映射文件和xml文件的映射,只要注意一下几点
1 在配置文件中,绑定的接口不需要加入mappers, 不然会报已处在的错误: mybatis_orm.ScoreMapper is already known to the MapperRegistry
就是说不需要写 <package name="所在包名"/> ,package是用来扫描注解接口所在的包。mybatis是不允许重复扫描已存在的文件。
2 绑定接口不一定就要和映射文件xml同层目录,映射文件的namespace写为绑定接口的完整路径,此完整路径为bin下的包路径. 这样就完成了映射文件和接口的绑定
3 select.update等标签的id应与接口的方法名相同,参数对应(mybatis传递参数的方式三种,基本数据类型,javabean,map),返回类型对应
如果对于单个参数,或者多个相同类型参数会采用基本数据类型。因为基本数据类型只能定义一个,不能定义多个。所以一般不采用。
map由于可读性不高,所以也不采用。
使用POJO的方式是最常用的。