mybatis基于xml方式配置
- 创建maven工程,并导入依赖
- 创建实体类和dao接口
- 创建mybatis的主配置文件
- 创建映射配置文件
- 创建maven工程,并导入依赖
- 创建实体类和dao接口
- 创建mybatis的主配置文件
- 创建映射配置文件
(需完善,详情往下看)
注意事项:
一:创建IUserDao.xml和IUserDao.java就相当于IUserMapper.xml和IUserMapper.java
二:在idea创建目录时,目录和包是不一样的,创建包的时候,com.etc.dao是三级结构,但是在创建目录的时候,直接写com.etc.dao是一级结构
三:mybatis映射文件位置必须和dao接口的包结构相同,因此第二点非常重要!!!
四:映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
(限定类名,就是类名全称,带包路径的用点隔开,例如: java.lang.String。
非限定类名,也叫短名,就是我们平时说的类名,不带包的,例如:String。)
五:映射配置文件的操作配置,id属性的取值必须是dao接口的方法名
当我们遵从了三、四、五点之后,我们就不用在开发中再去写dao的实现类
接着我们来写一个测试类:
1、读取配置文件
一、使用类加载器,它只能读取类路径的配置文件
二、使用ServletContext对象的getRealPath();
2、创建SqlSessionFactory工厂
创建工厂mybatis使用了构建者模式:把对象的创建细节隐藏,使使用者直接调用方法即可拿到对象
3、使用工厂生产一个SqlSession对象
生产SqlSession使用了工厂模式:解耦(降低类之间的依赖关系)
4、使用SqlSession创建Dao接口的代理对象
创建Dao接口类使用了代理模式:不修改源码的基础上对已有方法进行增强
5、使用代理对象执行方法
6、释放资源
你会发现报错了!!!!
Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement 'com.etc.dao.IUserDao.findAll'. It's likely that neither a Result Type nor a Result Map was specified