該当記事ビデオソースhttps://developer.aliyun.com/lesson_1694_13596#_13596
JDBCはじめ
JDBCは何である1
JDBC(Javaデータベース接続性)データベースを操作するJava言語を使用するJavaデータベース接続、である。
我々は、データベースを操作するコントロールボックス内のSQL文を使用してデータベースを操作すること、Java言語を使用してデータへのSQL文を送信するために、JDBCです。
2jdbc原則
彼らは単にメーカーのデータが大きすぎる図書館サービスの差別化であるので、これは、不可能なミッションである発見し始めているとき、初期の太陽の天才は、世界中のデータベースを作成するためのAPIを接続することができます。その後太陽がデータベース・ベンダーで始まります議論は、最終的な結論は、その後、各データベースベンダーがあなたの会社へのアクセスのためのルールのセットを提供するために、太陽に従いますデータベースにアクセスし、データベースへの同時標準の接続を提供するために、(ある、インタフェースのセット)太陽の仕様によって提供されています、が.sunという名前のJDBC、およびさまざまなベンダーが提供するJDBCの仕様を踏襲し、データベース・サーバーのAPI仕様のうち、あなたはそれらのデータをAPIライブラリがドライブと呼ばれてアクセスすることができます
package jdbc;
import org.junit.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* Created by kevin on 2020/3/22.
*/
public class Demo1 {
@Test
public void fun1() throws Exception{
/**
* 一 jdbc四大参数配置:
* >driverClassName:com.mysql.jdbc.Driver
* >url:jdbc:mysql://localhost:3306/test
* >username:root
* >password:123
*/
Class.forName("com.mysql.cj.jdbc.Driver");//这是新版本的老版本为com.mysql.jdbc.Driver,MySQL5用的驱动url是com.mysql.jdbc.Driver,MySQL6以后用的是com.mysql.cj.jdbc.Driver.版本不匹配便会报驱动类已过时的错误.
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";//JDBC连接MySQL6 (com.mysql.cj.jdbc.Driver), 需要指定时区serverTimezone
String username = "root";
String password = "mysql";
Connection connection = DriverManager.getConnection(url,username,password);
System.out.println(connection);
/**
* 二、怼数据库的增、删、改
* 1通过Connection对象创建Statement
* > Statement语句的发送器,它的功能就是向数据库发送sql语句
* 2调用他的int exexuteUpdate(String sql) 他可以发送DML、DDL
*/
//1.通过Connection 得到Statement对象
Statement statement = connection.createStatement();
String sql = "insert into stu values('0001','张三','100','男')";
// String sql = "update stu set name='李四' where number='0001'";
// String sql = "delete from stu where number='0001'";
int r = statement.executeUpdate(sql);
System.out.println(r);
statement.close();
connection.close();
}
/**
* 执行查询
*/
@Test
public void fun2() throws Exception{
/**
* 一、得到Connection
* 二、得到Statement,发送select语句
* 三、对查询返回的表格进行解析
* 四、关闭资源
*/
/**
* 一、得到连接
* 1准备四大连接参数
*/
String driverClassName = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
String username = "root";
String password = "mysql";
/**
* 2、加载驱动类
*/
Class.forName(driverClassName);
/**
* 3、通过剩下的3个参数调用DrierManger的getConnection得到连接
*/
Connection connection = DriverManager.getConnection(url,username,password);
/**
* 二、获取Statement,执行select语句
* 1.得到Statement对象:Connection的createStatement())方法
*/
Statement statement = connection.createStatement();
/**
* 2.调用Statement的ResultSet rs = executeQuery(String querySql)
*/
ResultSet resultSet = statement.executeQuery("select * from stu");
System.out.println(resultSet);
/**
* 三、解析ResultSet
*/
while(resultSet.next()){
int gender = resultSet.getInt(3);//通过列编号获取值
String name = resultSet.getString("name");//通过列名获取值
System.out.println(name+","+gender);
}
/**
* 四、关闭资源
* 倒关
*/
resultSet.close();
statement.close();
connection.close();//必须关闭(练习时跑完就结束了,但是真实环境一般项目在一直运行会占用资源,可能引起服务器崩溃)
}
}
コードの関連するデータベース
標準のJDBCコード
1、文は外側のtryの定義で参照します
2、オブジェクトは、try内でインスタンス化されます
3、最後に閉じた状態で行われ、
例えば:
public void query(){
Connection con = null;//在try外给出引用定义
Statement stmt = null;
ResultSet rs = null;
try{
con = xxx;//在try内对象实例化
while(rs.next()){
//xxxxxx
}
}catch(Exception e){
//xxx
}finally{
try{
if(con != null){
con.close();//在finally中进行关闭
}
}
}
}