博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis入门示例——MyBatis学习笔记之一
阅读量:6916 次
发布时间:2019-06-27

本文共 4268 字,大约阅读时间需要 14 分钟。

      MyBatis是另外一款优秀的ORM框架,前身为iBATIS。凡事预则立,不预则废。鉴于以后的项目可能会用到它,因此决定提前学习。本着分享和督促自己学习的目的,笔者将陆续把学习笔记贴出,希望对朋友们有所帮助。如前述博文所述,笔者将使用ant来管理工程。对ant不熟悉的朋友,请参考笔者的两篇预备篇博文:和。

      本学习笔记以模拟学生选课管理为背景,以MySQL5.5作为数据库。创建数据库、用户、表以及用户授权的SQL脚本(courseman.sql)如下(在本文下方可下载附件,含本示例全部代码。):

/*数据库编码UTF8,以下命令是为了在脚本和命令行中支持中文*/set names gbk;/*创建courseman数据库*/drop database if exists courseman;create database courseman;/*切换到courseman数据库*/use courseman;/*创建学生表*/CREATE TABLE student(id int NOT NULL AUTO_INCREMENT primarykey,name varchar(10) NOT NULL,/*姓名*/gender char(1) NOT NULL,/*性别*/major varchar(20) NOT NULL,/*专业*/grade char(4) NOT NULL/*年级*/);/*授予courseman用户访问courseman数据库的全部权限。为方便起见,用户名与数据库同名。该用户若不存在则被创建,密码为abc123*/grant all privileges on courseman.* to courseman@'%'identified by 'abc123';flush privileges;/*添加第一条记录*/insert into student(name, gender, major, grade)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(当然也可以取其他名字)的内容如下: 

 (注:我在configuartion.xml和下面的StudentMapper.xml中添加中文注释后报“Invalid byte 1 of 1-byte UTF-8 sequence.”错误,不知为何。有知道的朋友望告知。因此需要本示例代码的朋友不要复制这两个文件的代码,在本文下方下载附件即可。附件可直接运行。)

      此配置文件很简单,这也体现了笔者一向的原则:从最简单的开始。其实有部分知识不太理解也属正常,慢慢用多了自然就理解了,熟悉了,这符合一般的学习规律。相信包括笔者在内的学习者,都是这种情况。

     接着编写学生类,这是一个普通的java bean。代码如下:

package com.abc.domain;public class Student {private int id;private String name;   //姓名private String gender; //性别private String major;  //专业private String grade;  //年级public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getMajor() {return major;}public void setMajor(String major) {this.major = major;}public String getGrade() {return grade;}public void setGrade(String grade) {this.grade = grade;}}

       按照包的层次结构,在src目录下建立子目录层次com\abc\domain,然后把Student.java存放于此。

      MyBatis需要我们提供一个接口,在接口中声明访问数据库的方法。因此,编写接口StudentMapper.java如下: 

package com.abc.mapper;import com.abc.domain.Student;public interface StudentMapper {//根据学生ID查询学生实体public Student getById(int id);}

       类似地,将此文件放置在src目录下的com\abc\mapper目录下。

      现在编写上面提到的mapper文件StudentMapper.xml。在此文件里,我们写好查询的SQL语句,并配置好映射关系。内容如下:

       MyBatis将根据此文件帮我们实现StudentMapper接口。下面编写TestMyBatis.java,实现我们的功能。代码如下:

package com.test;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import com.abc.mapper.StudentMapper;import com.abc.domain.Student;public class TestMyBatis{public static void main(String[] args){//与configuration.xml中的mapper配置类似,告诉MyBatis//应读取的核心配置文件String resource = "resources/configuration.xml";Reader reader = null;try{reader = Resources.getResourceAsReader(resource);}catch(IOException e){e.printStackTrace();}//创建SqlSessionFactory实例。没有指定要用到的//environment,则使用默认的environmentSqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(reader);SqlSession sqlSession = sqlSessionFactory.openSession();try{StudentMapper mapper =sqlSession.getMapper(StudentMapper.class);Student student = mapper.getById(1);if(student != null){System.out.println("姓名: "+student.getName()+"\n专业: "+student.getMajor());}else{System.out.println("没有找到。");}}finally{sqlSession.close();}}}

        在命令窗口进入E:\DemoPrograms\MyBatis01目录,运行命令:ant run。则运行结果如下:

        

         MyBatis技术交流群:188972810,或扫描二维码:


【MyBatis学习笔记】系列之一:MyBatis入门示例

转载地址:http://ucxcl.baihongyu.com/

你可能感兴趣的文章
iOS学习:UILabel和sizeWithFont方法
查看>>
“伴侣”机器人问世 宅男宅女们这下有福了!
查看>>
我的友情链接
查看>>
Android开发 - 更"聪明"的申请权限方式
查看>>
SVN配置安装
查看>>
linux基础命令 grep
查看>>
Awstats服务
查看>>
linux源地址转换(一)
查看>>
ZooKeeper客户端Curator使用一 创建连接
查看>>
图文说明虚拟机的几种网络模式
查看>>
将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)
查看>>
Ubuntu屏幕截图快捷键知多少
查看>>
JQuery Select多选插件实现
查看>>
1-Ictclas50分词系统ForJava
查看>>
51CTO篮球俱乐部精彩集锦(5月9日)
查看>>
如何找到适合自己的学习方法
查看>>
Android 位置服务与GPS实时定位
查看>>
Nginx配置——用户认证
查看>>
SD卡分区及取消分区
查看>>
创建VLAN、中继链路和参与以太网捆绑的详细配置和截图
查看>>