我这里使用的是强大的IDEA工具,为了适应潮流,没办法,我老泪纵横,放弃了热爱的eclipse,用了之后果然真香!!!!。
这是一个myBatis入门比较好的案例,这里做个记录,日后复习。
1.使用Maven创建项目,导入mybatis相关依赖
org.mybatis
mybatis
3.5.4
mysql
mysql-connector-java
5.1.48
log4j
log4j
1.2.17
junit
junit
4.13
2.根据我已经创好的数据库,写一个Students实体类,还是那个可爱的get,set,tostring方法,带参无参构造器就不写了,这里够用
package com.wangningbo.bean;
public class Students {
private Integer id;
private String name;
private int age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "Students{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
3.创建一个dao层的接口,IStudentDao,这里就定义一个查询方法,增删改都一样,不在演示。
package com.wangningbo.dao;
import com.wangningbo.bean.Students;
import java.util.List;
public interface IStudentDao {
List queryAllStudent();
}
4.接下来就要在resources下面创建一个mapper包,在下面创建一个mapper.xml配置文件,来对上面的IStudentDao接口进行实现,可以理解为一个实现类,注意下namespace位置就可以了
-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
select * from student
5.连接数据库,以及对mapper.xml进行使用,这就要在resources下创建一个mybatis总配置myBatisConfig.xml
-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
6.最后编写一个测试类来测试一下吧,把学生们打在控制台上
import com.wangningbo.bean.Students;
import com.wangningbo.dao.IStudentDao;
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 org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class test {
@Test
public void test() throws IOException {
//1.读取配置文件 InputStream resource = Resources.getResourceAsStream("myBatisConfig.xml");
//2.创建SqlSessionFactory工厂 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(resource);
//3.使用工厂生成SqlSession对象 SqlSession session = factory.openSession();
//4.使用SqlSession对象创建dao层接口代理对象 IStudentDao dao = session.getMapper(IStudentDao.class);
//5.使用代理对象执行接口里面的方法 List students = dao.queryAllStudent();
for (Students student : students) {
System.out.println(student);
}
//6.释放资源 session.close();
}
}
这里来个补充:如果说想用注解的方式来实现上面的Demo,也是阔可以的,但是我也不清楚到底哪个好,下面是使用注解来实现。
和上面的过程一样,要改的只有如下:
1.删除mapper.xml,在dao层接口上直接来个注解
package com.wangningbo.dao;
import com.wangningbo.bean.Students;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface IStudentDao {
@Select("select * from student")
List queryAllStudent();
}
2.改一下myBatis主配置文件,把resources路径,改成接口的全名,即可
-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">