jdbc 连接数据库
时间:2022-03-15 13:41
JDBC:Java DataBase Connectivity 可以为多种关系型数据库DBMS 提供统一的访问方式,用Java来操作数据库
(一)jdbc连接数据库的结构:
(二)jdbc连接数据库的过程
(三),jdbc访问数据库的具体步骤:
a.导入驱动,加载具体的驱动类
b.与数据库建立连接
c.发送sql,执行
d.处理结果集 (查询)
(四),JDBC API 主要功能:
三件事,具体是通过以下类/接口实现:
1,DriverManager : 管理jdbc驱动
2.Connection: 连接(通过DriverManager产生)
3,Statement(PreparedStatement) :增删改查 (通过Connection产生 )
4,CallableStatement : 调用数据库中的 存储过程/存储函数 (通过Connection产生 )
5,Result :返回的结果集 (上面的Statement等产生 )
6,上述类的具体用法:
⑴Connection产生操作数据库的对象
①,产生Statement对象:createStatement()
②,产生PreparedStatement对象:prepareStatement()
③,产生CallableStatement对象:prepareCall();
⑵Statement操作数据库:
①增删改的方法:executeUpdate()
②查询的方法:executeQuery();
⑶ResultSet:保存结果集 select * from xxx
①next()方法:光标下移,判断是否有下一条数据;true(如果有数据)/false
②previous(): true/false
③getXxx(字段名|位置):获取具体的字段值
⑷PreparedStatement操作数据库:
①public interface PreparedStatement extends Statement (preparestatement继承自statement)
②增删改:executeUpdate()方法
③查询:executeQuery()方法;
④给数据库表中的元素赋值操作 setXxx();
⑸PreparedStatement与Statement在使用时的区别:
sql | 操作函数 | 操作顺序 |
用PrepareStatement对象时: pstmt: String sql =" insert into student(stuno,stuname) values(?,?) " ; pstmt = connection.prepareStatement(sql);//预编译SQL pstmt.setString(1,name); pstmt.setInt(2,age); 2.提高性能(因为有预编译操作,预编译只需要执行一次) 用Statement对象: stmt: String sql =" insert into student(stuno,stuname) values(‘"+name+"‘, "+age+" ) " ; for(100){ stmt.executeUpdate(sql); 用PrepareStatement对象: pstmt: String sql =" insert into student(stuno,stuname) values(?,?) " ; pstmt = connection.prepareStatement(sql);//预编译SQL pstmt.setString(1,name); pstmt.setInt(2,age); for( 100){ pstmt.executeUpdate(); } 3.安全(可以有效防止sql注入) stmt:存在被sql注入的风险 例如:输入 用户名:任意值 or 1=1 --密码:任意值 select count(*) from login where uname=‘任意值 ‘ or 1=1 --‘ and upwd =‘任意值‘ ; =>select count(*) from login where uname=‘任意值 ‘ or 1=1 ; =>select count(*) from login ; select count(*) from login where uname=‘"+name+"‘ and upwd =‘"+pwd+"‘ pstmt:有效防止sql注入 (五),数据库驱动
使用jdbc操作数据库时,如果对数据库进行了更换,只需要替换:驱动、具体驱动类、连接字符串、用户名、密码
相关推荐
电脑软件热门排行今日推荐热门手游 |