zoukankan      html  css  js  c++  java
  • 20175322 《Java程序设计》第九周学习总结

    20175322 《Java程序设计》第九周学习总结

    教材学习内容总结

    11.1MySQL数据库管理系统

    • 安装MySQL,版本为5.7

    • IDEA中输入测试代码ConnectionDemo.java

    import static java.lang.System.out;
    import java.sql.*;
    
    public class ConnectionDemo {
        public static void main(String[] args)
                                  throws ClassNotFoundException, SQLException {
            Class.forName("com.mysql.jdbc.Driver");
            String jdbcUrl = "jdbc:mysql://localhost:3306/demo";
            String user = "root";
            String passwd = "";
            try(Connection conn = 
                    DriverManager.getConnection(jdbcUrl, user, passwd)) {
                out.printf("已%s数据库连接%n", 
                        conn.isClosed() ? "关闭" : "打开");
            } 
        }
    }
    

    11.2启动MySQL数据库服务器

    • 初始化data目录:mysqld--initialize-insecure
    • 修改root密码:mysqladmin -u root -p password

    11.3MySQL客户端管理工具

    11.4JDBC

    • 经常使用JDBC进行如下的操作 :
      • 与一个数据库建立连接
      • 向数据库发送SQL语句
      • 处理数据库返回的结果

    11.5 连接数据库

    • 下载JDBC-MySQL数据库驱动
    • 加载JDBC-MySQL数据库驱动
      应用程序负责加载JDBC-MySQL数据库驱动的代码如下:
    try{  Class.forName("com.mysql.jdbc.Driver");
    }
    catch(Exception e){}
    
    • 连接数据库
      java.sql包中的DriverManager类有两个用于建立连接的类方法(static方法)
      • Connection getConnection(java.lang.String, java.lang.String, java.lang.String)
      • Connection getConnection(java.lang.String);
    • 注意汉字问题
      需要特别注意的是,如果数据库的表中的记录有汉字,那么在建立连接时需要额外多传递一个参数characterEncoding,并取值gb2312或utf-8
    String uri = "jdbc:mysql://localhost/students?useSSL=true&characterEncoding=utf-8";
     con = DriverManager.getConnection(uri, "root","");  //连接代码
    

    11.6 查询操作

    • 向数据库发送SQL查询语句
      首先使用Statement声明一个SQL语句对象,然后让已创建的连接对象con调用方法createStatement()创建这个SQL语句对象,代码如下:
    try{Statement sql = con.createStatement();
    }
    catch(SQLException e){}
    
    • 处理查询结果
    • 关闭连接
    • 顺序查询
      • 所谓顺序查询,是指ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,next()方法最初的查询位置,即游标位置,位于第一行的前面。next()方法向下(向后、数据行号大的方向)移动游标,移动成功返回true,否则返回false
    • 控制游标
      为了得到一个可滚动的结果集,需使用下述方法获得一个Statement对象:
      Statement stmt = con.createStatement(int type ,int concurrency);
    • 条件与排序查询
      • where子语句
      • 排序,用order by子语句对记录排序

    11.7 更新、添加与删除操作

    • 更新
      update 表 set 字段 = 新值 where <条件子句>
    • 添加
      insert into 表(字段列表) values (对应的具体的记录)

      insert into 表 values (对应的具体的记录)
    • 删除
      delete from 表名 where <条件子句>

    11.8 使用预处理语句

    • 对于JDBC,如果使用Connection和某个数据库建立了连接对象con,那么con就可以调用prepareStatement(String sql)方法对参数sql指定的SQL语句进行预编译处理,生成该数据库底层的内部命令,并将该命令封装在PreparedStatement对象中,那么该对象调用下列方法都可以使得该底层内部命令被数据库执行:
    ResultSet executeQuery()
    boolean execute()
    int executeUpdate()
    

    11.9 通用查询

    • 本节的目的是编写一个类,只要用户将数据库名、SQL语句传递给该类对象,那么该对象就用一个二维数组返回查询的记录

    11.10 事务

    • JDBC事务处理步骤
      • 用setAutoCommit(boolean b)方法关闭自动提交模式
      • 用commit()方法处理事务
      • 用rollback()方法处理事务失败

    11.11连接SQL Server数据库

    • 加载SQL Server驱动程序代码:
    try {  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    }
    catch(Exception e){
    }
    
    • 连接的代码:
    try{
          String uri= "jdbc:sqlserver://192.168.100.1:1433;DatabaseName=warehouse";
          String user="sa";
          String password="dog123456";
          con=DriverManager.getConnection(uri,user,password);
       }
    catch(SQLException e){
          System.out.println(e);
    }
    
    • 加载Derby数据库驱动程序的代码:
      Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
    • 连接(create取值是true)的代码:
    Connection con = 
    DriverManager.getConnection("jdbc:derby:students;create=true");
    

    代码托管

    参考资料

  • 相关阅读:
    248.Strobogrammatic Number III
    git Changes not staged for commit,部分修改文件不能确认
    python 文件运行时隐藏命令窗口,图形化界面隐藏cmd窗口
    python 处理配置文件
    odoo 内嵌报表的方式,iframe
    odoo 多个数据库http请求指定数据库
    jasperreportserver 免登录访问,匿名访问报表
    python 图形化界面点击按钮卡死
    python 字符反转
    pentaho 相关介绍
  • 原文地址:https://www.cnblogs.com/zyh5322/p/10780928.html
Copyright © 2011-2022 走看看