MyBatis入门示例――MyBatis学习笔记之一 (一)

2014-11-24 08:26:41 · 作者: · 浏览: 2

MyBatis是另外一款优秀的ORM框架,前身为iBATIS。凡事预则立,不预则废。鉴于以后的项目可能会用到它,因此决定提前学习。本着分享和督促自己学习的目的,笔者将陆续把学习笔记贴出,希望对朋友们有所帮助。如前述博文所述,笔者将使用ant来管理工程。对ant不熟悉的朋友,请参考笔者的两篇预备篇博文:《 ant的下载与安装——mybatis学习笔记之预备篇(一)》和 《ant入门示例——mybatis学习笔记之预备篇(二)》。
本学习笔记以模拟学生选课管理为背景,以MySQL5.5作为数据库。创建数据库、用户、表以及用户授权的SQL脚本(courseman.sql)如下(在本文下方可 下载附件,含本示例全部代码。):

1. /* 数据库编码UTF8,以下命令是为了在脚本和
2. 命令行中支持中文*/
3. set names gbk;
4.
5. /*创建courseman数据库*/
6. drop database if exists courseman;
7. create database courseman;
8.
9. /*切换到courseman数据库*/
10. use courseman;
11.
12. /*创建学生表*/
13. CREATE TABLE student(
14. id int NOT NULL AUTO_INCREMENT primary key,
15. name varchar(10) NOT NULL,/*姓名*/
16. gender char(1) NOT NULL,/*性别*/
17. major varchar(20) NOT NULL,/*专业*/
18. grade char(4) NOT NULL/*年级*/
19. );
20.
21. /*授予courseman用户访问courseman数据库的全部权限。
22. 为方便起见,用户名与数据库同名。该用户若不存在则被
23. 创建,密码为abc123*/
24. grant all privileges on courseman.* to courseman@'%'
25. identified by 'abc123';
26.
27. flush privileges;
28.
29. /*添加第一条记录*/
30. insert into student(name, gender, major, grade)
31. values('李林','男','计算机科学与技术','2011');
在命令行下以root用户登录( mysql –uroot -p),用source命令运行此脚本(假如此脚本在D盘下,即d:\courseman.sql,则运行命令:source d:/courseman.sql。注意,这里是“/”,而不是“\”)。
本示例的任务是根据学生的ID读取学生信息。
笔者在自己机器上的E:\DemoPrograms目录下新建目录MyBatis01,用来存放本示例的工程。按照ant工程常见的组织形式,生成文件build.xml存放在此目录下,另外建立两个目录:src(存放源代码和配置文件)lib(存放jar包),而classes目录让ant帮我们创建。将本次要用到的jar包复制到lib目录下(分别为mybatis的mybatis-3.0.6.jar和MySQL的JDBC驱动包mysql-connector-java-5.1.20-bin.jar)。
在src目录下新建resources目录,用来保存相关的配置文件。之后,我们将要求ant把此目录复制到classes目录下。由于classes目录会被ant添加到类路径中,因此MyBatis可以访问到这些配置文件。其中核心配置文件configuration.xml(当然也可以取其他名字)的内容如下:

1. < xml version="1.0" encoding="UTF-8" >
2.
3.
4.
5.
6.
7.
8.

9.
10.
12.
13.
14.

15.
16.
21.
22.
23.
24.
25.
26.
27. 28. value="jdbc:mysql://localhost/courseman"/>
29.
30.
31.

32.

33.

34.
35.
37.
38.
39.

40.
41.

(注:我在configuartion.xml和下面的StudentMapper.xml中添加中文注释后报“Invalid byte 1 of 1-byte UTF-8 sequence.”错误,不知为何。有知道的朋友望告知。因此需要本示例代码的朋友不要复制这两个文件的代码,在本文下方下载附件即可。附件可直接运行。)
此配置文件很简单,这也体现了笔者一向的原则:从最简单的开始。其实有部分知识不太理解也属正常,慢慢用多了自然就理解了,熟悉了,这符合一般的学习规律。相信包括笔者在内的学习者,都是这种情况。
接着编写学生类,这是一个普通的java bean。代码如下:

1. package com.abc.domain;
2.
3. public class Student {
4.
5. private int id;
6. private String name; //姓名
7. private String gender; //性别
8. private String major; //专业
9. private String grade; //年级
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 na