一、JDBC概述
JDBC(Java Database Connectivity)可以实现通过Java代码对数据库进行增删改查的操作,可以把它视为沟通Java与数据库的桥梁。
在Java.sql包中提供了基础的API文档,其中的类可以帮助进行数据库的操作。由于数据库产商的不同需要的驱动程序也就不同。在本篇文章中,我将介绍Java与mysql数据库连接的方法。
二、安装数据库驱动
在选择驱动时要注意JDK版本与Mysql版本的要求,选择合适的驱动程序。如果选错驱动器,可能会出现以下错误:
1.Unexcepted response;
2.通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败;
3.确保sql实例正在运行.....防火墙;
在安装的合适的驱动之后(驱动按个人要求自行搜索),就要设置驱动程序的路径,否则会出现Noclassfound的错误。下面将介绍几个开发环境下驱动程序Setpath的方法:
1.eclipse:创建java工程,建立一个与src文件夹同级的文件夹lib,用于储存驱动程序。选中驱动,右键选取Build Path->add to build path选项。在构建好路径之后,会生成一个Referenced Libraries,可以打开选择所需要的类、接口。
http://2.Net Beans:与eclipse相同,文件与导航器的项目不在一个界面,需要进行切换。切换之后的路径设置方法与eclipse相同。如果在获取连接的过程中出现Noclassfound的错误,则需要在对应的JDK文件下拷贝一份驱动文件。一般路径:C->Program Files->Java->(Net Beans使用的JDK)->jre->lib->ext,即可解决。
3.Myeclipse:Java Web工程在WebRoot目录下建立lib文件夹存放驱动程序,设置路径的方法与eclipse相同。
三、在Java程序上获取数据库连接的对象
之前提到过的API文档将在这部分得到运用:
1.java.sql.Connection:负责数据库的连接,通过对象取得java与mysql数据库的连接,相当于钥匙。DriverManager.getConnection(url,username,password)的格式对相应端口的数据库索取连接,在用户名和密码正确的情况下取得连接对象。(username不是连接名称)
//声明对象
private Connection con=null;
2.java.sql.Statement:负责对Java代码中将对数据库进行造作的语句进行处理,其中的PrepareStatement对语句进行预编译。其中的setString(index,value)方法填补占位符,executeQuery()方法按照编译完成的语句在mysql数据库中执行相应操作。
3.java.sql.ResultSet:对查询的结果进行处理。其中的getInt(index)方法是获得对应索引下的查询结果,要求结果的数据类型与get之后的数据类型相同。
四、注册驱动、获取连接对象
在java.sql.Connection类中讲过,取得连接需要提供三项参数,由于不同数据库厂商不同,还需要一个参数对驱动程序中的方法进行指定。由于这四项参数在一个特定的项目下保持不变,一般设置为final类型。
//参数的设置
public final static String driver="com.sql.cj.jdbc.Driver";
public final static String url="jdbc:mysql://[ip]:[端口]/[数据库名]?serverTimezone=[SetTimezone]";
//[]中的内容需要依情况修改
public final static String username="root";
//password的设置类似
1.驱动程序指定参数:String DBDriver="对应驱动的路径",路径的寻找从Build Path生成的Referenced Libraries中寻找,包名一般以jdbc结尾,类名一般以Driver结尾。“com.sql.cj.jdbc.Driver”由于不同的驱动文档目录不同,应自行寻找。
2.url参数,通过端口访问指定的数据库:String url="jdbc:mysql://localhost:3306/数据库名";一般的端口为3306,也可以在server中查看对应的端口。在JDK版本或mysql版本较高的情况下,可能还需要添加时区,具体做法:在数据库名后添加"serverTimezone=时区",以上海为例,可以写为:serverTimezone=Asia/Shanghai
3.username、password则是连接的用户名(不是连接名!)和连接启动所需的密码
4.编写连接对象获取的方法,核心语句:
Class.forName(DBDriver);//寻找指定包下的指定类
con=DriverManager.getConnection(url,username,password);//con是Connection类的对象
在此过程中,会遇到异常处理,使用try-catch对异常进行处理,若抛出ClaaNotFounException则检查路径是否设置成功,若抛出SQLException,可能因为安装了错误的驱动程序。(厂家不匹配)
public void GetConnection()
{
try {
Class.forName(driver);
con=DriverManager.getConnection(url,username,password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
连接成功后会显示一串感人的红色警告字符,表明已经获取到相应的数据库连接对象,之后我们便能通过这一对象对数据库进行操作。(有解决这个警告的方法请指点:))
(有错字多多包涵)完结,撒花~