Mybits

Mybits

corejava  ooad   xml   oracle

jdbc–mybatis(jdbc封装,框架)

web项目中的客户端技术:html/css/js/jquery

web项目中的服务端技术:servlet/jsp

mybatis

spring/springmvc

框架:封装了jdbc

jdbc:和数据库进行交互(增删改查)

6大步骤:

1.注册驱动

2.获取连接

3.获取statement对象

4.执行sql语句

5.如果有结果集,处理之

6.关闭资源。

jdbc的封装:

ConnectionFactory

Connection:步骤固定的

Statement(sql)

PreparedStatement(sql,obj)

students(stud_id,name,email,dob)

studId,name,email,dob

//创建一个对象

Student s = new Student(1,"",);

//工具类,调用save(对象),对象保存到对应的数据表中去

ORMUtil util = new ORMUtil();

util.save(s);

信息:insert into tableName(colNames) values(??s);

1.哪种类型-- 对应哪张表

2.属性    – 字段

配置xml

jdbc–封装–ORM—ORM框架(hibernate,mybatis)

简化,

hibernate(sql语句自动生成,笨重)

mybatis(sql语句由自己编写,灵活)轻量级

ORM:对象关系映射Object relational mapping

面对对象的  关系型数据库

程序中的对象自动持久化到关系型数据库中

通过映射一个持久化类–一张关系型数据库中的表

类中的每个属性–表中的每个字段

类的实例–表中的一条/行 记录

持久化层:数据库交互相关

Mapper:映射器

Mybatis

1. Mybatis的入门/概述

2.Mybatis的配置文件的配置和使用

3. Mybatis的映射文件的配置和使用/映射接口

4. 单表中的配置和使用:增删改查

5. 多表的配置和使用   1:1  1:n n:m

6. Mybatis的动态sql的配置和使用

配置文件:类型别名

Mybatis:

1. jar包(mybatis的核心功能)

2. 配置文件(给类型别名,数据库连接信息等,映射文件)mybatis-config.xml

3. 映射文件:列出来要执行的所有SQL语句的列表,标签中的id属性

StduentMapper.xml   :Student

StudentMapper.java{

void insertStudent(Student s);

}

insert into students(stud_id,name)

values(#{studId},#{name});

4. 配置文件:要执行的各个方法,方法名对应映射文件标签中的id属性

项目中引入mybatis的核心包以及可选的依赖包

必须的包  mybatis-3.3.0.jar    ojdbc14.jar

可选的包  junit-4.7.jar        log4j-1.2.17.jar

mybatis的功能insert:

1.jar(mybatis的核心功能)

2.配置文件(数据库连接的4个信息)

mybatis-config.xml

----映射文件

3.映射文件:mapper

(列出来要执行的所有sql语句:标签)

StduentMapper.xml   :Student

StudentMapper.java{

void insertStudent(Student s);

}

insert into students(stu_id,name)

values(#{stuId},#{name});

4.映射接口,持久化类

5.测试:SqlSession

1.读取mybatis-config.xml

2.创建sqlSessionFactory工厂对象

3.获取SqlSession对象

4.动态获取映射接口的实现类对象

StudentMapper mapper =sqlSession.getMapper(StudentMapper.class);

5.执行实现类(接口(映射文件))中的方法

mapper.insertStudent(new Student(,));

6.提交事务(默认不提交,需手动提交)

sqlSession.commit;

程序中的对象  持久化 保存到数据库

数据库   查到的对象–应该创建初始化  对象

attribute

property

Student{

private Integer studId;//attribute

get/setter ;//property

}

Oracle中的列名不区分大小写

DOCTYPE:声明

mapper:配置映射文件的根元素/根标签,名称为mapper

PUBLIC:公共的   SYSTEM:本地的,系统的

“-//mybatis.org//DTD Mapper 3.0//EN”:公共资源标识符 (组织,文件类型,版本,语言)

-表示未通过ISO(国际标准化组织)的校验;+表示通过了ISO的校验

mybatis的配置详解

1.连接数据库的4个信息

driver url username password

dataSource–property

–type:数据源连接池:分配,管理,释放

2.事务管理的方式

transactionManager

1.连接数据库的4个信息

2.事务管理的方式

1.连接数据库的4个信息

2.事务管理的方式

1.连接数据库的4个信息

2.事务管理的方式

//默认的环境 default

SqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

//统计明细的环境 cart

SqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream, “shoppingcart”);

//统计报表的环境 report

SqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream, “reports”);

The content of element type “configuration” must match

“(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,databaseIdProvider?,mappers?)”.


mybatis测试:增删改查       java,sql

配置文件:mybatis读取配置文件,生成SqlSessionFactory工厂对象—SqlSession

environments:数据库连接

transactionManager:事务管理方式(JDBC)

dataSource:数据源(连接池)

properties:声明变量,读取properties文件

typeAliases:类型起别名:映射文件中

参数类型:para…Type 返回数据类型:res…Type

typeHandlers:自定义的类型处理器

生成sql:ps.set???(parameter???)

返回结果集:???Type (一个字段的值)

settings元素: 全局参数设置

mappers元素: SQL映射,指定映射文件路径

映射文件:insert delete update

select:结果集映射(单表,多表(1:1,1:n,n:n)),resultMap


mybatis:

1.概述(持久层/dao层/数据访问层框架),jdbc

程序中的对象     持久化    关系型数据库

数据库中的数据  查询封装  程序中的对象

–与数据库交互相关。

2.配置文件–SqlSessionFactory

3.映射文件/接口

4.SqlSessionFactory—SqlSession–映射接口的实现类对象

映射文件详解:

insert:添加

delete

update

select:多种查询

resultMap:结果集的封装

–单表的配置操作,多表(1:1,1:n,n:m)的配置操作

student,PhoneNumber   students

–多表的配置和操作

数据库中的表:1:1,1:n,n:n

1:1

select

3中结果集封装

1.resultMap的基本映射

2.嵌套结果

对象的关联

3.嵌套查询

对象的关联

<select id=“findAddressById” parameterType=“int”

resultMap/Type=“Address”>

增删改:先后顺序

1:n


:ID

insert into()  values(#{addrss.})

findStudentById   resultMap–student

findAllStudents   resultMap–List

n:m

STUD_ID NAME    EMAIL           DOB            PHONE


4 ls      ls@briup.com    01-12月-17     100-101-102

map:HashMap

key:字段名   value:字段值

STUD_ID NAME    EMAIL           DOB            PHONE


4 ls      ls@briup.com    01-12月-17     100-101-102

5 tom5    5@briup.com     04-12月-17     100-110-101

3 tom3    333@briup.com   01-12月-17

6 tom5    5@briup.com     04-12月-17     100-110-101

7 tom5    5@briup.com     04-12月-17     100-110-101

8 tom5    5@briup.com     04-12月-17     100-110-101

List{

map{

key:第一条数据的第1个列,v:值

key:第一条数据的第2个列,v:值

}

map2{

}

}

注:association是关联的意思

元素被用来导入“有一个”(has-one)类型的关联。在上述的例子中,我们使用了元素引用了另外的在同一个XML文件中定义的。

同时我们也可以使用 定义内联的resultMap

注意:在一对多关系中,数据库建表的时候外键一定是在多的那一方建立.

元素被用来将多行课程结果映射成一个课程Course对象的一个集合。和一对一映射一样,我们可以使用【嵌套结果ResultMap】和【嵌套查询Select】语句两种方式映射实现一对多映射。

不论是一对一还是一对多还是多对多,都不能在mybatis中进行级联保存、更新、删除,我们需要使用sql语句控制每一步操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值