最近我学习了javase和mysql的基础知识,我面临了一个新问题,如何将java和数据库连接,带着这个问题我学习了JDBC(JDBC的全称是:Java Database Connectivity)在JDBC中找到了答案,JDBC连接数据库,创建一个以JDBC连接数据库的程序,包含6个步骤:
-
加载驱动(告诉Java程序,即将要连接的是哪个品牌的数据库)
在连接数据库之前,首先要加载想要连接的数据库(这里以MySQL为例)的驱动到JVM(Java虚拟机),这里可以通过两种方法实现:1.调用DriverManage中的registerDriver方法,在registerDriver方法中传入一个驱动实现(不常用)
例如:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
2.通过java.lang.Class类的静态方法forName(String className)实现
例如:
try{//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
-
获取连接(表示JVM的进程和数据库进程之间的通道打开了,属于进程之间的通信)
要连接数据库,需要向java.sql.DriverManager 获取 一个Connection对象,该对象就代表一个数据库的连接使用DriverManager的 getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。
url:统一资源定位符(网络中某个资源的绝对路径)
hhtps://www.baidu.com/这就是URL。
URL包括几部分?1. 协议 2. IP 3. PORT 4. 资源名
http://182.61.200.7:80/index.html
http:// 通信协议
182.61.200.7 服务器IP地址
80 服务器上软件的端口
index.html 服务器上某个资源名
例如:
//连接MySql数据库
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "123456" ;
try{
Connection con = DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}
-
获取数据库操作对象(专门执行数据库语句的对象)
要执行SQL语句,首先需要获得java.sql.Statement实例
执行静态SQL语句。通常通过Statement实例实现。
Statement stmt = conn.createStatement() ;
-
执行sql语句(DML.DQL…)
1.int executeUpdate(String sqlString):用于执行DML语句(insert,delete,update),返回值是影响数据库的记录条数;
//4.执行SQL语句
String sql = "delete from dept where deptno = 50";
int count = stmt.executeUpdate(sql);
System.out.println(count == 1 ? "删除成功" : "删除失败");
2.ResultSet executeQuery(String sqlString):用于执行的DQL语句,返回一个结果集(ResultSet)对象
//4.执行SQL语句
String sql = "select empno,ename,sal from emp";
rs = stmt.excuteQuery(sql);
-
处理查询结果集(只有当第四步执行的是select语句时才会执行第五步)
调用ResultSet中的next方法(有点类似集合中的迭代器,但并不等同集合)
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
String name = rs.getString("name") ; //这种方式更加健壮
String name= rs.getString(1);
System.out.println(name);
}
getString()方法的特点是:不管数据库中的数据类型是什么,都以String的形式取出。
列是从左到右编号的,并且从列1开始
(JDBC中所有下标都是从1开始,不是从0开始)
-
释放资源(使用完资源后一定要及时关闭资源)
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源。
1、先关闭requestSet
2、再关闭preparedStatement
3、最后关闭连接对象connection
按照从小到大依次关闭
if(rs !=null){ // 关闭记录集
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt !=null){ // 关闭声明
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn !=null){ // 关闭连接对象
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
ok,以上就是JDBC六大步骤,如有错误请文明指正。