1、新建mybatis 项目
在pom文件中引入下面的mybatis:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
2、从 XML 中构建 SqlSessionFactory
-
每个基于 MyBatis 的应用都是以 SqlSessionFactory 的实例为核心的。
-
SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。
-
SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。
在resource下面新建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>
<environments default="development">
<environment id="development">
<!--指定事务为JDBC-->
<transactionManager type="JDBC"/>
<!--指定数据源为POOLED-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?useSSl=true&useUnicode=true&characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
3、创建SqlSession工具类
为了方便使用SqlSession,创建获取SqlSession的工具类,即从 SqlSessionFactory 中获取 SqlSession。具体方法如下:
public class DataSourceUtil {
public static SqlSession getSqlSession() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory.openSession();
}
}
4、测试通过SqlSession查询数据库
首先,在classpath下新建UserMapper.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="com.mapper.UserMapper">
<select id="findAll" resultType="com.entity.User">
select * from sys_user
</select>
</mapper>
文件中的namespace为命名空间,其作用有两个,一是利用更长的全限定名来将不同的语句隔离开来,二是实现UserMapper接口。
其次,定义UserMapper接口,具体内容如下:
public interface UserMapper {
List<User> findAll();
}
在上面的mybatis-config.xml中定义了mappers 元素,mappers 元素包含了一组映射器(mapper),这些映射器的 XML 映射文件包含了 SQL 代码和映射定义信息。
测试以上代码:
public static void main(String[] args) {
try {
SqlSession sqlSession = DataSourceUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> all = mapper.findAll();
for (User user : all) {
System.out.println(user.getName());
}
} catch (IOException e) {
e.printStackTrace();
}
}