java学习笔记(jdbc):

这篇博客主要介绍了Java中JDBC的概念,包括入门的七大步骤和API解析,特别讲解了PreparedStatement的使用及其与Statement的区别。此外,还探讨了代码封装的最佳实践和注解的基本概念及类型分类。
摘要由CSDN通过智能技术生成

1.jdbc

    1)概念:

JDBC:Java连接数据库 ,使用Java语言规范 操作数据库.

    2)jdbc的入门七大步骤_设计的API解释说明:

1)导入数据库包 mysql-connector-java-8.0.23.jar  mysql8的jar包
    有了包了,里面的核心类就加载进来了
2)注册驱动


    本身注册驱动:DriverManger里面
    public static void registerDriver(Driver driver) 注册驱动的方法

    推荐:
        加载类--->执行原码的静态代码块注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver") ;---->获取com.mysql.cj.jdbc.Driver的类字节码文件对象
        向下兼容性

        原码的内容
            class com.mysql.cj.jdbc.Driver implements java.sql.Drvier{

                //静态代码块---本身就使用了DriverManger里面的注册驱动方法
                 static {
                        try {
                            java.sql.DriverManager.registerDriver(new Driver()); //本身就在注册驱动,不需要在单独写了
                        } catch (SQLException E) {
                            throw new RuntimeException("Can't register driver!");
                        }
                    }

            }
3)获取连接对象
  驱动管理程序的类DriverManager:
  Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/javaee_2110?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true",  /
                                                                    //当前支持的字符集格式 服务器时区 开启公钥
                  "root",
                  "123456");)

java.sql.DriverManager:用于管理一组JDBC驱动程序的基本服务
           获取数据库的连接对象
                public static Connection getConnection(String url, String user, String password)
                参数1:统一资源定位符号
                    url组成
                        协议   :jdbc的协议  格式 ---> jdbc:    (java连接数据库)
                        数据库: mysql  /oracle  /指定的数据库 (安装特定数据库的服务器软件)
                        域名:端口号
                           本地 localhost:本机/或者直接写127.0.0.1:本地回环地址
                           远程连接
                                    远程服务器的ip地址或者域名

                           mysql端口号:3306

                        资源地址(数据库地址): 数据库名称

                 参数2:本地mysql的用户名 root
                 参数3:用户密码


           返回值类型:java.sql.Connection接口:与特定数据库的连接会话

4)准备sql
         String sql = "insert into student values(9,'德邦',18,'男','艾欧尼亚',60,70)";  静态sql   (硬编码)
5)通过连接对象创建执行对象
        java.sql.Connection:与特定数据库的连接会话
                Statement createStatement():创建执行对象,它可以将静态sql语句发送到数据库中
6)执行sql语句
    java.sql.Statement接口
            通用的方法
                int executeUpdate(String sql):将sql语句发送的数据库中执行 (更新操作)
                针对DDL:表的修改、创建、删除、查询。。。
                针对DML语句:insert into,update ,delete,

                ResultSet executeQuery(String sql):将select语句发送到到数据中进行执行(通用查询操作)

java.sql.ResultSet接口:
        数据库结果集的数据表,通常通过执行查询数据库的语句生成。

    3)案例:

 实现步骤
 *  1)导包--->jar包 mysql驱动jar包
 *  2)注册驱动
 *  3)获取数据库的连接对象
 *  4)准备好sql语句
 *  5)通过连接对象创建执行对象Statement   createStatement不安全 
                                               prepareStatement  安全推荐使用
 *  6)执行sql语句
 *  7)释放资源
 */
public class JdbcDemo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {

            //1)导包--->jar包 mysql驱动jar包
            //2)注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver"); //mysql8的驱动的实现类的路径带cj这个包
            
            //3)获取数据库的连接对象
            //驱动管理程序的类DriverManager:
            //public static Connection getConnection(String url,  // url:连接数据库的地址:
            //String user, 数据库的用户名
            // String password) 密码 throws SQLException
            Connection conn = DriverManager.getConnection(
            //url:数据库后面? 一堆参数 mysql5.7以后
            "jdbc:mysql://localhost:3306/javaee_2110?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true",  //
            "root",
            "123456");
            // 4)准备好sql语句
            String sql = "insert into student values(9,'德邦',18,'男','艾欧尼亚',60,70)";
            //5)通过连接对象创建执行对象Statement
            //Statement createStatement()
            Statement stmt = conn.createStatement();
            //6)执行sql语句:通用方法:增删改
            //int executeUpdate(String sql)
            int count = stmt.executeUpdate(sql);
            System.out.println("影响了"
                            + count + "行");
            //7)释放资源
            stmt.close();//执行对象
            conn.close(); //连接对象
    }
}

1)PreparedStatement执行对象:

PreparedStatement执行对象:
 *    Connection接口:
 *       PreparedStatement prepareStatement(String sql):获取预编译对象,
                   同时将参数化的sql发送给数据库
 *         通过预编译的sql语句对象,它的内存中就可以对参数?(占位符)进行赋值

3)PreparedStatement和Statement区别:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值