基于XML的MyBatis的环境搭建(IDEA)
学习了黑马的mybatis第一天总结
主要步骤可概括为
创建一个Maven
这里选择maven,然后直接点击next
填入自己的工程名,点击Finish,一个maven工程就创建好了。
导入依赖
在pom.xml中,导入需要的依赖。
编写你一个你需要的实体类和一个持久层接口
以User为了(为了实现对数据库user表的查询)
这里的User Class就是常规的实体类,属性+构造器+get&set方法+toString方法。(User实现Serializable接口)
创建完UserDao接口之后,写一个需要实现的方法名。如查询所有数据:
编写一个SqlMapConfig.xml
在对应的目录resources下创建SqlMapConfig.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>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="jdbc"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatistest?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="12345"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/lyn/dao/UserDao.xml"/>
</mappers>
</configuration>
mapper中,resource表示对应的映射配置文件(即编写映射配置文件中的xml文件)。mappers用于告知mybatis映射配置的位置。
编写映射配置文件
同样的,在resources目录下,创建一个同UserDao同级的UserDao.xml文件,即他们的目录名是一样的,代码如下:
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lyn.dao.UserDao">
<select id="findAll" resultType="com.lyn.pojo.User">
select * from user
</select>
</mapper>
编写测试类测试
至此已经完成了mybatis的配置,下面就是编写一个测试类去测试mybatis是否配置成功。
package com.lyn.test;
import com.lyn.dao.UserDao;
import com.lyn.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* @author lyn
* @create 2020-11-09-13:59
*/
public class MyBatisTest {
public static void main(String[] args) throws IOException {
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory sessionFactory = builder.build(is);
SqlSession session = sessionFactory.openSession();
UserDao mapper = session.getMapper(UserDao.class);
List<User> list = mapper.findAll();
list.forEach(System.out::println);
}
}
运行结果如下: