1.JDBC使用步骤?

1、加载JDBC驱动程序。
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。成功加载后,会将Driver类的实例注册到DriverManager类中。

2、提供JDBC连接的URL。

连接URL定义了连接数据库时的协议、子协议、数据源标识。
书写形式:协议:子协议:数据源标识。
3、创建数据库的连接。

要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, 该对象就代表一个数据库的连接。
使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 密码来获得。
4、创建一个Statement,要执行SQL语句,必须获得java.sql.Statement实例。
Statement实例分为以下3 种类型:
(1)执行静态SQL语句。通常通过Statement实例实现。
(2)执行动态SQL语句。通常通过PreparedStatement实例实现。
(3)执行数据库存储过程。通常通过CallableStatement实例实现。
5、执行SQL语句。
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 和execute

6、处理两种情况的结果。
(1)执行更新返回的是本次操作影响到的记录数。
(2)执行查询返回的结果是一个ResultSet对象。
ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 行中数据的访问。
使用结果集(ResultSet)对象的访问方法获取数据。
7、关闭JDBC对象(关闭结果集—>关闭数据库操作对象—>关闭连接)。
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:
(1)关闭记录集。
(2)关闭声明。
(3)关闭连接对象。


2.Mybatis多参数处理方案?

1. 利用参数出现的顺序

2.使用注解需要使用到mybatis @Param注解

3.使用map 需要map的键和#{内容}里面的内容一致

4.把参数封装在Javabean中


3.Mybatis的动态SQL和实现批处理?

  • if
  • choose (when, otherwise)
  • trim (where, set)
  • foreach

使用Mapper.xml实现批处理


4.Mybatis的#和$的区别?

传入的参数在SQL中显示为字符串,#方式能够很大程度防止sql注入;
$传入的参数在SqL中直接显示为传入的值,$方式无法防止Sql注入。


5.Mybatis的缓存策略和懒加载?

什么是缓存?
答:程序经常要调用的对象存储在内存中,方便其使用时可以快速调用,不必去数据库或者其他持久化设备中查询,主要就是提高性能。

什么是懒加载: 按需加载,先从单表查询,需要时再从关联表去关联查询,能大大提高数据库性能,但并不是所有场景下使用懒加载都能提高效率。
Mybatis懒加载: resultMap里面的association、collection有延迟加载功能。

6. Mybatis 常用的注解

@insert

实现新增

@update

实现更新

@delete

实现删除

@select

实现查询

@Result

实现结果封装

@Results

可以与@Result一起使用 实现多个结果封装

@ResultMap

实现引用@Results 定义的封装

@One

实现一对一结果集封装

@Many

实现一对多结果集封装

@SelectProvider

实现动态sql映射