mybatis测试
环境搭建
1.创建maven工程导入坐标
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
2.创建实体类(与数据库对应)和Dao接口
Dao接口代码
public interface IUserDao {
//查询所有操作
List<User> findAll();
//注解
//@Select( "select * from user")
//List<User> findAll();
}
3.创建Mybatis主配置文件
<!-- mybatis的主配置文件 -->
<configuration>
<!-- 配置环境 -->
<environments default="development">
<!-- 配置mysql 的环境 -->
<environment id="development">
<!-- 配置事务的类型 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源 (连接池) -->
<dataSource type="POOLED">
<!-- 配置数据库的四个基本信息 -->
<!-- 链接数据库的信息 ,有了它就能创建Connection对象-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3308/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 指定映射配置文件的位置,映射配置文件指的是每个dao 独立的配置文件 -->
<!-- 有了它就有了映射配置信息-->
<mappers>
<mapper resource="com/ittest/dao/IUserDao.xml"/>
</mappers>
</configuration>
4.创建映射配置文件(即与上文中Dao接口对应的配置文件)
<!--接口的权限定类名-->
<mapper namespace="com.ittest.dao.IUserDao">
<!-- 配置查询所有-->
<!-- 有了它就有了执行的sql语句 就可以获取PrepareSatement-->
<!-- 此配置中还有封装实体类的权限定类名-->
<select id="findAll" resultType="com.ittest.domain.User">
select * from user
</select>
</mapper>
5.写个测试类测试一下
public class MybatisTest {
public static void main(String[] args)throws Exception{
// 1.读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
// 绝对路径:D:/xxx/xxx.xml 不用
// 相对路径:src/java/main/xxx.xml 不用
// 2.创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory =builder.build(in);
// 3.使用工厂生产SqlSession对象
SqlSession session = factory.openSession();
// 4.使用SqlSession创建dao接口的代理对象
IUserDao userDao =session.getMapper(IUserDao.class);
// 5.使用代理对象执行方法
List<User> users =userDao.findAll();
for (User user:users){
System.out.println(user);
}
// 6.释放资源
in.close();
}
}
说明:
mybatis中把持久层的操作接口名称和映射文件也叫做:Mapper
mybatis的映射配置文件(也就是mapper文件)位置必须和对应的 Dao接口的包结构相同
映射配置文件的mapper标签的namespace属性必须是Dao接口的全限定类名
映射配置文件的操作配置(select insert update 等)id属性的取值必须是dao接口的方法名
(在开发中不用再写Dao接口的实现类,由mybatis实现)