mybatis的配置:
<1>jar包
<2>mapper.xml文件 :注意namespace这个属性是唯一标识一个文件的标识(可以随意命名但是很重要)这里假设是 mapperSpace
<3>config.xml文件:配置好自己的数据库,然后还有mapper文件的路径,还有注意congfig.xml文件的位置,必须在resources文件下,否则找不到
开始测试:
一、statement方式:
//1.加载config.xml配置问价‘
Reader input = Resources.getResourceAsReader("config.xml");
//2.创建sqlSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(input);
//3.创建sqlSession 它就等同于我们之前的connection
SqlSession session = factory.openSession();
//4.开始增删改查等操作,这里只演示一个单查询
String statement = "mapperSpace.selectById"; //namespace.id唯一标识这文件中的一个select语句 当然前提是要有id
session.selectOne(statement);
二、基于动态代理的(jdk)
优点:不用每次调用的时候写statement,直接调用接口的方法就能调用唯一标识的一条sql语句
步骤:
<1>写一个interface注意的点:
①mapper文件的nameSpace换成接口路径.接口名 //一个接口唯一标识一个mapper文件
②接口的方法名必须和mapper文件的id名一样,参数,返回值也得一样。这里注意一点,在多查询的时候,无论返回的是一条还是多条接口在mapper文件中resultType只能是一个。
例:select * from student
返回结果肯定是多条学生记录,但是在mapper.xml文件中会这样写
select * from student
但是这个id映射到接口中,它的返回值必须是是集合我们通常用list
③写好接口之后就可测试了
将String statement = “mapperSpace.selectById”;
session.selectOne(statement);这两条换成下面的两条
interface objcet = session.getMapper(interface.class); //获得接口的class,也就找到mapper.xml文件
objcet.selectAll(); //可以直接调用接口的方法实现sql的查询,也就是将sql语句和方法一一对应了