20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
教材学习内容总结
第十一章 JDBC数据库操作
-
MySQL数据库管理系统
- 下载安装MySQL
- 若下载的是压缩包形式(书上提供的),需要配置环境变量;若是msi文件,直接安装即可
- 下载安装MySQL
-
MySQL客户端管理工具
- 下载并安装老师推荐使用的xampp
- 输入测试连接状态代码
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() ? "关闭" : "打开");
}
}
}
-
JDBC-MySQL数据库驱动
- 下载并安装JDBC-MySQL数据库驱动——mysql-connector-java-8.0.16
- 在IDEA中添加jar包
-
查询操作
- 得到SQL查询语句对象
try{ Statement sql=con.createStatement();
}
catch(SQLException e ){}
-
处理查询结果
- SQL查询语句对数据库的查询操作将返回一个ResultSet对象,ResultSet对象是按“列”(字段)组织的数据行构成。
ResultSet rs = sql.executeQuery("SELECT * FROM students");
- ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,获得一行数据后,ResultSet对象可以使用getXxx方法获得字段值(列值),将位置索引(第一列使用1,第二列使用2等)或列名传递给getXxx方法的参数即可。
- SQL查询语句对数据库的查询操作将返回一个ResultSet对象,ResultSet对象是按“列”(字段)组织的数据行构成。
-
关闭连接
- 应用程序在使用ResultSet对象中的数据时,就必须始终保持和数据库的连接,直到应用程序将ResultSet对象中的数据查看完毕
-
更新、添加与删除操作
- 更新
update 表 set 字段 = 新值 where <条件子句>
- 添加
insert into 表(字段列表) values (对应的具体的记录)
insert into 表 values (对应的具体的记录)
- 删除
delete from 表名 where <条件子句>
- 更新
-
使用预处理语句
- 如果应用程序能针对连接的数据库,事先就将SQL语句解释为数据库底层的内部命令,然后直接让数据库去执行这个命令,显然不仅减轻了数据库的负担,而且也提高了访问数据库的速度。
- Connection和某个数据库建立了连接对象con,那么con就可以调用
prepareStatement(String sql)
方法对参数sql指定的SQL语句进行预编译处理,生成该数据库底层的内部命令,并将该命令封装在PreparedStatement对象中
-
通用查询
- 用户将数据库名、SQL语句传递给该类对象,那么该对象就用一个二维数组返回查询的记录。
- metaData调用
getColumnName(int i)
方法就可以返回结果集rs中的第i列的名字:String columnName = metaData.getColumnName(i);
- metaData调用
- 用户将数据库名、SQL语句传递给该类对象,那么该对象就用一个二维数组返回查询的记录。
-
事务:应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行。
- JDBC事务处理步骤
- 用setAutoCommit(booean b)方法关闭自动提交模式
- 用commit()方法处理事务
- 用rollback()方法处理事务失败用rollback()方法处理事务失败
- JDBC事务处理步骤
教材学习中的问题和解决过程
- 无