JDBC的理解以及粗略介绍
@TOC数据库连接以及连接池的一些微小的理解《第一部分》
数据库连接从最基本的JDBC开始:
什么是JDBC?
1 】JDBC全称java database Connectivity 就是java数据库连接,是一种用于执行SQL的java的API。
2】 他是由一组用java语言编写的类和接口组成。
3】他提供了一种基准,在此基础上可以编写更高级的工具和接口。
4】最直接的一点就是使数据库开发人员能够编写数据库应用程序。
JDBC的创建方式?
1】首先加载驱动:
Class.forName("com.mysql.cj.jdbc.Driver");
这里的参数是
如图所示的jar包中的类,通过反射的方式,不用关心是否初始化,只需要一个字符串就可以获取字节码文件,并且创建对象。获取其变量,方法,参数,修饰符,构造器 。即使其私有化也是可以获取。
图示的jar包中的类就是数据库厂商提供给我们的驱动类,我们获取驱动类并且使用其提供的方法等
2】创建连接
String url="jdbc:mysql://localhost:3306/java?serverTimezone=UTC";
String user = "root";
String password = "root";
Connection connection =
DriverManager.getConnection(url,user,password);
在参数中
1 jdbc【这是jdbc连接的声明】
2 mysql【这是当前数据库使用的声明】
3 localhost:3306【IP地址+端口号】
4 java【是数据库的名】
5 ?serverTimezone=UTC【如果不加上这个有时会报错,主要原因是数据库在开发的时候地区不在亚洲地区,所以系统默认的时间是美洲时区的时间,比中国时间差8个小时,系统会报错,因此需要手动的声明】
DriverManager:是一个驱动管理类;
而在JDBC的规范中要求Driver类必须在DriverManager的使用前注册自己,注册过程在Driver的静态代码块已经实现了,即在类被加载的时候就会完成像驱动管理器的注册。
见Driver的源代码
public class Driver extends NonRegisteringDriver implements java.sql.Driver{
static{
try{
java.sql.DriverManager.registerDriver(new Driver());
}catch(SQLException e){
throw nrew RuntimeException("Can't register driver")
}
}
}
3】创建SQL编译器
Statement statement = connection,CreatStatement();
编译器分为两种,一个是statement另外一个是preparedstatement,其中preparedstatement是预编译器,使用它可以在一定程度上防止SQL注入。
4】开始编译SQL
String sql = "sql语句";
statement.execute(sql)//**第一种**
statement.executeupdate(sql);//**第二种**
statement.executequery(sql);//**第三种**
第一种可以执行增删改查,返回值为true和false,当返回值为true是说明执行的是查找操作,当返回值是false时说明执行的增删改操作。
第二种可以执行增删改查,返回的是int类型,当执行数值为0的时候说明执行失败,当不是0的时候说明执行成功,返回的是受影响的行数。
第三种可以执行查询操作,返回值是一个resultset集合
5】关闭流
statement.colse();
connection.close();
总结:以上为对JDBC的个人的一点点小的理解,写下来希望能让自己理解更好,加油。如有错误希望各位哥哥姐姐批评指正。