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");

代码托管

参考资料

原文地址:https://www.cnblogs.com/zyh5322/p/10780928.html