案例需求:在user表中查询所有用户 并打印用户详细信息
1、创建好数据库 在数据库中创建好表(使用的是上一篇中的数据库和表)
2、创建好项目 这里搭建的是maven工程
3、导入相应的jar包的坐标
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
4、resources目录下导入log日志文件
5、创建pojo类 这里对user相关信息进行了一个封装 注意这里的变量要和数据库中的属性名进行对应
public class User implements Serializable {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username=\'" + username + \'\\\'\' +
", birthday=" + birthday +
", sex=\'" + sex + \'\\\'\' +
", address=\'" + address + \'\\\'\' +
\'}\';
}
}
6、创建IUserDao接口对象 提供查询所有用户的接口方法
public interface IUserDao {
/*
* 查询所有的用户的抽象方法
* */
public List<User> findAll();
}
7、在resources的目录下相应的目录文件下创建映射文件IUserDao.xml
这里的namespace必须要指明 另外这里没有参数值所以不用指定参数类型 这里的返回值必须要指明 不然最后返回的结果找不到对象来接收
8、创建sqlmapconfig.xml配置文件 导入相应的约束文件 这个是主配置文件 里面要配置相应的数据库信息 以及 映射文件的配置
9、书写测试类(分为6个小步骤)
1)读取配置文件sqlmapconfig.xml
2)创建sqlsessionfactory工厂
3)利用工厂创建sqlsession对象
4)利用sqlsession对象创建相应的代理类
5)利用代理类执行相应的方法
6)关闭相应的资源
public void testMybatis() throws Exception {
//1、读取配置文件
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//2、创建sqlsessionFatory
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory sessionFactory = builder.build(inputStream);
//3、生产sqlsession对象
SqlSession session = sessionFactory.openSession();
//4、创建接口代理类对象
IUserDao mapper = session.getMapper(IUserDao.class);
System.out.println(mapper);
//5、调用方法
List
for(User u:list){
System.out.println(u);
}
//6、关闭资源
inputStream.close();
session.close();
}
输出结果:
User{id=41, username=\'老王\', birthday=Tue Feb 27 17:47:08 CST 2018, sex=\'男\', address=\'北京\'}
User{id=42, username=\'大王\', birthday=Fri Mar 02 15:09:37 CST 2018, sex=\'女\', address=\'上海\'}
User{id=43, username=\'小王\', birthday=Sun Mar 04 11:34:34 CST 2018, sex=\'女\', address=\'深圳\'}
User{id=45, username=\'二王\', birthday=Sun Mar 04 12:04:06 CST 2018, sex=\'男\', address=\'南京\'}
User{id=46, username=\'王二麻子\', birthday=Wed Mar 07 17:37:26 CST 2018, sex=\'男\', address=\'天津\'}