JDBC

目录

JDBC基本概念

    1.概念:JAVA DateBase Connectivity   Java数据库连接,java语言操纵数据库

     2.快速入门 

    3.详解各个对象

抽取JDBC工具类:JDBCutils

JDBC控制事务


JDBC基本概念

    1.概念:JAVA DateBase Connectivity   Java数据库连接,java语言操纵数据库

JDBC的本质:官方(Sun)定义的一套操纵所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是jar保重的实现类。

     2.快速入门 

1.导入驱动jar包,复制jar包到项目的libs目录下

2.右键-->Add as library

3.注册成功

4.获取数据库连接对象 Connection

5.定义sql

6.获取sql语句的对象 statement

7.执行sql,接受返回结果

8.处理结果

9.释放资源

    3.详解各个对象

        1.DriverManger:驱动管理对象

                 功能:

                           1.注册驱动:告诉程序该用哪一个数据库驱动       

static void registerDriver(Driver driver):注册给定的驱动程序

                             写代码使用:

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

                              通过检查源码:在com.mysql.jdbc.Driver类中发现静态代码块

static{
    try{
        java.sql.DriverManager.registerDriver(new Driver());
    }catch(SQLException E){
        throw new RuntimeException("Can't register driver!");
    }
}

                            2.获取数据库连接

方法:static Connection getConnection(String ur1,String user,String password)    

                           参数:

                                      ur1:指定连接的路径

                                               语法:jdbc:mysql://ip地址(域名):端口号/数据库名称

                                                例子:jdbc:mysql://localhost:3306/db3

                                                细节:如果连接的本机是mysql服务器,而且mysql服务器默认端口号为3306,则ur1可以简写为jdbc://mysql///数据库民名称 

               2.Connection:数据库连接对象

                                    1.功能:

                                              1.获取执行sql的对象

statement createStatement()

PreparedStatement prepareStatement(String sql)

                                               2.事务管理

 开启事务:setAutoCommit(bolean autoCommit):调用该方法的false参数,即可开启事务

提交事务:Commit() 

回滚事务:rollback() 

                 3.statement:执行sql的对象

                                   1.执行:

boolean excute(String sql):可以执行任意的sql

                                  2.int excuteUpdate(String sql):可以执行DML(insert,update,delete)语句,DDL(create,alter drop)语句

                                 3.ResultSet.excuteQuery(String sql):执行DQL(select)语句 

                 4.ResultSet:结果集对象,封装查询结果

                           boolean next()方法,游标向下移动一行,判断是不是最后一行末尾(是否有数据),如果是,返回false

                            getXxx():获取数据

                                    Xxx:代表数据类型 如:int getInt() get String()

                                    参数:

                                            1.int:列的编号从1开始  如:getString(1)

                                             2.String:列表列名称 如:getDouble("balance")

                                     使用步骤:

                                              1.游标向下移动一行

                                               2.判断是否有数据

                                               3.获取数据

                                   5.PreparedStatement:执行sql的对象

                                           1.sql注入问题:在拼接sql时,有一些sql的特殊关键字参与字符的拼接会造成安全性问题

                                           2.输入的用户随便

                                            3.解决sql注入问题:使用preparedStatement对象解决

                                            4.预编译sql:-使用的作用?作占位符

                                             5.步骤:

1.导入驱动jar包

2.注册驱动

3.获取数据库连接对象 Connection

4.定义sql

                注意:sql的参数作用?作为占位符 select*from user username=? and password=?

5.获取执行sql语句的对象 Paredstatement Connection.prepareStatment(String sql)

6.给?赋值

              1.方法:setXXX(参数1,参数2)

                                  参数1:?的位置

                                   参数2:?的位置

7.执行sql,接受返回结果,不需要传递sql

8.处理结果

9.释放资源

注意:后期使用PreparedStatemnt来完成增删改查的所有操作

   1.可以使用方式sql注入

     2.效率更高

抽取JDBC工具类:JDBCutils

       目的:简化书写

       分析:

                 1.注册驱动

                  2.抽取一个方法获取连接对象

                          需求:不想传递参数(麻烦),还得保证工具类的通用性

                          解决方案:配置文件

                                     jdbc.properties

                                          url=

                                          user=

                                        password=

                      3.抽取:

JDBC控制事务

          1.事务:一个包含多个步骤的业务操作,如果这个业务被事务管理,要么同时成功,要么同时失败

          2.操作:

                    1.开启事务

                     2.提交事务

                     3.回滚事务

           3.使用Connection对象管理事务

                        开启事务:setAutoCommit(boolean autoCommit):调用该方法的false参数,即开启事务

                                 在执行sql之前开启事务

                         提交事务:Commit()

                                    当所有的sql都执行完提交事务

                          回滚事务:rollback()

                                     在catch中回滚事务

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值