Mybatis学习---第一个查询小程序
Mybatis的官方文档:https://mybatis.org/mybatis-3/index.html
学习Mybatis的原因是:jdbc代码太复杂,而mybatis会简化jdbc,更容易上手。是一个框架。
一、需要导入依赖,在pom.xml中
1、mysql的jar包
2、Mybatis的jar包
3、Junit的jar包
4、在build中配置resource,防止我们的资源导出失败问题
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> </dependencies> <build> <!--引入配置文件--> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build>
二、编写Mybatis的配置文件--mybatis-config.xml,需要放在maven项目下的resources之下(其实就是相当于JDBC之中的加载驱动,和数据库创建连接),大家先注意一下这个配置文件中的Mappers
<?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核心配置文件--> <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/mybatistext?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT"/> <property name="username" value="root"/> <property name="password" value="ly0825"/> </dataSource> </environment> </environments> <!--每一个Mapper.xml都需要在Mybatis核心配置文件中注册--> <mappers> <mapper resource="com/ly/dao/UserMapper.xml"/> </mappers> </configuration>
三、编写一个实体类。
四、创建一个接口(我这个接口里只是写了一个查询方法,只是简单的测试一下Mybatis)。
package com.ly.dao; import com.ly.pojo.User; import java.util.List; public interface UserDao { List<User> getUserList(); }
五、接下来我们就要实现这个 接口里方法的实现类了(UserMapper.xml),这里大家需要注意的是,每一个Mapper方法都需要去配置文件mybatis-config.xml中去配置切记,就是我们上述第二步需要注意的Mapper。
<?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.ly.dao.UserDao"> <!--id里面是调用接口的方法,resultType是返回的结果类型--> <select id="getUserList" resultType="com.ly.pojo.User"> select * from user </select> </mapper>
namespace是你写的接口的全路径。
第二个id是你在接口类中所写的方法名。其实这就是那个方法的具体实现。
resultType是进行数据库操作后所返回的结果,我所执行的操作的是查询所有的信息,所以返回的结果就是我们那个实体类对象。
六、来写一个测试类,看一看到底写的这个mybatis到底能不能用
package com.ly.dao; import com.ly.pojo.User; import com.ly.utils.MybatisUtils; import org.apache.ibatis.session.SqlSession; import org.testng.annotations.Test; import java.util.List; public class UserDaoTest { @Test public void test(){ //1、第一步,获取sqlsession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); //2、getMapper UserMapper mapper = sqlSession.getMapper(UserDao.class); List<User> userList = mapper.getUserList(); for (User user : userList) { System.out.println(user.getName()); } //3、关闭sqlsession sqlSession.close(); } }