1.复习
MyBatis是一个持久层框架,mybatis是不完全的ORM框架。Sql语句需要程序员自己编写,但是Mybatris也有映射(输入映射和输出映射);
MyBatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,对sql语句优化非常方便,适用于需要变化较多的项目,比如互联网项目;
执行过程 :
1)配置mybatis的配置文件 ,SqlMapConfig.xml 名称不固定;
2)通过配置文件,价值mybatis运行环境,创建SqlSessionFactory回话工厂,使用单例模式;
3)通过SqlSessionFactory创建SqlSession ,SqlSession 是一个面向用户接口的,线程不安全的,建议SqlSession应用场合方法体内;
4)调用sqlSession的方法去操作数据,如果需要提交事务,需要执行SqlSession的commit()方法;
5)释放资源,关闭SqlSession;
开发Dao方法:
1)原始Dao方法
编写dao接口和dao实现类,需要在dao的实现类里注入一个SqlSessionFactory工厂;
2)Mapper代理开发方法(建议使用)
只需要编写Dao接口,还需编写mapper.xml映射文件和mapper.java需要遵循一个开发规范:
[1].mapper.xml中namespace就是mapper.java的类全路径;
[2].mapper.xml中statement的id就是mapper.java的方法名一致;
[3].mappet.xml中statement的paramterType指定的输入参数和mapper.java的方法输入参数类型一致;
[4].mappet.xml中statement的resultType 指定的输出映射和mapper.java的返回值类型一致,没有返回值,则为void;
SqlMapConfig.xml配置文件 :
可以配置properties属性,别名,mapper加载等
1)输入映射
paramterType :指定输入参数类型可以为简单类型,pojo ,hashmap等;
对于综合查询,建议paramteTypo使用包装的pojo,有利于系统拓展;
2)输出映射
resultType:查询到的列明和resultType指定的pojo的属性名一致,才能映射成功;
resultMap :可以通过resultMap完成一些高级映射;
如果查询到的列表和映射的pojo的属性名不一致时,通过resultMap设置列名和属性名之间的对应关系,可以完成映射;
高级映射 :将关联查询的列映射到一个pojo属性中(一对一);将关联查询的列映射到一个List<pojo>中(一对多);
动态sql:if判断 和 Sql片段,重点;
2.数据库业务实现
(1)规定场景
客户表 :客户信息,也是每个经营店面的负责人,可以负责多个经营信息;
经营信息表 :经营店面的信息表,每个经营店面信息有多条资产信息;
资产表 :资产信息,每个资产信息,都有资产授权信息;
资产授权信息表:资产的授权信息;
(2)四个表之间的关系
(3)创建客户表和数据准备
1)创建客户表
--客户表
CREATE TABLE F_CLIENT(
ID NUMBER(12) PRIMARY KEY,--用户编号
USERNAME VARCHAR2(20) NOT NULL,--用户姓名
CLIENT_CERTIFICATE_NO VARCHAR2(20) NOT NULL UNIQUE,--证件号码
BORN_DATE DATE,--出生日期
FAMILY_REGISTER_ADDRESS VARCHAR2(200),--家庭住址
NOW_ADDRESS VARCHAR2(200) NOT NULL,--现在住址
CONTACT_MODE VARCHAR2(50) NOT NULL,--联系方式
URGENCY_CONTACT_MODE VARCHAR2(50) NOT NULL,--紧急联系方式
CREATE_DATE DATE NOT NULL--创建时间
);
insert into f_client(id,username,client_certificate_no,born_date,family_register_address,now_address,contact_mode,urgency_contact_mode,create_date) values (14,
'yuan','311209070127',to_date('1993-03-12','yyyy-mm-dd'),'河南省焦作市','河南省河南理工大学','150000000','110',sysdate);
insert into f_client(id,username,client_certificate_no,born_date,family_register_address,now_address,contact_mode,urgency_contact_mode,create_date) values(
15,'yang','311209070126',to_date('1993-04-12','yyyy-mm-dd'),'河南温县','河南理工大学','3987321','110',sysdate);
insert into f_client values(
16,'yang','311209070129',to_date('1997-04-12','yyyy-mm-dd'),'河南新乡','河南理工大学','3987321','110',sysdate);
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (1, 'sawyer', '1593224056', to_date('10-10-1980', 'dd-mm-yyyy'), '北京市海淀区东北旺', 'peaking', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (2, 'yangly', '1593224057', to_date('11-10-1980', 'dd-mm-yyyy'), '北京市海淀区东北旺', 'peaking', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (3, 'gaozhy', '1593224058', to_date('12-12-1980', 'dd-mm-yyyy'), '湖北省洪山区黄家湖', 'shanghai', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (4, 'wangmj', '1593224059', to_date('13-04-1980', 'dd-mm-yyyy'), '湖北省洪山区黄家湖', 'hubei', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (5, 'lijing', '1593224060', to_date('14-07-1980', 'dd-mm-yyyy'), '湖北省洪山区黄家湖', 'tianjing', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (6, 'wangpl', '1593224061', to_date('15-09-1980', 'dd-mm-yyyy'), '北京市朝阳区百子湾', 'peaking', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (7, 'lixiao', '1593224062', to_date('16-09-1980', 'dd-mm-yyyy'), '北京市朝阳区百子湾', 'henan', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (8, 'zhaoyf', '1593224063', to_date('17-07-1980', 'dd-mm-yyyy'), '北京市海淀区五道口', 'henan', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (9, 'suyibo', '1593224064', to_date('18-09-1980', 'dd-mm-yyyy'), '北京市海淀区东北旺', 'hebei', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (10, 'luojh', '1593224065', to_date('19-09-1980', 'dd-mm-yyyy'), '北京市朝阳区百子湾', 'heilongjiang', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (11, 'mazhb', '1593224066', to_date('10-08-1980', 'dd-mm-yyyy'), '北京市海淀区东北旺', 'peaking', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (12, 'gaohf', '1593224067', to_date('18-08-1980', 'dd-mm-yyyy'), '北京市朝阳区百子湾', 'peaking', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_CLIENT (ID, USERNAME, CLIENT_CERTIFICATE_NO, BORN_DATE, FAMILY_REGISTER_ADDRESS, NOW_ADDRESS, CONTACT_MODE, URGENCY_CONTACT_MODE, CREATE_DATE)
values (13, 'chenb', '1593224068', to_date('13-08-1980', 'dd-mm-yyyy'), '北京市海淀区西二旗', 'peaking', '123456789', '987654321', to_date('15-12-2015 08:47:13', 'dd-mm-yyyy hh24:mi:ss'));
3)字段属性
private Integer id;
private String username;
private String client_certificate_no;
private Date born_date;
private String family_register_address;
private String now_address;
private String contact_mode;
private String urgency_contact_mode;
private Date create_data;
(3)经营信息表
1)创建信息表
CREATE TABLE F_OPERATION(
ID NUMBER(12) PRIMARY KEY,--资产编号
CLIENT_ID NUMBER(12) FOREIGN KEY REFERENCES F_CLIENT(ID),--用户编号
OPERATE_INFOMATION_DESCRIBE VARCHAR2(120) NOT NULL,--资产信息描述
POSSESS_SHAREHOLDING NUMBER(4,2) NOT NULL,--持股比例
OPERATE_ADDRESS VARCHAR2(50) NOT NULL,--经营地址
YEAR_AVG_INCOME VARCHAR2(50) NOT NULL,--年收入
BEGIN_OPERATION_TIME DATE NOT NULL,--开始经营日期
EMPLOYEES_AMOUNT NUMBER(6) NOT NULL,--员工总数
LEGAL_PERSON_NAME VARCHAR2(20) NOT NULL,--法人姓名
LEGAL_PERSON_CRD_NUMBER VARCHAR2(50) NOT NULL,--法人证件号码
OPERATE_CRD_NUMBER VARCHAR2(50) NOT NULL,--经营证件号码
UPDATE_TIME DATE NOT NULL--更新时间
)
2)初始化数据
insert into f_operation values(10,14,'这是一推资产',0.8,'河南理工大学兰五544','12',to_date('2015-10-10','yyyy-dd-mm'),
23,'吴迪','3112090703','3112090703',sysdate);
insert into f_operation values (
11,14,'这是另一推资产',0.1,'河南理工大学超市','10',to_date('2015-10-11','yyyy-dd-mm'),'100','杨大神','3112090701','3112090701',sysdate);
insert into f_operation values (
12,15,'这是另一推资产',0.1,'河南理工大学超市','10',to_date('2015-10-11','yyyy-dd-mm'),'100','杨大神','3112090702','3112090702',sysdate);
insert into f_operation values (
13,16,'这是另一推资产',0.1,'河南理工大学超市','10',to_date('2015-10-11','yyyy-dd-mm'),'100','杨大神','3112090704','3112090704',sysdate);
insert into F_OPERATION (ID, CLIENT_ID, OPERATE_INFOMATION_DESCRIBE, POSSESS_SHAREHOLDING, OPERATE_ADDRESS, YEAR_AVG_INCOME, BEGIN_OPERATION_TIME, EMPLOYEES_AMOUNT, LEGAL_PERSON_NAME, LEGAL_PERSON_CRD_NUMBER, OPERATE_CRD_NUMBER, UPDATE_TIME)
values (1, 1, '是一份资产的信息', 0.33, '北京市海淀区东北旺', '10000000', to_date('10-09-1999', 'dd-mm-yyyy'), 100, 'yangll', '1567843925', '1567843925', to_date('15-12-2015 10:09:24', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_OPERATION (ID, CLIENT_ID, OPERATE_INFOMATION_DESCRIBE, POSSESS_SHAREHOLDING, OPERATE_ADDRESS, YEAR_AVG_INCOME, BEGIN_OPERATION_TIME, EMPLOYEES_AMOUNT, LEGAL_PERSON_NAME, LEGAL_PERSON_CRD_NUMBER, OPERATE_CRD_NUMBER, UPDATE_TIME)
values (2, 2, '是一份资产的信息', 0.50, '北京市海淀区西二旗', '100000000', to_date('17-04-1999', 'dd-mm-yyyy'), 500, 'yangdd', '1567678978', '1567678978', to_date('15-12-2015 10:09:24', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_OPERATION (ID, CLIENT_ID, OPERATE_INFOMATION_DESCRIBE, POSSESS_SHAREHOLDING, OPERATE_ADDRESS, YEAR_AVG_INCOME, BEGIN_OPERATION_TIME, EMPLOYEES_AMOUNT, LEGAL_PERSON_NAME, LEGAL_PERSON_CRD_NUMBER, OPERATE_CRD_NUMBER, UPDATE_TIME)
values (3, 1, '是一份资产的信息', 0.20, '北京市海淀区东北旺', '15000000', to_date('18-09-1999', 'dd-mm-yyyy'), 70, 'yangmm', '15468756778', '15468756778', to_date('15-12-2015 10:09:24', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_OPERATION (ID, CLIENT_ID, OPERATE_INFOMATION_DESCRIBE, POSSESS_SHAREHOLDING, OPERATE_ADDRESS, YEAR_AVG_INCOME, BEGIN_OPERATION_TIME, EMPLOYEES_AMOUNT, LEGAL_PERSON_NAME, LEGAL_PERSON_CRD_NUMBER, OPERATE_CRD_NUMBER, UPDATE_TIME)
values (4, 2, '是一份资产的信息', 0.16, '湖北省洪山区黄家湖', '18000000', to_date('20-10-1999', 'dd-mm-yyyy'), 10, 'wangss', '68743368594', '68743368594', to_date('15-12-2015 10:09:24', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_OPERATION (ID, CLIENT_ID, OPERATE_INFOMATION_DESCRIBE, POSSESS_SHAREHOLDING, OPERATE_ADDRESS, YEAR_AVG_INCOME, BEGIN_OPERATION_TIME, EMPLOYEES_AMOUNT, LEGAL_PERSON_NAME, LEGAL_PERSON_CRD_NUMBER, OPERATE_CRD_NUMBER, UPDATE_TIME)
values (5, 4, '是一份资产的信息', 0.09, '北京市海淀区东北旺', '10000000', to_date('05-09-1997', 'dd-mm-yyyy'), 120, 'sangbb', '47389434043', '47389434043', to_date('15-12-2015 10:09:24', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_OPERATION (ID, CLIENT_ID, OPERATE_INFOMATION_DESCRIBE, POSSESS_SHAREHOLDING, OPERATE_ADDRESS, YEAR_AVG_INCOME, BEGIN_OPERATION_TIME, EMPLOYEES_AMOUNT, LEGAL_PERSON_NAME, LEGAL_PERSON_CRD_NUMBER, OPERATE_CRD_NUMBER, UPDATE_TIME)
values (6, 1, '是一份资产的信息', 0.05, '湖北省洪山区黄家湖', '100000000', to_date('13-06-1999', 'dd-mm-yyyy'), 1000, 'lihh', '90893472119', '90893472119', to_date('15-12-2015 10:09:24', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_OPERATION (ID, CLIENT_ID, OPERATE_INFOMATION_DESCRIBE, POSSESS_SHAREHOLDING, OPERATE_ADDRESS, YEAR_AVG_INCOME, BEGIN_OPERATION_TIME, EMPLOYEES_AMOUNT, LEGAL_PERSON_NAME, LEGAL_PERSON_CRD_NUMBER, OPERATE_CRD_NUMBER, UPDATE_TIME)
values (7, 7, '是一份资产的信息', 0.50, '北京市海淀区东北旺', '10000000', to_date('19-08-1998', 'dd-mm-yyyy'), 19, 'hehe', '15654783034', '15654783034', to_date('15-12-2015 10:09:24', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_OPERATION (ID, CLIENT_ID, OPERATE_INFOMATION_DESCRIBE, POSSESS_SHAREHOLDING, OPERATE_ADDRESS, YEAR_AVG_INCOME, BEGIN_OPERATION_TIME, EMPLOYEES_AMOUNT, LEGAL_PERSON_NAME, LEGAL_PERSON_CRD_NUMBER, OPERATE_CRD_NUMBER, UPDATE_TIME)
values (8, 13, '是一份资产的信息', 0.70, '北京市朝阳区百子湾', '1000000', to_date('10-09-1999', 'dd-mm-yyyy'), 40, 'heihei', '15678445645', '15678445645', to_date('15-12-2015 10:09:24', 'dd-mm-yyyy hh24:mi:ss'));
insert into F_OPERATION (ID, CLIENT_ID, OPERATE_INFOMATION_DESCRIBE, POSSESS_SHAREHOLDING, OPERATE_ADDRESS, YEAR_AVG_INCOME, BEGIN_OPERATION_TIME, EMPLOYEES_AMOUNT, LEGAL_PERSON_NAME, LEGAL_PERSON_CRD_NUMBER, OPERATE_CRD_NUMBER, UPDATE_TIME)
values (9, 4, '是一份资产的信息', 1.00, '北京市海淀区东北旺', '1000000', to_date('10-09-1999', 'dd-mm-yyyy'), 80, 'hahaha', '15098239749', '15098239749', to_date('15-12-2015 10:09:24', 'dd-mm-yyyy hh24:mi:ss'));
3)字段属性
//资产编号
private Integer id;
//用户编号
private Integer client_id;
//资产信息描述
private String operate_infomation_describe;
//持股比例
private Integer possess_sharholding;
//经营地址
private String operate_address;
//年收入
private String year_avg_income;
//开始经营日期
private Date begin_operation_time;
//员工总数
private Integer employees_amount;
//法人姓名
private String legal_person_name;
//法人证件号码
private String legal_person_crd_number;
//经营证件号码
private String operate_crd_number;
//更新时间
private Date update_time;
(4)资产表
1)创建资产表
--F_ASSET :经营信息资产表
CREATE TABLE F_ASSET(
ID NUMBER(12) PRIMARY KEY,--资产编号
OPERATION_ID NUMBER(12) REFERENCES F_OPERATION(ID),--经营信息id
ASSET_NAME VARCHAR2(20) NOT NULL,--资产名称
ASSET_DESCRIBE VARCHAR2(150),--资产简介
ASSET_ADDRESS VARCHAR2(150) NOT NULL,--资产所在地
ASSET_CREDENTIALS_NAME VARCHAR2(50) NOT NULL,--
ASSET_CREDENTIALS_NUMBER VARCHAR2(50) NOT NULL,
ASSET_MARKET_VALUATION NUMBER(12,2) NOT NULL,
PLEDGE NUMBER(1) NOT NULL,
UPDATE_TIME DATE NOT NULL--更新日期
)
2)初始化数据
insert into f_asset values(1,1,'小米公司','雷军的公司,不是我的公司','中国.北京','我是资产我是资产','我是资产','1234542',1,sysdate);
insert into f_asset values(2,2,'百度','度娘的公司,不是我的公司','中国.北京','我是资产2我是资产','我2是资产','42323',1,sysdate);
insert into f_asset values(3,3,'谷哥','谷哥的公司,是','美国某某地','我是资产2为我是资产','我2为资产','4232323',1,sysdate);
insert into f_asset values(4,1,'华为','不雷军的公司,也不是我的公司','中国.北京','我是资产我是资产','我是资产','2321233',1,sysdate);
insert into f_asset values(5,2,'奇虎360','360杀毒公司,不是我的公司','中国.北京','我是资s产2我是资产','我2是资产','42321',1,sysdate);
insert into f_asset values(6,3,'Coolpad','Coolpad的公司,cool','未知地方','我是资是 是产','我2为资那就产','4232323',1,sysdate);
3)字段属性
private Integer id;
private Integer operation_id;
private String assetName;
private String assetDescribe;
private String assetAddress;
private String assetCredentialsName;
private String assetCredentialsNumber;
private DOUBLE assetMarketValuation;
private Integer pledge;
private Date updateTime;
(5)授权信息表
1)创建授权表
--用户资产授权信息表
CREATE TABLE F_CREDIT(
ID NUMBER(12) PRIMARY KEY,
ASSET_ID NUMBER(12) REFERENCES F_ASSET(ID),--资产信息id
NOW_CREDIT_LIMIT NUMBER(11,2) NOT NULL, --授权码
FROZEN_LIMIT NUMBER(11,2) NOT NULL, --授权信息码
UPDATE_TIME DATE NOT NULL
)
2)初始话数据
insert into F_CREDIT values(1,2,31120907,410825,sysdate);
insert into F_CREDIT values(2,1,31120904,411666,sysdate);
insert into F_CREDIT values(3,3,31120909,418888,sysdate);
3)字段属性
private int id;
private int assetId;
private int nowCreditLimit;
private int frozenLimit;
private Date updateTime;
3.一对一实现(resultType)
(1)业务描述
package cn.labelnet.pojo;
import java.util.Date;
/**
* 经营信息实体类
*
* 作者 :原明卓
* 时间 :2015年12月22日 上午9:22:57
* 包名 :cn.labelnet.pojo
* 描述 :TODO
*/
public class Operation {
//资产编号
private Integer id;
//用户编号
private Integer client_id;
//资产信息描述
private String operate_infomation_describe;
//持股比例
private Integer possess_sharholding;
//经营地址
private String operate_address;
//年收入
private String year_avg_income;
//开始经营日期
private Date begin_operation_time;
//员工总数
private Integer employees_amount;
//法人姓名
private String legal_person_name;
//法人证件号码
private String legal_person_crd_number;
//经营证件号码
private String operate_crd_number;
//更新时间
private Date update_time;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getClient_id() {
return client_id;
}
public void setClient_id(Integer client_id) {
this.client_id = client_id;
}
public String getOperate_infomation_describe() {
return operate_infomation_describe;
}
public void setOperate_infomation_describe(String operate_infomation_describe) {
this.operate_infomation_describe = operate_infomation_describe;
}
public Integer getPossess_sharholding() {
return possess_sharholding;
}
public void setPossess_sharholding(Integer possess_sharholding) {
this.possess_sharholding = possess_sharholding;
}
public String getOperate_address() {
return operate_address;
}
public void setOperate_address(String operate_address) {
this.operate_address = operate_address;
}
public String getYear_avg_income() {
return year_avg_income;
}
public void setYear_avg_income(String year_avg_income) {
this.year_avg_income = year_avg_income;
}
public Date getBegin_operation_time() {
return begin_operation_time;
}
public void setBegin_operation_time(Date begin_operation_time) {
this.begin_operation_time = begin_operation_time;
}
public Integer getEmployees_amount() {
return employees_amount;
}
public void setEmployees_amount(Integer employees_amount) {
this.employees_amount = employees_amount;
}
public String getLegal_person_name() {
return legal_person_name;
}
public void setLegal_person_name(String legal_person_name) {
this.legal_person_name = legal_person_name;
}
public String getLegal_person_crd_number() {
return legal_person_crd_number;
}
public void setLegal_person_crd_number(String legal_person_crd_number) {
this.legal_person_crd_number = legal_person_crd_number;
}
public String getOperate_crd_number() {
return operate_crd_number;
}
public void setOperate_crd_number(String operate_crd_number) {
this.operate_crd_number = operate_crd_number;
}
public Date getUpdate_time() {
return update_time;
}
public void setUpdate_time(Date update_time) {
this.update_time = update_time;
}
@Override
public String toString() {
return "Operation [id=" + id + ", client_id=" + client_id
+ ", operate_infomation_describe="
+ operate_infomation_describe + ", possess_sharholding="
+ possess_sharholding + ", operate_address=" + operate_address
+ ", year_avg_income=" + year_avg_income
+ ", begin_operation_time=" + begin_operation_time
+ ", employees_amount=" + employees_amount
+ ", legal_person_name=" + legal_person_name
+ ", legal_person_crd_number=" + legal_person_crd_number
+ ", operate_crd_number=" + operate_crd_number
+ ", update_time=" + update_time + "]";
}
}
import java.util.Date;
/**
* 客户信息实体类
*
* 作者 :原明卓
* 时间 :2015年12月22日 上午9:21:51
* 包名 :cn.labelnet.pojo
* 描述 :TODO
*/
public class Client {
//用户编号
private Integer id;
//用户姓名
private String username;
//证件号码
private String client_certificate_no;
//出生日期
private Date bron_date;
//家庭住址
private String family_register_address;
//现在住址
private String now_address;
//联系方式
private String contact_mode;
//紧急联系方式
private String urgency_contact_mode;
//创建时间
private Date create_date;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getClient_certificate_no() {
return client_certificate_no;
}
public void setClient_certificate_no(String client_certificate_no) {
this.client_certificate_no = client_certificate_no;
}
public Date getBron_date() {
return bron_date;
}
public void setBron_date(Date bron_date) {
this.bron_date = bron_date;
}
public String getFamily_register_address() {
return family_register_address;
}
public void setFamily_register_address(String family_register_address) {
this.family_register_address = family_register_address;
}
public String getNow_address() {
return now_address;
}
public void setNow_address(String now_address) {
this.now_address = now_address;
}
public String getContact_mode() {
return contact_mode;
}
public void setContact_mode(String contact_mode) {
this.contact_mode = contact_mode;
}
public String getUrgency_contact_mode() {
return urgency_contact_mode;
}
public void setUrgency_contact_mode(String urgency_contact_mode) {
this.urgency_contact_mode = urgency_contact_mode;
}
public Date getCreate_date() {
return create_date;
}
public void setCreate_date(Date create_date) {
this.create_date = create_date;
}
@Override
public String toString() {
return "Client [id=" + id + ", username=" + username
+ ", client_certificate_no=" + client_certificate_no
+ ", bron_date=" + bron_date + ", family_register_address="
+ family_register_address + ", now_address=" + now_address
+ ", contact_mode=" + contact_mode + ", urgency_contact_mode="
+ urgency_contact_mode + ", create_date=" + create_date + "]";
}
}
package cn.labelnet.pojo;
import java.util.Date;
/**
* 经营信息扩展类,满足查询语句 :
* select fo.*,fc.username,fc.born_date,fc.family_register_address from f_operation fo,f_client fc where fo.client_id=fc.id;
* 经营信息的所有信息和客户的姓名,生日,家庭住址
* 描述: TODO
* 作者 :原明卓
* 时间 :2015年12月23日 上午10:36:04
* 版本 :1.0
*/
public class OperationCustion extends Operation{
/* fc.username,
fc.born_date,
fc.family_register_address
*/
private String username;
private Date born_date;
private String family_register_address;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getBorn_date() {
return born_date;
}
public void setBorn_date(Date born_date) {
this.born_date = born_date;
}
public String getFamily_register_address() {
return family_register_address;
}
public void setFamily_register_address(String family_register_address) {
this.family_register_address = family_register_address;
}
@Override
public String toString() {
return "OperationCustion [username=" + username + ", born_date="
+ born_date + ", family_register_address="
+ family_register_address + "]";
}
}
(2)Mapper.xml 之 reusltType 实现
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 经营信息的mapper -->
<mapper namespace="cn.labelnet.mapper.OperationMapper">
<!-- 业务 : 查询经营信息及其经营者的姓名,生日,家庭住址 一对一查询 使用resultType实现 -->
<select id="findOPerationClient" resultType="cn.labelnet.pojo.OperationCustion">
select
fo.*,
fc.username,
fc.born_date,
fc.family_register_address
from
f_operation fo,
f_client fc
where
fo.client_id=fc.id
</select>
</mapper>
(3)Mapper.java 实现
public List<OperationCustion> findOPerationClient() throws Exception;
(4)测试
private SqlSessionFactory sqlFactory;
@Before
public void setUp() throws Exception {
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
sqlFactory=new SqlSessionFactoryBuilder().build(is);
}
@Test
public void testFindOPerationClient() throws Exception {
SqlSession session=sqlFactory.openSession();
OperationMapper om = session.getMapper(OperationMapper.class);
List<OperationCustion> list = om.findOPerationClient();
System.out.println(list);
}
(5)结果
4.总结
下篇继续一对一之 resultMap 实现, 一对多,多对多,延迟加载实现,Demo将在下篇免积分分享出来;