java如何连接数据库(新手上路)
java如何连接数据库(这里以mysql为例)?java和数据库本不相关,那么想要两个不相关的的事物发生关系,那么就需要中间的媒介,中间桥梁。那么java和数据库中间的桥梁的就是JDBC。下面就对JDBC做一个简单的介绍。内容1.JDBC1.1基本概念1.2产生的背景2.JDBC操作数据库的步骤2.1导入数据库驱动jar包2.2注册驱动2.3获取数据库连接对象Connection2.4定义SQ
java如何连接数据库(这里以mysql为例)?java和数据库本不相关,那么想要两个不相关的的事物发生关系,那么就需要中间的媒介,中间桥梁。那么java和数据库中间的桥梁的就是JDBC。下面就对JDBC做一个简单的介绍。
1.JDBC
1.1基本概念
JDBC是Java DateBase Connectivity的简写,翻译过来就是java连接数据库,或者更通俗地说就是java语言操作数据库。JDBC的本质其实是官方(Sun公司)定义的一套操作所有关系型数据库的规则,也就是接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们可以使用这套接口(JDBC)编程,真正执行数据库操作的是数据库驱动jar包中的实现类。
1.2产生的背景
从一开始Java技术开发人员就意识到了Java在数据库应用方面的巨大潜力,想着通过扩展Java的标准类库,人们就可以使用“纯”Java语言与任何数据库进行通讯,但是这显然是一个无法完成的任务:业界存在许多不同的数据库且每种数据库所使用的协议、底层机制也各不相同;所以针对于此,所有的数据库供应商和工具开发商都认为,如果Java能够为SQL访问提供一套“纯”JavaAPI,同时提供一个驱动器管理器来允许第三方驱动程序可以连接到特定的数据库,如此一来数据库供应商可以提供自己的驱动器程序来插入注册到驱动器管理器中;所以JDBC的核心思想就是:根据API编写的程序都可以与驱动器管理器通信,而驱动器管理器通过驱动程序与实际数据库进行通信。
总之,JDBC实现了以下目标:通过使用标准的SQL语句,甚至是专门的SQL扩展,程序员可以利用Java语言开发访问数据库的应用,同时还依旧遵守Java语言的相关约定。数据库供应商和数据库工具提供商可以提供底层的驱动程序 ,同样也可以优化各种数据库产品的驱动程序。
关系型数据库有多种,期望能够使用统一的一套Java代码可以操作所有的关系型数据库。Sun公司就写了一套代码也就是JDBC,它定义了操作所有关系型数据库的规则(接口)。在开发的过程中就可以利用这些接口操作不同的数据库。接口都需要实现类,Sun公司写的JDBC只是定义了接口,并没有定义实现类,所以实现类就由各个数据库厂商来编写。每个数据库厂商就写了不同的实现类来操作自己的数据库。不同的实现类也就是不同数据库的驱动。
2.JDBC操作数据库的步骤
2.1导入数据库驱动jar包
java操作数据库需要一个中间的桥梁——JDBC的接口,并且是由数据库的驱动中的jar包实现。所以第一步就是要在项目中导入数据库驱动jar包。
首先第一步就是在网上下载一个mysql的数据库驱动jar包,类似mysql-connector-java-5.1.20-bin.jar。新建一个JAVA项目,在项目下面创建一个lib文件夹,将驱动jar文件拷贝到lib文件夹中
接着需要将该JAR包加入到项目的build path变量中。鼠标右边-》build path->configure build path … 在弹出的界面中点击Add jars 选中驱动jar包将之添加到build path变量中。
2.2注册驱动
导入了驱动,那么需要在程序中注册驱动,意思就是告诉程序可以对这个驱动对应的数据库进行操作。
注册驱动:
Class.forName("com.mysql.jdbc.Driver");
2.3获取数据库连接对象Connection
这个连接对象就是java代码和数据库的桥梁,通过这个连接对象(桥梁)连接数据库。
获取连接对象:
Connection con=DriverManager.getConnection(url:"jdbc:mysql://localhost:3306/电厂管理系统", user:"root", password:"password");
2.4定义SQL语句
连接了数据库,就是要对数据库进行操作。所以要定义SQL语句,其实就是你要对数据库进行什么操作,放在SQL语句中(不完全正确的比喻,SQL语句就是对数据库的操作的容器)。
定义SQL语句:
String sql="insert into 培训计划详细信息表 values(null,?,?,?,?,?,?)";
2.5获取执行SQL语句的对象 Statement
定义好要对数据库进行的操作,那么谁来帮我执行?——执行SQL语句的对象 Statement。所以要获取这个对象。
PreparedStatement pstmt=con.prepareStatement();
2.6执行SQL,接收返回的结果,处理返回结果
有了执行对象那么就开始执行操作对数据库进行操作,并且返回操作结果。用户对返回结果进行处理
int n=pstmt.executeUpdate(sql);
2.7释放资源
执行完了一系列的操作后,那么要释放资源。相当于有人帮你干活,干完了之后,要让别人走吧。
conn.close();
3.详解JDBC中涉及到的各个对象
3.1DriverManager:驱动管理对象
3.1.1功能:
3.1.1.1注册驱动:
告诉程序该使用哪个数据库jar包其实在mysql5版本后可以不写注册语句(Class.forName(“com.mysql.jdbc.Driver”);),因为jar包已经包含注册语句。
3.1.1.2获取数据库连接:
static Connection getConnection(String url,String user,String password)
参数:
1.url: 连接的数据库的网络地址及其数据库的名称。
语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
例子:jdbc:mysql://localhost:3306/电厂管理系统
如果连接的是本机的mysql服务器,并且默认端口为3306,那么url可以简写为:jdbc:mysql:///数据库名称,ip和端口可以省略。
2.user:用户名
3.password:密码
3.2Connection:数据库连接对象
3.2.1功能:
3.2.1获取执行sql的对象
通过这两个方法获得
Statement createStatement();
PreparedStatement PreparedStatement();
3.2.1管理事务
3.3Statement:执行sql的对象
3.3.1执行sql语句的三种常用方法
3.4ResultSet:结果集对象,封装查询结果
还要做的一件重要的事,就是要从这个结果集里面将封装的查询数据提取出来。
3.4.1next():游标向下移动一行
一开始的游标是指向属性名的,往下移动一行才开始有数据。
3.4.2getxxx()方法
xxx:是数据类型
获取当前这一行的某个属性,就是某一列
3.5PreparedStatement:执行sql的对象
更多推荐
所有评论(0)