JDBC详解 --------> 部分MyBatis进阶 总结

                                                   目录

JDBC部分

idea连接Mysql

JDBC API详解

DriverManager

Connection 

 statement

ResultSet

 PreparedStatement

 数据库连接池

Driud使用步骤

MyBatis部分

 Mapper代理开发

JDBC部分

idea连接Mysql

public class JDBCDemo{
public static void main(String[ ] args) throws Exception {
//1.注册驱动
// class.forName ( "com.mysql.jdbc .Driver" ) ;
//2.获取连接:如果连接的是本机mysql并且端口是默认的3306可以简化书写string url =. "jdbc : mysql:/lldb1?usesSL=false";
string username = "root";
string password = "1234";
//3.定义sql
Connection conn = DriverManager.getConnection(url,username,password);  
// 4.获取执行sql的对象
string sql = "update account set money = 2000 where id = 1";
//5.执行sql
Statement  statement stmt = conn.createstatement();
//受影啊的行数
int count = stmt.executeUpdate(sql);
//6.处理结果
system.out.println(count);
//7.释放资源
stmt.close();
conn.close();
}
  • public static Connection getConnection(String url, String user, String password) throws SQLException
    • 尝试建立与给定数据库URL的连接。 DriverManager尝试从一组已注册的JDBC驱动程序中选择适当的驱动程序。

      注意:如果userpassword财产也被指定为部分url ,它是实现定义哪个值将优先考虑。 为了最大可移植性,应用程序应仅指定一次属性。

      url - 形式为 jdbc:subprotocol:subname的数据库网址

    • 语法: jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2...示例: jdbc:mysql://127.0.0.1:3306/db1
      细节:
      ·如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写为: jdbc:mysq!l数据库名称?参数键值对配置useSSL=false参数,禁用安全连接方式,解决警告提示

      user - 正在连接的数据库用户

      password - 用户密码

    • 异常

      SQLException - 如果发生数据库访问错误或url是 null

      SQLTimeoutException - 当驱动程序确定已经超过了 setLoginTimeout方法指定的超时值,并且至少尝试取消当前的数据库连接尝试。

JDBC API详解

DriverManager

DriverManager的功能作用:

1.注册驱动。2.获取数据库的连接。

用于管理一组JDBC驱动程序的基本服务。
注意: JDBC2.o API中新增的DataSource接口提供了另一种连接到数据源的方法。使用DataSource对象是连接到数据源的首选方法。
作为其初始化的一部分,Driveranager类将尝试加载在"idlbc.drivers"系统属性中引用的驱动程序类。这允许用户自定义应用程序使用的JDBC驱动程序。例如在一/ .hotjava / properties文件中,您可以指定:
jdbc.drivers=foo.bah .Driver : wombat.sql.Driver:bad.taste.ourDriver
Driveranager方法getConnection和getDrivers已得到增强,以支持Java Standard Edition ServiceProvider机制。

JDBC4.0驱动程序必须包含文件NETA-IMF/services/java.sq1.Driver。

该文件包含java.sql.Driver的JDBC驱动程序实现的java.sq1l.Driver。

例如,要加载my .sq1.Driver类,NETA-INF/services/java.sql.Driver文件将包含条目:  my.sql.Driver 应用程序不再需要使用Class .forName( )显式加载JDBC驱动程序。

目前使用加载JDBC驱动程序的现有程序Class . forName( )将继续无需修改工作。
当调用方法getConnection时,Driverlanager将尝试从初始化中加载的驱动程序中找到合适的驱动程序,并使用与当前小程序或应用程序相同的类加载器显式加载驱动程序。

Connection 

1.获取执行SQL的对象

2.管理事务

与特定数据库的连接(会话)。执行SQL语句并在连接的上下文中返回结果。
Conection对象的数据库能够提供措述其表,其支持的SQL语法,其存储过程,此连接的功能等的信息。该信息是用getMetaData方法获得的。


注意:配置Connection时,JDBC应用程序应使用适当的Coection方法,例如setAutoCcommit或setTransactionIsolation。

当有JDBC方法可用时,应用程序不应直接调用SQL命令来更改连接的配置。默认情况下,Connection对象处于自动提交模式,这意味着它在执行每个语句后自动提交更改。如果自动提交模式已禁用,必须显式调用方法commit才能提交更改;否则数据库更改将不会被保存。
使用JDBC2.1核心API创建的新的Conection对象具有与之关联的最初为空的类型映射。

用户可以在此类型地图中输入UDT的自定义映射。当UDT从数据源中检索该方法ResultSet.getObject,所达getObject方法将检查连接的类型映射,以查看是否存在对UDT中的条目。如果是这样, getObject方法会将UDT映射到指定的类。如果没有条目,将使用标准映射映射UDT。
用户可以创建一个新的类型映射,它是一个java.util.Map对象,在其中创建一个条目,并将其传递给可以执行自定义映射的java .sql方法。在这种情况下,该方法将使用给定的类型映射,而不是与该连接关联的映射。例如,以下代码片段指定SQL类型ATHLETES将映射到Jav a编程语言中的类Athletes a的代码片段检索类型映射为Connection对象con,插入进入它,然后设置型地图与所述新的条目作为连接的类型映射。

JDBC详解 --------> 部分MyBatis进阶 总结_第1张图片JDBC详解 --------> 部分MyBatis进阶 总结_第2张图片

 statement

JDBC详解 --------> 部分MyBatis进阶 总结_第3张图片DDL(Data Definition Language)语句: 数据定义语言,主要是进行定义/改变表的结构、数据类型、表之间的链接等操作。常用的语句关键字有 CREATE、DROP、ALTER 等。

DML(Data Manipulation Language)语句: 数据操纵语言,主要是对数据进行增加、删除、修改操作。常用的语句关键字有 INSERT、UPDATE、DELETE 等。                               

DQL(Data Query Language)语句:数据查询语言,主要是对数据进行查询操作。常用关键字有 SELECT、FROM、WHERE 等。                                                                         

DCL(Data Control Language)语句: 数据控制语言,主要是用来设置/更改数据库用户权限。常用关键字有 GRANT、REVOKE 等。一般人员很少用到DCL语句。

ResultSet

JDBC详解 --------> 部分MyBatis进阶 总结_第4张图片

 PreparedStatement

 PreparedStatement作用:
1.预编译SQL语句并执行:预防SQL注入问题
SQL注入:是通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法。
JDBC详解 --------> 部分MyBatis进阶 总结_第5张图片

JDBC详解 --------> 部分MyBatis进阶 总结_第6张图片

 数据库连接池

JDBC详解 --------> 部分MyBatis进阶 总结_第7张图片

数据库连接池是个容器,负责分配、管理数据库连接(Connection)
它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。

优点:
资源重用。
提升系统响应速度。                                                                                                                          避免数据库连接遗漏。

数据库连接池实现。标准接口:IDataSource
·官方(SUN)提供的数据库连接池标准接口,由第三方组织实现此接口。

功能:获取连接
Connection getConnection()
.常见的数据库连接池:
. DBCP
. C3PO. 
. Druid(德鲁伊)
. Druid连接池是阿里巴巴开源的数据库连接池项目。功能强大,性能优秀,是Java语言最好的数据库连接池之一


Driud使用步骤

1.导入jar包druid-1.1.12.jar                                                                                                                  2.定义配置文件 
3.加载配置文件
4.获取数据库连接池对象                                 。                                                                              5.获取连接 

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

MyBatis部分

什么是MyBatis?
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

                                    最好的学习方式就是看官网: mybatis – MyBatis 3 | 简介

                                    最好的学习方式就是看官网: mybatis – MyBatis 3 | 简介


有关JavaEE三层架构(原文链接:https://blog.csdn.net/Archer__13/article/details/123450160

客户端:发送请求【工程路径/资源路径】给服务器。

服务器:处理客户端的请求,把结果响应给客户端,由以下三部分组成:

1.表现层:采用MVC模式。

               M称为模型,也就是实体类。用于数据的封装和数据的传输。

               V为视图,也就是GUI组件,用于数据的展示。

               C为控制,也就是事件,用于流程的控制。

2.Service业务层(Spring)包括:①处理业务;②调用DAO持久层将数据保存到数据库。    业务层接口的设计原则:一个实体类一个接口,一次提交一个业务方法。业务方法的参数来自表现层。

3.Dao持久层(JDBC):只负责跟数据库交互。持久层接口的设计原则:一个实体类一个接口,一次数据库操作一个持久方法。采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个类对应哪个表,哪个属性对应哪个列。持久层的目的就是,完成对象数据和关系数据的转换。

 客户端发送请求 → Web层(Servlet程序) → Service业务层 → Dao层(JDBC) → 数据库

                  ① 客户端发送请求

                  ② 服务器的Web层使用Servlet程序接收请求,其中Servlet程序调用Service层执行请求

                  ③ 服务器的Service层编写处理请求的具体算法,如果需要操作数据库,则调用DAO层

                  ④ 服务器的Dao层通过JDBC连接并操作数据库。

                  ⑤ 执行完请求后,服务器的Web层将响应的数据返回给客户端。  

1.定义POJO类
2. 加载核心配置文件,获取 SqlSessionFactory对象                                                                    . 3.获取SqlSession对象,执行SQL语句
4.释放资源JDBC详解 --------> 部分MyBatis进阶 总结_第8张图片

 Mapper代理开发


目的
解决原生方式中的硬编码
简化后期执行SQL

JDBC详解 --------> 部分MyBatis进阶 总结_第9张图片

 

 mybatis看这一篇就够了,简单全面一发入魂_抠脚的大灰狼的博客-CSDN博客_mybatis看这一篇

你可能感兴趣的:(mybatis,java,数据库)