设为首页 加入收藏

TOP

Mybatis学习笔记(一)
2015-07-24 12:04:34 来源: 作者: 【 】 浏览:28
Tags:Mybatis 学习 笔记

一、数据库字段名与实体类属性名不相同问题

1.1 准备数据表和数据

?

CREATE TABLE orders(
	order_id INT PRIMARY KEY AUTO_INCREMENT,
	order_no VARCHAR(20), 
	order_price FLOAT
);
INSERT INTO orders(order_no, order_price) VALUES('aaaa', 23);
INSERT INTO orders(order_no, order_price) VALUES('bbbb', 33);
INSERT INTO orders(order_no, order_price) VALUES('cccc', 22);

1.2 定义实体类

?

?

public class Order {
	private int id;
	private String orderNo;
	private float price;
}

1.3 查询数据实现

?

?

方式一: 通过在sql语句中定义别名

		
方式二: 通过



	
	
	


二、一对一关联表查询

?

2.1 创建表和数据

?

CREATE TABLE teacher(
	t_id INT PRIMARY KEY AUTO_INCREMENT, 
	t_name VARCHAR(20)
);
CREATE TABLE class(
	c_id INT PRIMARY KEY AUTO_INCREMENT, 
	c_name VARCHAR(20), 
	teacher_id INT
);
ALTER TABLE class ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(t_id);	

INSERT INTO teacher(t_name) VALUES('LS1');
INSERT INTO teacher(t_name) VALUES('LS2');

INSERT INTO class(c_name, teacher_id) VALUES('bj_a', 1);
INSERT INTO class(c_name, teacher_id) VALUES('bj_b', 2);

?

提出需求:根据班级id查询班级信息(带老师的信息)


2.2 定义实体类

?

public class Teacher {
	private int id;
	private String name;
}
public class Classes {
	private int id;
	private String name;
	private Teacher teacher;
}

2.3 定义SQL映射文件ClassMapper.xml

?

?




	
	
	
		
		
	




 
 
	
	
	

 
 
 
\

?

三、一对多的关联查询

3.1 增加学生表

?

CREATE TABLE student(
	s_id INT PRIMARY KEY AUTO_INCREMENT, 
	s_name VARCHAR(20), 
	class_id INT
);
INSERT INTO student(s_name, class_id) VALUES('xs_A', 1);
INSERT INTO student(s_name, class_id) VALUES('xs_B', 1);
INSERT INTO student(s_name, class_id) VALUES('xs_C', 1);
INSERT INTO student(s_name, class_id) VALUES('xs_D', 2);
INSERT INTO student(s_name, class_id) VALUES('xs_E', 2);
INSERT INTO student(s_name, class_id) VALUES('xs_F', 2);

由于学生表的加入,创建Student实体类,并修改Classes类,class与student是一对多的关系。

?

?

public class Student {
	private int id;
	private String name;
}

public class Classes {
	private int id;
	private String name;
	private Teacher teacher;
	private List students;
}

3.2 定义映射文件

?

?




	
	
	
		
		
	
	
	
		
		
	



 
 
	
	
	
	
 
 
 
 
 
\

?

四、动态SQL与模糊查询

4.1 准备数据表

?

create table d_user(  
	id int primary key auto_increment,  
	name varchar(10),
	age int(3)
); 

insert into d_user(name,age) values('Tom',12);  
insert into d_user(name,age) values('Bob',13);  
insert into d_user(name,age) values('Jack',18);

需求:实现多条件查询用户(姓名模糊匹配, 年龄在指定的最小值到最大值之间)

?

4.2 查询条件实体类ConditionUser

?

private String name;
private int minAge;
private int maxAge;

4.3 表实体类User

?

?

private int id;
private String name;
privat
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇EncryptingGoldengatePassword 下一篇如何描述一张数据表的基本信息?

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: