龙空技术网

JDBC保姆级入门分享

目元 97

前言:

眼前大家对“mysql数据库驱动jar包”大概比较讲究,兄弟们都想要分析一些“mysql数据库驱动jar包”的相关资讯。那么小编在网络上汇集了一些关于“mysql数据库驱动jar包””的相关文章,希望我们能喜欢,兄弟们一起来了解一下吧!

1、JDBC简介

概念:JDBC全称(Java DataBase Connectivity)Java数据库连接,通俗的讲就是Java语言通过连接数据库,从而达到对数据进行增、删、改、查的技术。

2、实现原理

市面上流行的关系型数据库有很多,比如说MySql、Oracle、SqlServer、DB2等等。由于这些数据库是由不同的公司开发的,所以要想做到连接数据库那么Java语言就需要为每款数据库都开发一套代码来操作相应的数据库,而这样做显而易见是不现实的。

为了能够统一的使用一套Java代码操作所有的关系型数据库,SUN公司开发了一个技术,就是JDBC。JDBC提供了一套操作所有关系型数据库的标准,即接口。由不同的厂商来写不同的是实现类来实现这个接口,也就是所谓的驱动程序,以此来实现Java操作数据库的能力。

3、JDBC操作步骤

JDBC在使用的时候非常简单,只需要通过简单的几个操作就可以连接上数据库并进行操作

JDBC操作数据库的步骤具体如下:

导入驱动jar包注册驱动获取数据库连接对象Connection定义要执行的SQL语句获取用来执行SQL语句的Statement对象或PreparedStatement对象调用方法执行SQL语句处理结果集释放资源4、JDBC具体步骤环境准备

首先准备一张表格,这里以student学生表为例

创建项目并导入驱动jar包

创建新项目

创建Web项目

输入项目名称

在web目录下创建lib目录,然后将准备好的mysql驱动jar包复制进去

在jar包点击右键,然后选择Add as Library,然后选择OK

注册驱动

//2、注册驱动Class.forName("com.mysql.jdbc.Driver");

注册驱动的作用是用来确定具体使用那款数据库,上图中的驱动是用来连接MySql的驱动类路径,不同的数据库类路径不同。具体可以参考下方字符串:

MySql: com.mysql.jdbc.Driver

Oracle: oracle.jdbc.driver.OracleDriver

SqlServer : com.microsoft.jdbc.sqlserver.SQLServerDriver

获取数据库连接对象

//3、获取数据库连接对象Connection  con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");

获取数据连接的方法为:

static Connection getConnection(String url,String user,String password);

url : 用来指定连接的路径,不同的数据库连接路径也是不同的,这里以MySql为例

user : 要连接数据库的用户名

password ; 要连接数据库的密码

定义要执行的SQL语句

//4、定义sql语句String  sql = "insert into student(stu_name,age,sex) values('小明',18,'男')";

定义一个字符串用来表示要执行的SQL语句

获取Statement对象

//5、获取执行SQL语句的Statement对象Statement  stmt = con.createStatement();

Statement对象是用来执行SQL语句的对象,在API当中封装了3类执行不同的SQL的方法,分别是:

1、boolean execute(String sql); 可以执行任意的SQL语句,返回值boolean,使用的不多,了解即可

2、int executeUpdate(String sql); 执行DML(insert、update、delete)语句、DDL(create、alter、drop)语句。这里的返回值int表示受影响的行数,可以通过判断这个行数来判断SQL是否执行成功。如果大于0,表示成功,反之表示失败。

3、ResultSet executeQuery(String sql); 执行DQL(select)语句

调用方法执行SQL语句

//6、调用方法执行SQL语句//如果是增、删、改操作调用executeUpdate方法,返回int值int count = stmt.executeUpdate(sql);  //如果是查询调用executeQuery()方法,返回ResultSet查询结果集ResultSet  rs = stmt.executeQuery(sql);
处理结果集

如果是增、删、改操作,因为返回的是int值,所以只需要判断返回的值是否大于0即可知道是否执行成功

//判断count的值是否大于0,如果大于0 表示成功,反之失败if (count > 0){      System.out.println("当前操作执行成功");}else{      System.out.println("当前操作执行失败");}

如果是查询操作,返回的是ResultSet查询结果集,它的作用是用来封装查询结果的。为了能够将查询的结果遍历出来,在API当中提供了一些方法供我们使用,具体如下:

1、boolean next(); 将光标从当前的位置向后移动一行,光标最初的位置位于第一行结果之前,第一次调用该方法时第一行成为当前行,第二次调用方法时第二行成为当前行,依次类推。如果光标所指向的行有数据则返回true,否则返回false

2、getXXX(参数) ; 该方法是用来获取数据的。

XXX表示数据类型,例如如果数据库中的类型是int,就可以使用getInt(),如果数据库中的类型字符串,就可以使用getString()

参数有两种形式,一种为int类型,代表列的编号,从1开始,通过编号可以获取指定列的数据;另一种为String类型,代表列的名称,通过传递指定的列的名称获取想要的数据

//遍历ResultSetwhile(rs.next()){       int  stuId = rs.getInt("stu_id");       String  stuName = rs.getString("stu_name");       int  age = rs.getInt("age");       String  sex = rs.getString("sex");}
释放资源

关闭Statement对象和Connection对象,关闭的顺序是先Statement,后Connection

//释放资源stmt.close(); //关闭Statementcon.close();//关闭Connection

至此,JDBC的入门级的操作步骤已经完毕,下方为全部代码

5、补充SQL注入

说的简单一些就是通过在追加并修改SQL的形式非法登录到web程序中,这就是SQL注入。

例如在登录操作时写的SQL语句为:

select  *   from  student  where  username = "admin" and password = "123";

如果账号和密码不正确是不允许登录的,但是如果在语句的后边添加 "or 1 = 1",此时SQL语句变成了

select  *   from  student  where  username = "admin" and password = "123" or 1 = 1;

因为使用的or,所以前后两个表达式有一个成立就可以,而1 = 1是恒成立的,所以就达到了SQL注入的目的。

2、PreparedStatement对象

PreparedStatement对象也是用来执行SQL语句的对象,只不过它是用来执行预编译的SQL语句。它的好处在于可以防止SQL注入,并且它的效率要比Statement对象要高,所以后期都使用PreparedStatement对象。

PreparedStatement对象使用 ? 作为占位符替代SQL中的参数条件,在使用的时候给 ? 赋值即可。

标签: #mysql数据库驱动jar包 #mysql 驱动包 #jdbc链接oracle租户时需要使用哪种jdbc驱动