真人麻将游戏

点击注册
点击注册
.
真人麻将游戏 你的位置:真人麻将游戏 > 棋牌资讯 >

JAVASE之四节课带你走入JDBC—1、JDBC概述

发布日期:2022-03-10 08:23    点击次数:207
主要内容1. JDBC作用2. 使用JDBC完成CRUD操作3. Statement和PreparedStatement4. JDBC事务操作5. 案例:员工管理系统学习目标第一节 JDBC基本操作1.1 JDBC概述什么是JDBC JDBC(Java DataBase Connectivity, Java数据库连接) ,是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成有了JDBC,程序员只需用JDBC API写一个程序,就可访问所有数据库。 Sun公司、数据库厂商、程序员三方关系 SUN公司是规范制定者,制定了规范JDBC(连接数据库规范) DriverManager类 作用:管理各种不同的JDBC驱动 Connection接口 Statement接口和PreparedStatement接口 ResultSet接口 数据库厂商微软、甲骨文等分别提供实现JDBC接口的驱动jar包 程序员学习JDBC规范来应用这些jar包里的类。 JDBC访问数据库步骤1:加载一个Driver驱动2:创建数据库连接(Connection)3:创建SQL命令发送器Statement4:通过Statement发送SQL命令并得到结果5:处理结果(select语句)6:关闭数据库资源ResultSet Statement Connection创建模块/项目 导入jar包1.2使用JDBC完成添加操作【示例1】添加一条部门dept数据package com.bjsxt.jdbcDemo1; import netscape.security.UserTarget; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.Statement; public class Test1 { public static void main(String[] args) throws Exception { // 1:加载一个Driver驱动 /* 使用反射加载驱动 其实就是获得一个类的字节码, 在获得类的字节码的过程中,一定会加载类进入内存 一旦进入内存会执行代码中的静态代码块 一执行代码块,就会自动的向DriverManager中注册一个驱动 static { try { DriverManager.registerDriver(new Driver()); } catch (SQLException var1) { throw new RuntimeException("Can't register driver!"); } } mysql8 之前的数据库驱动名 com.mysql.jdbc.Driver mysql8 开始的数据库驱动名 com.mysql.cj.jdbc.Driver */ Class.forName("com.mysql.cj.jdbc.Driver"); //; ; ; ; // 向数据库发送语句 数据库执行完毕后 返回参数 // 返回对数据库中多少行代码产生了影响 int rows = statement.executeUpdate(sql); System.out.println("执行完毕,对数据中的"+rows+"行数据产生了影响"); // 5:处理结果(select语句 增删改语句没有此步骤) // 6:关闭数据库资源ResultSet(查询操作) Statement Connection statement.close(); conn.close(); } }【示例2】statement 批量添加user数据 1:加载一个Driver驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 2:创建数据库连接(Connection) String url = "jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai"; String user = "root"; String password = "root"; Connection conn = DriverManager.getConnection(url, user, password); // 3:创建SQL命令发送器Statement Statement statement = conn.createStatement(); // 4:通过Statement发送SQL命令并得到结果 /* * 执行查询命令 executeQuery() * 执行增删改命令 executeUpdate() * 向dept中增加一条数据 * */ for (int i = 0; i < 20; i++) { statement.addBatch("insert into user (name,password)" + "','password==" + i + "')"); } int[] rowCounts = statement.executeBatch(); if (rowCounts.length > 0) { System.out.println("执行完毕,对数据中的" + rowCounts.length + "行数据产生了影响"); } // 5:处理结果(select语句 增删改语句没有此步骤) // 6:关闭数据库资源ResultSet(查询操作) Statement Connection statement.close(); conn.close(); }总结MySQL8中数据库连接的四个参数有两个发生了变化 String driver = "com.mysql.cj.jdbc.Driver";String url = "jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai"; 或者String url = ".......serverTimezone=GMT+8";错误1:Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc2.Driver原因:没有添加jar包或者com.mysql.jdbc2.Driver路径错误错误2:Exception in thread "main" java.sql.SQLException:No suitable driver found for jbdc:mysql://127.0.0.1:3306/stumgr原因:url错误错误3:Exception in thread "main" java.sql.SQLException:Access denied for user 'root'@'localhost' (using password: YES)原因:用户名或者密码错误错误4:Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:Duplicate entry '90' for key 'PRIMARY' 原因:主键冲突理解1: Class.forName("com.mysql.jdbc.Driver");的作用第一次使用"com.mysql.jdbc.Driver",就会执行静态代码块,注册驱动public class Driver extends NonRegisteringDriver implements java.sql.Driver { public Driver() throws SQLException { } static { try { DriverManager.registerDriver(new Driver()); } catch (SQLException var1) { throw new RuntimeException("Can't register driver!"); } } }理解2:注释了该语句 Class.forName("com.mysql.jdbc.Driver"); 为什么还可以正常运行?jar--META-INF--services--java.sql.Driver--com.mysql.jdbc.Driver会自动找到该内容并加载本节需知1. JDBC的常用接口和类有哪些2. 使用JDBC完成对部门表dept的添加操作

玩麻将的乐趣有时不在输赢,而在会做大牌,乐趣在做大牌的魄力。许多人一味地追求和牌,不管牌有多么好以和为主,或许会赢,但总不会大赢。和满贯就是好几个“棒棒”(就一番),或者说叫做“吃不够输得够”。而有魄力把牌做大者,或许一副牌就可以深深地体会出麻将的乐趣。

我来告诉你吧,一般麻雀九是用白板和筒子玩的,白板代表公仔(即是代表十点)一对白板最大其余对按顺序九筒到一筒排列,不同对的将两个牌相加所得点数,也是九点最大,零点最小,起过十点的减去十(比如一个九筒加一个二筒代表是一点)相同庄家赢已赞过已踩过收起IamYuese2011-02-20