Day5JDBC

Day5

JDBC

jdbc:Java DataBase Connectivity,java数据库的连接

1.使用到类和接口

         DriverManager

         Connection

         Statement

         ResultSet

 

2.jdbc的操作步骤

         第一步,加载数据库的驱动

         DriverManager里面registerDriver(Driverdriver)

使用反射的方式加载数据库的驱动

         Class.forName("com.mysql.jdbc.Driver");

 

         第二步,创建与数据库的连接

         DriverManager里面getConnection(Stringurl, String user, String password)

 

         第三步,编写sql语句

 

         第四步,执行sql语句

         Statement里面executeQuery(Stringsql)

 

         第五步,释放资源(关闭连接)

 

 

3.Statement对象

         执行查询操作方法

         ResultSetexecuteQuery(String sql) ,返回查询的结果集

 

         执行增加 修改 删除的方法

         intexecuteUpdate(String sql) ,返回成功的记录数

 

         执行sql语句的方法

         booleanexecute(String sql) ,返回是布尔类型,如果执行的是查询的操作返回true,否则返回的false

        

         执行批处理的方法

         addBatch(Stringsql):把多个sql语句放到批处理里面

         int[]executeBatch():执行批处理里面的所有的sql

 

4.使用jdbc进行crud操作

         (1)实现对数据库表记录进行查询的操作

                   *executeQuery(sql)

 

         (2)实现对数据库表记录进行增加的操作

                   *executeUpdate(sql)

 

         (3)实现对数据库表记录进行修改的操作

                   *executeUpdate(sql)

 

         (4)实现对数据库表记录进行删除的操作

                   *executeUpdate(sql)

 

5.jdbc工具类的封装

有两种方式读取配置文件

         第一种,使用properties类

         (1)代码

         //创建properties对象

         Propertiesp = new Properties();

         //文件的输入流

         InputStreamin = new FileInputStream("src/db.properties");

         //把文件的输入流放到对象里面

         p.load(in);

         Stringdrivername = p.getProperty("drivername");

         Stringurl = p.getProperty("url");

         Stringusername = p.getProperty("username");

         Stringpassword = p.getProperty("password");

 

         第二种,使用ResourceBundle类

         *使用范围:首先读取的文件的格式需要时properties,文件需要放到src下面

         (1)代码

         Stringdrivername =ResourceBundle.getBundle("db").getString("drivername");

         Stringurl = ResourceBundle.getBundle("db").getString("url");

         Stringusername =ResourceBundle.getBundle("db").getString("username");

         Stringpassword =ResourceBundle.getBundle("db").getString("password");

 

         代码

         publicstatic String drivername;

         publicstatic String url;

         publicstatic String username;

         publicstatic String password;

        

         //在类加载时候,执行读取文件的操作

         static{

                   drivername= ResourceBundle.getBundle("db").getString("drivername");

                   url= ResourceBundle.getBundle("db").getString("url");

                   username= ResourceBundle.getBundle("db").getString("username");

                   password= ResourceBundle.getBundle("db").getString("password");

         }

 

6. sql的注入和防止

防止sql的注入

         (1)使用PreparedStatement预编译对象防止sql注入

         (2)创建PreparedStatement对象prepareStatement(String sql)

         (3)PreparedStatement接口的父接口Statement

         (4)什么是预编译

         (5)步骤:

         第一步,加载驱动,创建数据库的连接

         第二步,编写sql

         第三步,需要对sql进行预编译

         第四步,向sql里面设置参数

         第五步,执行sql

         第六步,释放资源

         (6)代码

         //使用工具类得到数据库的连接

         conn= MyJdbcUtils.getConnection();

         //编写sql

         Stringsql = "select * from user where username=? and password=?";

         //对sql进行预编译

         psmt= conn.prepareStatement(sql);

         //设置参数

         psmt.setString(1,username);

         psmt.setString(2,password);

         //执行sql

         rs= psmt.executeQuery();

         if(rs.next()){

                   System.out.println("loginsuccess");

         }else {

                   System.out.println("fail");

         }

7. 使用PreparedStatement预编译对象实现crud的操作

         注意地方:

         第一,编写sql时候,参数使用?表示(占位符)

         第二,预编译sql,设置参数的值,执行sql

 

         使用PreparedStatement预编译对象实现查询的操作

                   预编译对象executeQuery()执行查询语句

 

         使用PreparedStatement预编译对象实现增加的操作

                   预编译对象executeUpdate()执行增加的语句

 

         使用PreparedStatement预编译对象实现修改的操作

                   预编译对象executeUpdate()执行修改的语句

 

         使用PreparedStatement预编译对象实现删除的操作

                   预编译对象executeUpdate()执行删除的语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值