一、基于注解的开发环境搭建以及实现查询所有
1.定义主配置文件
mybatis的注解开发是对于映射配置文件这个层面来说的,所以仍然需要定义主配置文件,和前文基于xml配置方法和细节,和注意事项完全一致
SqlMapConfig.xml
<configuration>
<properties resource="jdbcConfig.properties">
</properties>
<!--使用typeAliases配置别名,它只能配置domain(实体类)中类的别名 -->
<typeAliases>
<!--typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名就再区分大小写
用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写-->
<package name="com.xpt.domain"/>
</typeAliases>
<!--配置环境 default 和 id保持一致-->
<environments default="mysql">
<environment id="mysql">
<!--配置事务类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源信息-->
<dataSource type="UNPOOLED">
<!--连接数据库的四个基本信息-->
<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>
<!-- package标签是用于指定dao接口所在的包,当指定了之后就不需要在写mapper以及resource或者class了 -->
<!--指定带有注解的dao接口所在位置-->
<package name="com.xpt.dao"/>
</mappers>
</configuration>
2.准备实体类和Dao接口
和前文使用的数据表,实体类保持一致
3.Dao接口定义findAll方法,以及添加注解
// @Select(value = "select * from user")
//只有一个参数时,value可以省略
@Select("select * from user")
List<User> findAll();
4.测试类定义方法测试
- 代码
public static void main(String[] args) throws Exception {
//1.获取字节输入流
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.根据字节输入流构建 SqlSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//3.利用factory生产一个SqlSession
SqlSession sqlSession = factory.openSession();
//4.利用sqlSession获取代理对象
IUserDao userDao = sqlSession.getMapper(IUserDao.class);
//5.利用代理对象 执行方法
List<User> users = userDao.findAll();
for (User user : users