JDBC连接数据库(MySql)步骤以及Sql语句操作
JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。
JDBC编程步骤
1.装载相应的数据库的JDBC驱动并进行初始化
-
导入专用的jar包(不同的数据可需要的jar包不同)
连接数据库之前我们需要加载驱动器(DriverManager),我们使用Class.forName()方法,如果要加 载的数据库是MySQL,那么加载驱动器的固定格式为:Class.forName("com.mysql.jdbc.Driver")( mysql-connector-java 5) Class.forName("com.mysql.cj.jdbc.Driver")( mysql-connector-java 6)
2.建立连接
-
1、数据库URL
URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
jdbc:mysql:[]//localhost:3306/shen ?参数名:参数值
常用数据库URL地址的写法:
Oracle:jdbc:oracle:thin:@localhost:3306:mydb SqlServer:jdbc:microsoft:sqlserver://localhost:3066; DatabaseName=mydb MySql:jdbc:mysql://localhost:3306/mydb
端口值根据创建的数据库端口而定。
3.建立JDBC和数据库之间的Connection连接
Jdbc程序中的Connection,它用于代表数据库的链接,Collection是数据库编程中最重要的一个对象,客户端与数据库所有交互都是通过connection对象完成的,创建方法为:
Connection conn = DriverManager.getConnection(url,user,pass);
创建例子:
String url = "jdbc:mysql://localhost:3306/mydb";
String username = "mydb";
String password = "root";
Connection conn = null;
获取与数据库的链接
conn = DriverManager.getConnection(url, username, password);
Connection是与特定数据库连接回话的接口,使用的时候需要导包,而且必须在程序结束的时候将其关闭。getConnection方法也需要捕获SQLException异常。
4.执行SQL语句
Statement接口创建之后,可以执行SQL语句,完成对数据库的增删改查。其中 ,增删改只需要改变SQL语句的内容就能完成,然而查询略显复杂。
Jdbc程序中的Statement对象用于向数据库发送SQL语句,创建方法为:
Statement st = conn.createStatement();
创建一个Statement语句对象(主要三种方法):
Statement stmt=conn.createStatement();
Connection接口下的方法:
Statement createStatement()
PreparedStatement pstmt = conn.PreparedStatement() ;
CallableStatement cstmt = conn.prepareCall("{CALL demoSp(? , ?)}") ;.
- Jdbc程序中的ResultSet用于代表Sql语句的执行结果。
ResultSet rs=stmt.executeQuery(Sql);
除了查询语句是executeQuery();其他全部是executeUpdate();
5.处理和显示结果
- ResultSet既然用于封装执行结果的,所以该对象提供的都是用于获取数据的get方法:
获取任意类型的数据
getObject(int index)
getObject(string columnName)
获取指定类型的数据,例如:
getString(int index)
getString(String columnName)
-
执行查询语句,并把结果集返回给集合ResultSet
ResultSet rs = s.executeQuery(sql);
利用While(ResultSet.next()){…}循环将集合ResultSet中的结果遍历出来。
6.释放资源
-
在JDBC程序结束之后,显式地需要关闭与数据库的所有连接以结束每个数据库会话。
但是,如果在编写程序中忘记了关闭也没有关系,Java的垃圾收集器将在清除过时的对象时也会关闭这些连接。 -
操作完以后要关闭jdbc来释放jdbc资源。但是顺序要和你定义对象的时候相反
-
要这些打开的连接,应该调用close()方法
例如:conn.close();