JDBC->MyBatis->Spring

JDBC

什么是JDBC

  • Java Database Connectivity
  • 一套规范、接口或者说是Java API ,java数据库连接工具

原生JDBC链接数据库的流程

  • 加载数据库驱动: Class.forName("com.mysql.jdbc.Driver");
  • 获取链接: Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1","root","root");
  • 根据SQL获取sql会话对象: Statement stmt = conn.createStatement();PrepareStatement prestmt = conn.prepareStatement(sql语句);
  • 根据会话,处理结果集: ResultSet rs = stmt.executeQuery(sql语句);ResultSet rs = prestmt.executeQuery();
  • 关闭结果集、会话、连接:rs.close(); stmet.close(); conn.close();
    • JDBC事务处理
      • 开启事务:connection.autoCommit(false);
      • 提交事务:conn.commit();
      • 回滚事务:conn.rollbacl();

原生JDBC访问数据库

Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db2","root","123456");
//PreparedStatement preparedStatement = connection.prepareStatement("select * from user");
//ResultSet resultSet = preparedStatement.executeQuery();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from user");

while (resultSet.next()){
    System.out.print(resultSet.getString("id")+",");
    System.out.print(resultSet.getString("username")+",");
    System.out.println(resultSet.getString("email"));
}

MyBatis

什么是MyBatis

  • mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
  • mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。
  • 最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。

MyBatis使用流程-Maven

  • 添加 mybatis 依赖,mysql 依赖
  • 配置 MyBatisConfig.xml 核心配置文件->配置log4j、连接数据源、映射路径等
  • 编写映射接口->dao
  • 编写映射配置文件或配置注解->mapper接口代理
  • 测试代理
    • 加载核心配置文件: InputStream is = Resource.getResourceAsStream(配置文件路径);
    • 获取 SqlSessionFactory 对象: SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
    • 通过 SqlSessionFactory 获取 SqlSession 对象: SqlSession sqlSession = sqlSessionFactory.openSession(true);
    • 获取 Mapper 接口对象: XXXDao mapper = sqlSession.getMapper(xxxDao.class)
    • 通过获取的 Mapper 接口对象调用方法,返回结果: mapper.findAll();

Spring

什么是Spring

  • Spring 是一个开源的轻量级的IOC和AOP容器框架
  • 简化企业开发,只需关心业务需求
  • 常见配置方式:xml配置,注解
  • 组成模块:
    • Spring-core :核心类库,提供 IOC 服务
    • Spring-context : 提供框架式的 Bean 访问方式,以及企业级功能(JNDI、定时任务等)
    • Spring-AOP : AOP 服务
    • Spring-DAP : 对 JDBC 抽象,简化了数据访问的异常处理
    • Spring-ORM : 对现有的 ORM 框架的支持
    • Spring-Web : 提供了基本的面向 Web 的综合特征,例如多方文件上传
    • Spring-MVC : 提供面向 Web 应用的 Model-View-Controller 实现
posted @ 2020-09-20 21:38  德华。  阅读(204)  评论(0编辑  收藏  举报