Mybatis入门实例
1.如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中:
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version> </dependency>
2、每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。
2.1、XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager)。我们要把mybatis的核心配置文件放在resources中,名字为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"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatisT?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="qwer1234"/> </dataSource> </environment> </environments> //这里是要注册Mapper <mappers> <mapper resource="com/hj/dao/UserMapper.xml"/> </mappers> </configuration>
2.2、从 XML 文件中构建 SqlSessionFactory 的实例非常简单,这里由于经常用到我们把它封装在工具类中。
public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { //使用mybatis第一步:获取sqlSessionFactory对象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } // 既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。例如: public static SqlSession getSqlSeession(){ SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession; } }
3、通过创建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"> <!-- namespace==绑定一个对应的Dao/Mapper--> <mapper namespace="com.hj.dao.userDao"> <!-- select 查询语句--> <select id="getUserList" resultType="com.hj.pojo.user"> select * from mybatisT.user </select> </mapper>
4、junit 调用测试mybatis入门查询项目
package com.hj.dao; import com.hj.pojo.user; import com.hj.utils.MybatisUtils; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; /** * Created by hj_Ma on 2020/6/3. */ public class UserDaoTest { @Test public void getListUser(){ //1.获取sqlsession对象 SqlSession sqlSeession = MybatisUtils.getSqlSeession(); //方式一 getMapper 推荐 userDao mapper = sqlSeession.getMapper(userDao.class); List<user> userList = mapper.getUserList(); //方式二 // List<user> userList = sqlSeession.selectList("com.hj.dao.userDao.getUserList"); for (user user:userList){ System.out.println(user.getName() ); } //千万不要忘记释放资源 sqlSeession.close(); } }
5.最后附上一张demo结构图