JDBC即Java与数据库的连接。
环境准备:需要导入jar包,如:mysql-connector-java-5.1.8-bin.jar。
JDBC的开发步骤:①加载驱动;②获得连接;③基本操作;④释放资源
1.加载驱动:Class.forName("com.mysql.jdbc.Driver");
2.获得连接:Connection conn = DriverManager.getConnection(url,username,password);
2.1url :与数据库连接的路径
2.2user :与数据库连接的用户名
2.3password :与数据库连接的密码
主要关注的是url的写法:
jdbc:mysql://localhost/xscj
- jdbc :连接数据库的协议
- mysql :是jdbc的子协议
- localhost :连接的MySQL数据库服务器的主机地址。(连接是本机就可以写成localhost),如果连接不是本机的,就需要写上连接主机的IP地址。
- 3306 :MySQL数据库服务器的端口号
- xscj :数据库名称
url如果连接的是本机的路径,可以简化为如下格式:
jdbc:mysql:///web_test3
3.基本操作:执行sql语句——获得执行sql语句的对象、编写sql语句、执行sql、遍历结果集。
3.1获得执行sql语句的对象:Statement stmt = conn.createStatement();
3.2编写sql语句:String sql = "select * from xscj";
3.3执行sql语句:ResultSet rs = stmt.executeQuery();
3.4遍历结果集:while(rs.next()){System.out.println(rs.getInt("学分")+" "+rs.getString("课程名"));}
4.释放资源:rs.close();stmt.close();conn.close();
JDBC程序执行结束后,将与数据库进行交互的对象释放掉,通常是ResultSet,Statement,Connection。
这几个对象中尤其是Connection对象是非常稀有的。这个对象一定要做到尽量晚创建,尽早释放掉。
- 将资源释放的代码写入到finally的代码块中。
- 资源释放的代码应该写的标准(这里以释放Statement对象stmt为例):
if (stmt != null) {
try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
stmt = null;
}
JDBC连接需要用到四个主要的类:DriverManager、Connection、Statement、ResultSet。
1.DriverManager:驱动管理类,主要用于获得连接,如:Connection conn =DriverManager.getConnection(url,username,password)
2.Connection:与数据库连接对象
作用一:创建执行SQL语句的对象
执行SQL语句对象:
- Statement :执行SQL
- CallableStatement :执行数据库中存储过程
- PreparedStatement :执行SQL.对SQL进行预处理。解决SQL注入漏洞。
作用二:管理事务
3.Statement:执行SQL
作用一:执行SQL
- 执行SQL的方法
- boolean execute(String sql);
- 执行查询,修改,添加,删除的SQL语句。
- ResultSet executeQuery(String sql);
- 执行查询(执行select语句)。
- int executeUpate(String sql);
- 执行修改,添加,删除的SQL语句。
- boolean execute(String sql);
作用二:执行批处理
4.ResultSet:结果集。通过select语句的查询结果。
结果集遍历原理
4.1结果集获取可以使用结果集中的:
getXXX();方法通常都会有一个重载的方法,XXX指Int、String等。
getXXX(int columnIndex);
getXXX(String columnName);
CRUD:create(创建)、retrieve(检索)、update(更新)、delete(删除)。