首先我们了解MyBatis的作用,其主要的作用是进行对数据进行连接,并且简化掉JDBC的连接操作,从而使开发人员可以专注于在Sql语句的编写,而不是需要分散注意力于在与数据库的连接,和使用PreparedStatement上。
修改pom.xml文件 在新建工程后,我们进入工程,然后删除所持有的src文件夹。然后我们需要开始进行对pom.xml配置文件的新增。这样我们以后在此工程中新建模块后我们都会得到当前pom.xml的文件,而不需要在此在新模块中再次修改在模块中的pom.xml的文件配置。
在修改pom.xml文件之前,我们需要首先明白我们在学习MyBatis之前所需要的的.JAR包。我们通过maven来进行对包的导入。
- mybatis
- mysql
- junit
并且由于Maven自身,我们需要进行对文件的过滤,及在依赖项下面补充
创建mybatis-config.xml资源文件com.YUME MyBatisStudy pom 1.0-SNAPSHOT MyBatisStudy-01 16 16 mysql mysql-connector-java 8.0.25 org.mybatis mybatis 3.5.6 junit junit 4.13.1 test src/main/java ***.properties ****/*.xml false
此资源文件的文档可以在MyBatis的官方项目文档中找到模板,我们需要进行修改。注意在url的value值的设定中,我们需要进行对数据库的时区的设置,并且在此文件的url值中,我们所使用的并不是&来进行连接各个参数的设置。
创建MyBatisUtils包
使用了工厂模式,我们需要设置我们在上一步所设置的xml文件路径,使用数据流进行导入,然后创建一个新的工厂。
sqlSessionFactory.openSession();来进行对SqlSession对象的创建。
package com.YUME.utils;
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;
public class MyBatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String res = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(res);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
创建pojo类
创建一个JavaBean类,来对应我们的数据库。
package com.YUME.pojo;
public class Bird {
private String name;
private int age;
public Bird(){}
public Bird(String name,int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
创建Mapper接口
我们在接口中创建我们所需要使用的方法。
package com.YUME.dao;
import com.YUME.pojo.Bird;
import java.util.List;
public interface BirdMapper {
List getBird();
}
创建Mapper.xml文件
我们在xml文件中进行对在接口中声明的方法进行实现, namespace为我们所实现的接口的路径,id即是所实现的方法名,resultType即是返回的类型。
进行测试select * from bird
我们首先需要进行对SqlSession类的获取,由于我们之前已经书写过获取SqlSession对象的Util包,我们直接调用即可获取。
我们一共有两种的获取Mapper接口的方法,一种是通过SqlSession对象来进行获取Mapper类,另一种即是通过selectList来获取,但是这种方法是在以前使用的,并不推荐使用。
在获取这个Mapper接口后,我们及可以进行对其进行使用方法。
package com.YUME.dao;
import com.YUME.pojo.Bird;
import com.YUME.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.*;
import java.util.List;
public class TestBirdMapper {
@Test
public void testGetBird(){
SqlSession sqlSession = null;
try {
//获得SqlSession对象
sqlSession = MyBatisUtils.getSqlSession();
//获得Mapper
BirdMapper birdMapper = sqlSession.getMapper(BirdMapper.class);
List birds = birdMapper.getBird();
//方法二: 不推荐
//List birds = sqlSession.selectList("com.YUME.dao.BirdMapper.getBird");
for (Bird bird : birds) {
System.out.print(bird.getName()+" ");
System.out.println(bird.getAge());
}
}catch (Exception e){
e.printStackTrace();
}finally {
sqlSession.close();
}
}
}



