mybatis的实现分为7个步骤,如下图:
创建一个folder(文件夹)lib,把下载的jar包复制粘贴到lib里面,选中所有的所有jar包文件,右击——Bulid Parh——Configure Bulid Path,之后所有的jar包文件会部署到Referenced Libraried里
在src文件夹里创建一个xml文件(mybatis-config.xml)黄色背景的是需要根据自己电脑和数据库信息更改的,student是数据库,root和88622688是电脑mysql的账号密码
<?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.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/student?characterEncoding=utf8"/> <property name="username" value="root"/> <property name="password" value="88622688"/> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/jbit/mybatisdemo/dao/StuDaoMapper.xml"/> </mappers> </configuration>
创建实体类文件夹cn.jbit.mybatisdemo.entity 创建文件Stu.class
package cn.jbit.mybatisdemo.entity; public class Stu { private String sid; private String sname; private Integer sage; private String sgender; public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public Integer getSage() { return sage; } public void setSage(Integer sage) { this.sage = sage; } public String getSgender() { return sgender; } public void setSgender(String sgender) { this.sgender = sgender; } }
创建数据口接口文件夹cn.jbit.mybatisdemo.dao,创建接口文件IStuDao.java
package cn.jbit.mybatisdemo.dao; import java.util.List; import cn.jbit.mybatisdemo.entity.Stu; public interface IStuDao { public List<Stu> selectAll(); }
在cn.jbit.mybatisdemo.dao目录下创建映射文件StuDaoMapper.xml,这里面很多东西都是固定不变得,只需要部分修改,蓝色部分是命名空间,一定要和接口文件的地址一致,resultType是返回类型,这里返回的是一个Stu对象,查询语句不加逗号
<?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="cn.jbit.mybatisdemo.dao.IStuDao"> <select id="selectAll" resultType="cn.jbit.mybatisdemo.entity.Stu"> select * from stu </select> </mapper>
创建实现文件夹cn.jbit.mybatisdemo.impl,在改目录下创建实现类StuDaoImpl.java,实现类里面也有很多是重复的
package cn.jbit.mybatisdemo.impl; import java.io.IOException; import java.io.Reader; import java.util.ArrayList; import java.util.List; 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 cn.jbit.mybatisdemo.dao.IStuDao; import cn.jbit.mybatisdemo.entity.Stu; public class StuDaoImpl implements IStuDao{ @Override public List<Stu> selectAll() { String resource = "mybatis-config.xml"; Reader reader = null; SqlSessionFactory factory = null; SqlSession session = null; List<Stu> list = new ArrayList<Stu>();//创建范式list,这是返回的数据 try { reader = Resources.getResourceAsReader(resource); SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); factory = builder.build(reader); session = factory.openSession(); //这句话是重点 list = session.selectList("cn.jbit.mybatisdemo.dao.IStuDao.selectAll");//选到接口文件下的接口selectAll } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }finally { session.close(); } return list;//返回范式list } }
写测试类
package test; import java.util.List; import cn.jbit.mybatisdemo.dao.IStuDao; import cn.jbit.mybatisdemo.entity.Stu; import cn.jbit.mybatisdemo.impl.StuDaoImpl; public class Stutest { public static void main(String []args){ IStuDao stu = new StuDaoImpl();//创建实现类对象,之后就可以对实现类里面的方法进行操作。 List<Stu> list = stu.selectAll(); for(Stu li :list){ System.out.println(li.getSid()+li.getSname()+li.getAge()+li.getGender()); } } }
目前所用到的包和类还不多,从上到下是,接口、实现、实体、和测试。