您的位置:首页 > 数据库

jdbc连接数据库代码理解

2018-02-01 22:59 211 查看
一、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语句不同。因为前面对象已经写过了,就不必写了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jdbc mysql java