java如何连接数据库的五步骤(图⽂讲解)
1、JDBC技术
java连接数据是通过JDBC技术,JDBC的全称是Java DataBase Connectivity,是⼀套⾯向对象的连接数据库的程序接⼝。JDBC技术主要完成以下⼏个任务:1、与数据库建⽴⼀个连接。
2、向数据库发送SQL语句。
3、处理从数据库返回的结果。
事实上,JDBC并不能直接访问数据库的,必须依赖于数据库⼚商提供的驱动程序,所以会有加载驱动程序这⼀步。
2、连接数据库的五⼤步骤:
连接数据库就需要⽤到以下⼏个类和接⼝,这张图已经写的很明⽩了,下⾯来了解以下它们的⽤法。
①第⼀步先加载数据库的驱动程序,可以去官⽹或者⽹上驱动包,代码如下:
Class.forName("sql.jdbc.Driver");
②DriverManager是类⽤来管理数据库中的所有驱动程序,调⽤它的静态⽅法可以getConnection(String url,String user,String password)与数据库建⽴连接,(如果不太懂怎么连接或者遇到bug了,可以看我的另⼀篇⽂章)连接成功会返回connection对象,后⾯的接⼝都会依赖于这个接⼝对象,代码如下:
Connection Connection("jdbc:mysql://localhost:3306/student","root","123456");
③上⼀步只是成功连接数据库,如果要操作数据库的话,需要发送sql语句,所以还需要⼀个向数据库发送sql语句的对象,这个对象时通过Connection 对象来获得的,上图中有三个这样的对象,Statement对象⽤于执⾏不带参数的简单sql语句;PreparedStatement继承了Statement,⽤来执⾏动态的sql语句;CallableStatement继承了PreparedStatement,⽤于执⾏存储过程的。这⾥我⽤statement接⼝,代码如下:
Statement ateStatement();
④有了发送sql语句的对象,就可以写sql语句了,statement对象⽤于执⾏不带参数的简单sql语句,所以⽤于查询语句,它会返回⼀个ResultSet对象,是⼀个结果集,就是你查询了之后,数据库把你要的数据传回来给你,后⾯会有图帮助你理解。
查询语句: ResultSet uteQuery("select * from tb_stu");
phonegap安卓版⑤ResultSet接⼝类似于⼀个临时表吧,⽤来暂时存放你从数据库要回来的数据,给⼀张图你理解清楚它们之间的关系吧!
这张图已经很清楚的描述了statement和ResultSet之间的关系,ResultSet对象是⼀个结果集,类似于⼀个⼆维的矩阵吧,它⼀次只可以看到结果集的⼀⾏数据,所以他会有⼀个指针,⼀开始指向第⼀⾏数据的前⾯⼀⾏(不是指向第⼀⾏数据),然后调⽤它的next()⽅法可以使指针往下移动⼀⾏,如下图所⽰:
那怎么把结果集中的数据读出来呢?当然是调⽤ResultSet对象的getInt()⽅法啦,java的数据类型众多,当然还有getString()、
getFloat()等⽅法,看你具体是什么类型数据。这⾥需要注意了,上⾯的指针是获取⾏的数据,get⽅法肯定是⽤来获取那⼀列的数据了,⽐如:getString()⽅法中的参数可以写成getString(“列名”),⼜或者是getString(1),它的意思是获取第⼀列的数据,参数1这⾥不是索引值,所以不是从零开始的,必须是⼤于等于1的数值,两种⽅法是等效的。获取完数据之后那就要关闭相关的流了,记住⼝诀:先定义的,后关闭,这⾥的ResultSet对象是依赖statement创建的,⽽statement⼜是依赖Connection创建的,所以关闭顺序是ResultSet-
>statement->Connection。
五⼤步骤你已经掌握了,有没有发现少了点东西呢?上⾯使⽤到的sql的查询语句,还有剩下的三个增加、删除、修改哦。剩下的这三个功能⽤⼀条语句来实现,那就是:
int uteUpdate("delete from tb_stu where id=4");
executeUpdate()⽅法会返回⼀个int值,表⽰受影响的⾏数,就是我们学数据库的时候,执⾏⼀条sql语句就会弹出多少⾏受影响,上⾯执⾏的知识删除语句,也可以执⾏修改、插⼊等,附上⼀个完整的代码段吧!!
package;
import IOException;
import Connection;
import DriverManager;
import ResultSet;
import SQLException;
import Statement;
public class Mysql {
public static void main(String[] args){
Connection con =null;
Statement st =null;
生成随机数的数学方法ResultSet rs =null;
try{
Class.forName("sql.jdbc.Driver");
Connection("jdbc:mysql://localhost:3306/student","root","root");
ateStatement();
uteQuery("select * from tb_stu");//
()){
int Int("id");
String String("name");//可以写成: String String("2");
String String("sex");
System.out.println("编号:"+id+" 姓名:"+name+" 性别:"+sex);
}
}catch(SQLException e){
e.printStackTrace();
}catch(ClassNotFoundException e){小白学python买什么书
java下载过程e.printStackTrace();
}finally{
if(rs!=null){
try{
rs.close();
ajax获取json数据实例
}catch(SQLException e){
e.printStackTrace();
}
}
if(rs!=null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(rs!=null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}
fontawesome使用}
}
}
我稍微解释⼀下这段代码,⾸先是定义了三个主要的接⼝,并赋值为null,这样写的好处是后⾯关闭的
时候就可以判断⼀下它是否为空,然后执⾏关闭语句。while循环的条件⽤到了next()⽅法,如果后⾯还有数据那就返回true,知道没有数据了,返回false跳出循环。好了,看了这篇⽂章,基本上java连接数据库是没有⼤问题了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论