本文共 1717 字,大约阅读时间需要 5 分钟。
一、jdbc 连接数据库步骤:
1、注册驱动
告知JVM使用的是哪一个数据库的驱动。
2、获得数据库连接
使用jdbc中的类,完成对MySQL数据库的连接。
3、获得语句执行平台
通过连接对象获取对SQL语句执行者对象。
4、执行SQL语句
使用执行者对象,向数据库执行SQL语句。获取到数据库执行后的结果。
5、处理结果
6、释放资源
一、注册驱动:
使用的是java.sql.DriverManager类静态方法registerDriver(Driver driver)
Driver是一个接口,参数传递,MySQL驱动程序中的实现类
本来代码是这样的:
DreiverManager.registerDriver(new Driver());
但是由于源代码中有了这句,相当于注册了两次,再重复就有点浪费资源了。所以这里用到了一个反射技术Class.forName()将驱动类加入到内容。
正确代码:
Class.forName("com.mysql.jdbc.Driver");
二、获得数据库的连接
使用DriverManager类中静态方法
static Connection getConnection(String url,String user, String password)
返回值是Connection接口的实现类,在mysql驱动程序
url:数据库地址 "jdbc:mysql://localhost:3306/mybase";
String url=""
String name="root"数据库链接名
String password="密码" 数据库密码
Connection con=DriverManager.getConnection(url,username,password);
三、获取语句执行平台,通过数据库连接对象,获取到SQL语句的执行者对象
con对象调用方法 Statement CreateStatement() 获得Statement对象,将SQL语句发送到数据库
返回值为Statement接口的实现类对象,在mysql驱动程序中
代码:
Statement stat =con.createStatement();
四、执行SQL语句
通过执行者对象调用方法执行SQL语句,获得结果
int executeUpdate(String sql) 执行数据库中SQL语句,insert,delete,update
返回值 int,操作成功数据表多少行
int row= stat.executeUpdate("")
但是如何查询呢?
调用方法executeQuery(String sql);
返回值ResultSet接口的实现类对象,实现类在mysql驱动中。
ResultSet rs=stat.executeQuery(sql);
可以用方法executeQuery();
六、释放资源一堆close()
stat.close()
con.close();
七、使用Statement接口的弊端:
使用Statement传送数据库语句会会引起数据库注入攻击,不过Statement接口的子接口PrepareStatement接口可以有效防止注入攻击。现在一般用PrepareStatement接口来传送sql语句。
这是sql注入攻击:
String sql ="Select * from users where username=? and password=?"
用prepareStatement 一般用占位符?表示要传递的值。
PrepareStatement pst=con.prepareStatement(sql);
pst.setObject(1,user)
pst.setObject(2,pass)
通过set方法将输入的username和password。
ResultSet rs=pst.executeQuery();
在executeQuery()里不写任何东西和Statement传sql语句不同。因为前面对象已经写过了,就不必写了。
转载地址:https://blog.csdn.net/qq_33322074/article/details/79234111 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!