1、创建数据库和表
-- 创建数据库
CREATE DATABASE IF NOT EXISTS db_mybatis CHARACTER SET utf8;
-- 创建数据表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(32) NOT NULL COMMENT ‘用户名称‘,
`birthday` datetime default NULL COMMENT ‘生日‘,
`sex` char(1) default NULL COMMENT ‘性别‘,
`address` varchar(256) default NULL COMMENT ‘地址‘,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 添加记录
insert into `user`(`id`,`username`,`birthday`,`sex`,`address`) values (41,‘老王‘,‘2018-02-27 17:47:08‘,‘男‘,‘北京‘),(42,‘小二王‘,‘2018-03-02 15:09:37‘,‘女‘,‘北京金燕龙‘),(43,‘小二王‘,‘2018-03-04 11:34:34‘,‘女‘,‘北京金燕龙‘),(45,‘传智播客‘,‘2018-03-04 12:04:06‘,‘男‘,‘北京金燕龙‘),(46,‘老王‘,‘2018-03-07 17:37:26‘,‘男‘,‘北京‘),(48,‘小马宝莉‘,‘2018-03-08 11:44:00‘,‘女‘,‘北京修正‘);
2、创建实体类(我们现在创建的实体类要保证实体类属性名与数据库表字段保持一致)
1 import java.io.Serializable;
2 import java.util.Date;
3
4 public class User implements Serializable {
5 private Integer id;
6 private String username;
7 private Date birthday;
8 private String sex;
9 private String address;
10
11 @Override
12 public String toString() {
13 return "User{" +
14 "id=" + id +
15 ", username=‘" + username + ‘\‘‘ +
16 ", birthday=" + birthday +
17 ", sex=‘" + sex + ‘\‘‘ +
18 ", address=‘" + address + ‘\‘‘ +
19 ‘}‘;
20 }
21
22 public Integer getId() {
23 return id;
24 }
25
26 public void setId(Integer id) {
27 this.id = id;
28 }
29
30 public String getUsername() {
31 return username;
32 }
33
34 public void setUsername(String username) {
35 this.username = username;
36 }
37
38 public Date getBirthday() {
39 return birthday;
40 }
41
42 public void setBirthday(Date birthday) {
43 this.birthday = birthday;
44 }
45
46 public String getSex() {
47 return sex;
48 }
49
50 public void setSex(String sex) {
51 this.sex = sex;
52 }
53
54 public String getAddress() {
55 return address;
56 }
57
58 public void setAddress(String address) {
59 this.address = address;
60 }
61 }
3、创建实体类的持久层接口
package com.blog.dao;
import com.blog.domain.User;
import java.util.List;
public interface UserMapper {
/**
* 第一个样例: 查询所有用户
*/
List<User> findAll();
}
4、配置接口映射文件(UserMapper.xml)
<?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="com.blog.dao.UserMapper">
<!-- 配置查询所有用户 -->
<select id="findAll" resultType="com.blog.domain.User">
SELECT * FROM user
</select>
</mapper>
最终的项目结构图:
编写测试类:
package com.blog.test;
import com.blog.dao.UserMapper;
import com.blog.domain.User;
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 MybaitsTest {
@Test
public void findAllTest() throws IOException {
//1.读取配置文件
InputStream ins = Resources.getResourceAsStream("SqlMapconfig.xml");
//2.创建SqlSessionFactory 工厂 (工厂模式)
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = builder.build(ins);
//3.获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//4.使用SqlSession 创建Mapper的代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//5.使用代理对象执行查询
List<User> users = mapper.findAll();
for (User user : users) {
System.out.println(user);
}
//6.释放资源
sqlSession.close();
ins.close();
}
}
效果如下:
至此入门案例已完成,我们接下来对运行基本的分析理清一下思路:
这是我根据自己的理解画的图,可能有不对的地方欢迎大家指正。
Mybatis框架 从入门到精通 (二) Mybatis的入门案例及基本运行分析
原文:https://www.cnblogs.com/blackcatbiubiubiu/p/12488174.html