• 个人笔记


    JDBC操作
    固定6个步骤
    1.注册驱动【源码装入内存
    2.建立数据库连接
    3.获取一个Statement对象
    4.执行sql语句
    5.处理结果集【如果有的话】
    比较繁琐
    用户自己提取数据 封装处理
    6.释放资源

    结论:
    1.jdbc操作固定6步骤 代码复用率太低 重复动作
    2.结果集处理 过于繁琐
    核心【Mapping 映射】
    查询 表 --> 对象

    drop table student;
    create table student(
    id number primary key,
    name varchar2(30) not null,
    age number,
    birthday date
    );
    insert into student
    values(1,'tom',21,'12-9月-19');
    commit;

    SSM SSH
    有了Mybatis Hib

    Mybatis框架
    工具 包含很多简单的方法【底层通过jdbc实现功能】
    前提: 按照规范来使用 框架

    学习 使用的规范
    增删改查

    引入单元测试jar包
    junit4.7.jar

    main方法中 运行
    数据库操作

    1.导入jar包
    2.方法上 添加@Test注解
    选中 函数名,右键Run As -- JUnit运行


    导入jar包
    mybatis-3.3.0.jar junit-4.7.jar
    ojdbc14.jar log4j-1.2.17.jar[配置]

    表students 类com.briup.pojo.Student

    搭建Mybatis开发环境
    1.准备配置文件 mybatis-config.xml
    四要素
    2.映射文件 XxxMapper.xml
    sql语句
    3.映射接口 XxxMapper.java
    对应的方法
    4.测试文件
    XxxTest.java

    通过mybatis实现数据库操作固定步骤
    1.获取sqlSession工厂对象
    2.获取sqlSession对象
    3.获取mapper对象
    4.通过mapper对象调用接口方法,执行sql语句,实现功能

    sql语句的书写规范


    **************************************
    day2课堂笔记

    1.简单封装sqlSession的获取
    MyBatisSqlSessionFactory

    2.mybatis底层实现原理:
    Preparing:
    update students set name=?,email=?,dob=? where stud_id=?
    Parameters:
    jack(String), jack@qq.com(String), 2019-09-03 09:51:43.196(Timestamp), 2(Integer)
    Updates: 1

    结论:
    Mybatis底层 借助JDBC实现功能
    PreparedStatement对象完成 sql语句的执行

    3.入门案例升级
    insert 自动生成主键列
    oracle中借助序列来实现
    mysql支持主键自动增长

    序列的创建和使用
    drop sequence stu_seq;
    create sequence stu_seq;

    select stu_seq.nextval
    from dual;
    select stu_seq.currval
    from dual;

    4.mybatis-config.xml具体配置
    1.dtd约束
    xml文件两种约束: dtd schame
    mybatis-3-config.dtd
    规定了xml文件中可以出现什么标签,标签中可以出现什么属性

    添加约束文件后,书写xml标签时必须遵循规范,否则出差!

    2.配置本地的dtd文件约束
    就算断网、网上dtd文件资源失效|删除,约束依旧生效

    别名的声明
    <typeAliases>
    <!--
    为单个类声明别名
    <typeAlias alias="Student" type="com.briup.pojo.Student" /> -->

    <!-- 声明指定包下面所有自定义类型别名为 类名,往往配合
    @Alias("别名")
    class 类
    -->
    <package name="com.briup.pojo"/>

    </typeAliases>

    5.mybatis内置类型转换器
    自动转换 数据库类型 -- Java数据类型
    4类8种基本数据类型
    String Date Timestamp ...

    但是,用户自定义数据类型,无法直接和数据库类型进行转换
    比如:
    private PhoneNumber phone;
    phone varchar2(50);

    通过用户自定义类型转换器,解决 自定义类型和数据库类型的转换

    1.修改表结构
    2.添加PhoneNumber类,修改Student类
    3.定义类型转换器
    4.做好配置

    ********************

  • 相关阅读:
    程序员的自我修养---------一个程序员应该懂点什么
    Duilib的圆环形 进度条 实现(网易云信版本)
    位定义,用于判断是否包含某属性
    Duilib的圆角矩形 抗锯齿优化 弥补RoundRect不足(网易云信borderround版本)
    exe、msi、dos、bat等静默运行,后台运行,不弹窗的解决办法
    删除桌面上有文件但提示项目不存在的方法
    MyBatis插入语句返回主键值
    django学习之Model(二)
    TCP三四次握手
    django学习之Model(一)
  • 原文地址:https://www.cnblogs.com/Diyo/p/11453672.html
Copyright © 2020-2023  润新知