JDBC入门
1.概述
概念:JDBC(Java DataBase Connectivity) 是使用Java语言操作关系型数据库的一套API,
其目的是使用Java的代码来操作数据库,但是每一种数据库底层细节不同, 需要使用JDBC规范来操作数据。
JDBC是一套接口,那么接口要怎么操作数据库呢?
每个数据库生产商都提供了对于JDBC的实现类,从而可以操作数据库,这些实现类也叫做驱动。
需要来使用实现类,需要导入MySQL提交的驱动的jar包
需要导入mysql‐connector‐java‐5.1.5‐bin.jar
2.代码示例
创建一个项目JDBCdemo,创建lib目录,将数据库连接的jar包放入
代码如下:
package demo;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class Demo1 {public static void main(String[] args) throws Exception {//1.注册驱动Class.forName("com.mysql.jdbc.Driver");//2.获取连接String url="jdbc:mysql://localhost:3306/mybatis";String user="root";String password="root";Connection conn=DriverManager.getConnection(url,user,password);//3.拼接sqlString sql="update class set class_name='666' where id=1";//4.获取sql的对象StatementStatement stmt=conn.createStatement();//5.执行sqlint res=stmt.executeUpdate(sql);//6.处理结果System.out.println(res);//7.关闭资源stmt.close();conn.close();}
}
各个类的作用:
注册驱动
DriverManager:使用DriverManager来管理JDBC的驱动的实现类
获取连接
getConnection:即static Connection getConnection(String url, String user, String password)
这个方法当中有3个参数:
第一个参数:jdbc:mysql://localhost:3306/yourDataBase
jdbc‐‐ 代表的主协议
mysql‐‐ 子协议(有可能变化的)
localhost‐‐ 主机
3306‐‐ 默认的端口号
yourDataBase‐‐数据库名称
如果访问的是本地的自己的数据库,那么localhost:3306就可以省略不写
mysql的命令 ‐uroot ‐proot
JDBC简写:jdbc:mysql:///yourDatabase
第二个参数:root(用户名)
第三个参数:root(密码)
Connection接口(链接)
1.Connection:代表的数据库的连接,非常重要,并且连接比较稀有,用完一定要释放它
2.作用:能获取到执行SQL语句的对象(获取Statement接口)
Statement createStatement() ‐‐ 获取到Statement接口 PreparedStatement prepareStatement(String sql) ‐‐ 获取到PreparedStatement 接口,对象非常重要的,防止SQL注入的漏洞。
管理事务:void setAutoCommit(boolean autoCommit) ‐‐ 开启事务 void commit() ‐‐ 提交事务 void rollback() ‐‐ 回滚事务
3.总结:获取能执行SQL语句对象的方法Statement createStatement()PreparedStatement prepareStatement(String sql)
可以管理事务
Statement接口
1.Statement接口,能执行Sql语句的对象
2.作用:能执行Sql语句,能执行批处理
ResultSet接口(代表结果集)
1.ResultSet接口:代表的是结果集。执行的是查询的SQL语句,把查询的数据表格封装到ResultSet接口中,通过遍历该接口,获取到查询的结果。
2.总结:
封装数据
ResultSet接口使用表格的方式来封装数据。内部维护一个游标,默认指向的是第一行数据之前,调用next()方法来向下移动游标,移动到某一行,获取该行的数据。
注意:游标默认只能向下移动
获取值 :根据字段的类型,调用不同的方法。
例如 :如果字段是int或者bigint--->getInt()或者getLong()
如果字段是varchar char类--->getString()
使用getObject()获取任何类型的数据,自己强转
获取数据的方法都是重载的
getInt(int index)‐‐ 通过下标值来取值,默认从1开始
getInt(String s)‐‐ 通过字段的名称来取值,比较常用的
释放资源
sql语句注入问题:可见【JAVA】如何解决SQL注入?-CSDN博客(转载)