一个稍复杂的 MyBatis 连结数据库的案例,涉及多表查询,以及稍复杂的 SQL 语句
共三张表:学生表 student,班级表 class,分数表 score
案例为
1.查询 张三 的 数学 成绩 2.查询 三班 全体成员成绩 3.查询 数学 第4,5,6名的 学生姓名
导入 jar 包
博主使用的是 MySQL 数据库,所以需要导一些 jar 包
新建一个 java project , 在工程下新建文件夹,命名为 lib ,将MySQL 的驱动文件 和 MyBatis 的驱动文件 复制到该文件夹,并右键 Build Path -> Add to Build Path 。这时发现在工程里出现 Referenced Libraries ,里面有和刚才同名的 jar 文件。
创建数据库
建表
建表的 sql 语句如下(为了方便没有外键)
create table class( |
插入数据
插入数据的 sql 语句如下
INSERT INTO `class` (`classno`, `classname`) VALUES ('1', '一班'); |
配置文件连接数据库
db.properties
首先配置连结数据库文件,在 src
下新建文件,名称为 db.properties
,内容如下,其中 20170214
为数据库名称,需要改成你自己的数据库名字。
jdbc.driver = com.mysql.jdbc.Driver |
SqlMapConfig.xml
在 src
下新建一个 SqlMapConfig.xml
文件,内容为:
|
新建 pojo 对象类
在 src
下新建一个包,包名为 pojo
,然后根据数据库列名新建 student
, class
, score
三个类,注意列名与对象名应一致,并进行set, get方法
Class.java
package pojo; |
Student.java
package pojo; |
Score.java
package pojo; |
配置接口映射
StudentMapper.java
package mapper; |
新建 SQL 语句映射文件 StudentMapper.xml
|
由 SQL 语句得知这是两个表的查询语句 传入参数有 studentname, object, 传出参数有 a.studentname, b.object, b.score。
以上数据因为都是从两个表中获取,所以需要再写两个 pojo 类:FirstParameter.java 和 FirstResult.java
FirstParameter.java
package pojo; |
FirstResult.java
package pojo; |
测试类
package test; |