最近两年 springmvc + mybatis 的在这种搭配还是蛮火的,楼主我呢,也从来没真正去接触过mybatis, 趁近日得闲, 就去学习一下mybatis吧。 本次拟根据自己的学习进度,做一次关于mybatis 的一系列教程, 记录自己的学习历程, 同时也给还没接触过mybatis的朋友探一次道。本系列教程拟 由浅(使用)入深(分析mybatis源码实现),故可能需要好长几天才能更新完。好啦,下面就开始本次的mybatis 学习之旅啦, 本次为第一篇教程, 就先简单地写个demo, 一起来认识一下mybatis吧。
为了方便,我使用了maven, 至于maven怎么使用, 我就不做介绍了。没用过maven的, 也不影响阅读。
一、Mybatis环境搭建及简单实例
1. 新建web项目, 添加依赖包:mybatis包、数据库驱动包(我使用的是mysql)、日志包(我使用的是log4j), 由于我的是maven项目, 那么添加依赖包就简单了,直接在pom.xml添加依赖即可。
pom.xml:
junit junit 4.11 test log4j log4j 1.2.16 org.mybatis mybatis 3.2.6 mysql mysql-connector-java 5.1.12
2. 配置log4j, 配置mybatis
在classpath建立一个用于配置log4j的配置文件log4j.properties, 再建立一个用于配置Mybatis的配置文件configuration.xml(文件可随便命名)。log4j的配置,我就不多说,这儿主要说一下configuration.xml:
configuration.xml:
1 2 56 7 8 9 10 11 12 14 1513 16 36 37 3817 3518 19 26 27 28 3429 30 31 32 33 39 41 4240
3. 开始写Demo
首先,在mysql数据库test1建立一张表user:

然后,开始编写java代码。
看看我的项目结构:

先编写一个实体类User: User类用于与User表相对应。
User:
1 package com.dy.entity;
2
3 public class User {
4
5 private int id;
6 private String name;
7 private String password;
8 private int age;
9 private int deleteFlag;
10
11 public int getId() {
12 return id;
13 }
14 public void setId(int id) {
15 this.id = id;
16 }
17 public String getName() {
18 return name;
19 }
20 public void setName(String name) {
21 this.name = name;
22 }
23 public String getPassword() {
24 return password;
25 }
26 public void setPassword(String password) {
27 this.password = password;
28 }
29 public int getAge() {
30 return age;
31 }
32 public void setAge(int age) {
33 this.age = age;
34 }
35 public int getDeleteFlag() {
36 return deleteFlag;
37 }
38 public void setDeleteFlag(int deleteFlag) {
39 this.deleteFlag = deleteFlag;
40 }
41
42 }
再编写一个UserDao 接口:
UserDao:
1 package com.dy.dao;
2
3 import java.util.List;
4
5 import com.dy.entity.User;
6
7 public interface UserDao {
8
9 public void insert(User user);
10
11 public User findUserById (int userId);
12
13 public List findAllUsers();
14
15 }
再编写一个userDao-mapping.xml (可随便命名):
userDao-mapping.xml:
1 2 56 7 10 11
userDao-mapping.xml相当于是UserDao的实现, 同时也将User实体类与数据表User成功关联起来。
4. 下面编写junit测试代码UserDaoTest:
UserDaoTest:
1 public class UserDaoTest {
2
3 @Test
4 public void findUserById() {
5 SqlSession sqlSession = getSessionFactory().openSession();
6 UserDao userMapper = sqlSession.getMapper(UserDao.class);
7 User user = userMapper.findUserById(2);
8 Assert.assertNotNull("没找到数据", user);
9 }
10
11 //Mybatis 通过SqlSessionFactory获取SqlSession, 然后才能通过SqlSession与数据库进行交互12 private static SqlSessionFactory getSessionFactory() {
13 SqlSessionFactory sessionFactory = null;
14 String resource = "configuration.xml";
15 try {
16 sessionFactory = new SqlSessionFactoryBuilder().build(Resources
17 .getResourceAsReader(resource));
18 } catch (IOException e) {
19 e.printStackTrace();
20 }
21 return sessionFactory;
22 }
23
24 }
好啦,这样一个简单的mybatis 的demo就能成功运行啦。通过这个demo, 应该你就也能初步看出mybatis的运行机制,如果不清楚,也没关系。从下一篇文章开始,才开始正式讲解mybatis。
以上就是深入浅出mybatis系列(一)---mybatis入门 的内容,更多相关内容请关注php中文网(www.php.cn)!
PHP网络编程技术详解由浅入深,全面、系统地介绍了PHP开发技术,并提供了大量实例,供读者实战演练。另外,笔者专门为本书录制了相应的配套教学视频,以帮助读者更好地学习本书内容。这些视频和书中的实例源代码一起收录于配书光盘中。本书共分4篇。第1篇是PHP准备篇,介绍了PHP的优势、开发环境及安装;第2篇是PHP基础篇,介绍了PHP中的常量与变量、运算符与表达式、流程控制以及函数;第3篇是进阶篇,介绍









