当前位置:Gxlcms > 数据库问题 > JDBC数据库连接JAVA和一些基本语句

JDBC数据库连接JAVA和一些基本语句

时间:2021-07-01 10:21:17 帮助过:14人阅读

连接JDBC       1)JDBC简介         - JDBC就是Java中连接数据库方式         - 我们可以通过JDBC来执行SQL语句。       2)获取数据库连接         - java.sql.Connection 数据库连接         - 我们队数据库的一切操作都是从获取Connection开始         - 获取数据库连接的四个参数:             1.数据库的地址 url                 语法:jdbc:子协议:厂商内容                 MySQl的格式:jdbc:mysql://主机名:端口号/数据库名字                 例子:jdbc:mysql://localhost:3306/test               2.用户名 user 连接数据库使用的用户名             3.密码 password 数据库的密码             4.数据库驱动全类名 driverClass           - 基本步骤:             1.导入数据库驱动的jar包                 mysql-connector-java-5.1.37-bin.jar             2.准备四个参数                 - url                 - user                 - password                 - driverClass             3.加载数据库驱动                 Class.forName(driverClass)             4.通过DriverManager来获取数据库连接                    static Connection getConnection(String url, String user, String password)                      - 核心类:             - java.sql.DriverManager                 - 数据库驱动的管理器,负责加载数据库的驱动获取数据库连接                 - static Connection getConnection(String url, String user, String password)                      - getConnection方法用来通过url地址,用户名,密码等参数来获取数据库连接的               - java.sql.Connection                 - 数据库连接                 - Statement createStatement()                      - 创建一个Statement对象,通过Statement对象来执行SQL语句               - java.sql.Statement                 - SQL语句的执行器                     - boolean execute(String sql)                          - 执行一条SQL语句,并返回一个布尔值,执行成功返回true,执行失败返回false。用的不多                     - ResultSet executeQuery(String sql)                          - 执行查询的SQL语句,并返回一个结果集                     - int executeUpdate(String sql)                          - 执行修改数据的SQL语句(增删改),并返回受影响的行数               - java.sql.ResultSet                 - 查询到的数据的结果集,我们通过JDBC查询数据库获得的数据,都封装在ResultSet中                 - boolean next()                      - 控制光标向下移动一行,如果光标当前位置是afterLast则返回false,告诉你没数据了,就别读了。                         如果光标移动以后,没有在afterLast则返回true,可以读取数据。                   - 在ResultSet有很多getXxx(int),比如getString(),getInt(),getByte()。                     通过这些方法可以读取当前行的数据,它们需要一个int值作为参数,                         int指的是读取数据的列数。                     列数是从1开始的。                   - 在ResultSet中还有很多getXxx(String),它和上边的方法的作用一致,                     只不过它们需要的都是String类型的参数,参数代表的是当前的列名,                         比如:我们要获取id的值                             getInt("id")                         要获取name的值                             getString("name")                     注意:如果查询的SQL使用了别名,则列名以别名为准。       3)数据的增删改         //创建一个SQL执行器         Statement stat = conn.createStatement();           //创建一个SQL语句         String sql = "INSERT INTO t_stu(`name` , age) VALUES(‘沙僧‘,28)";           //执行SQL语句         //executeUpdate用来执行一条修改SQL的语句           //它需要一个String类型sql作为参数,并会返回一个int型的值,该值表示SQL语句执行以后影响到的行数         int count = stat.executeUpdate(sql);       4)数据的查询         //创建Statement对象         Statement stmt = conn.createStatement();         //创建一个SQL语句         String sql = "SELECT id, name sname, age FROM t_stu WHERE id=2";         //执行查询         ResultSet rs = stmt.executeQuery(sql);         //控制光标下移一行         //如果当前行有数据,则读取         if(rs.next()){               //获取id,name,age             int id = rs.getInt("id");             String name = rs.getString("sname");             int age = rs.getInt("age");               System.out.println(id+"--"+name+"--"+age);         }           > 查询操作和修改的主要不同的是,查询使用executeQuery(),             它会返回ResultSet结果集,我们需要对结果集进行读取。           > 当我们只需要读取一个数据时,用if。             当需要读取全部数据时,用while           > 代码的规范:             - Connection、Statement、ResultSet,这些资源都是需要和数据建立连接的                 这些资源我们并不是总需要使用,当我们不适用这些资源,需要将这些资源关闭。             - 关闭资源顺序:                 从后往前关:                     先关 ResultSet                     在关 Statement                     最后关 Connection             - 示例代码:                 //定义三个变量                 Connection conn = null;                 Statement stmt = null;                 ResultSet rs = null;                   try{                   }catch(Exception e){                     e.printStackTrace();                 }finally{                       if(rs!=null){                         //关闭ResulSet                         try {                             rs.close();                         } catch (SQLException e) {                             // TODO Auto-generated catch block                             e.printStackTrace();                         }                     }                       if(stmt != null){                         try {                             stmt.close();                         } catch (SQLException e) {                             e.printStackTrace();                         }                     }                       if(conn != null){                         try {                             conn.close();                         } catch (SQLException e) {                             e.printStackTrace();                         }                     }                   }   DAO(Data Access Object) 数据访问对象:     在Java中使用DAO类,来去和数据库交互,而其他类不再需要编写JDBC相关的代码,         而是直接调用DAO。     在实际上开发中,我们所有的JDBC相关的代码都应该写在DAO中,         java.sql这个包下的内容不应该出现在DAO以外的地方       t_user           CREATE TABLE t_user(             id INT PRIMARY KEY AUTO_INCREMENT,             username VARCHAR(100),             `password` VARCHAR(100),             email VARCHAR(100),             nickname VARCHAR(50)         )       创建UserDao(负责User对象和数据库相关的操作)              User getUserByUsername(String username) --> 根据用户查找用户           int saveUser(User user); --> 将用户对象插入进数据库           User getUserByUsernameAndPassword(String username , String password) --> 根据用户名和密码查找用户       登录:         登录实际上就是这么一条SQL语句:             SELECT * FROM t_user WHERE username=‘‘ AND password=‘‘  

JDBC数据库连接JAVA和一些基本语句

标签:static   varchar   creat   规范   tin   upd   prim   rac   光标移动   

人气教程排行