Java语言可以通过JDBC(Java database connectivity ,Java数据库连接)来访问MySQL数据库。JDBC的编程接口提供的接口和类与MySQL数据库建立连接,然后将SQL语句的执行结果进行处理。但这需要一个MySQL数据库的JDBC驱动程序。
我们可以在MySQL官网上下载JDBC驱动。下载网址为 https://dev.mysql.com/downloads/connector/j/
下载好的文件分别是mysql-connector-java-5.1.41.tar.gz和mysql-connector-java-5.1.41.zip,这里面都包含驱动的源代码和二进制包,源代码可以自行编译,二进制包是编译好的驱动,名称为mysql-connector-java-5.1.41-bin.jar
然后安装MySQL Connector/J驱动
如果使用的是MyEclipse,可以直接将JDBC驱动添加到编程工具中,单击Windows|preferences命令,进入preferences窗口,在该窗口选择Java|build path |user libraries 选项,在出现的窗口可以添加新的jar包。
如果在MyEclipse中创建web工程,直接可以将JDBC驱动的jar包拷到指定工程的WebRoot|WEB-INF|lib目录下
连接MySQL数据库
在java.sql包中存在DriverManager类,Connnection接口,Statement接口和ResultSet接口
- DriverManager类:主要用于管理驱动程序和连接数据库
- Connnection类:主要用于管理建立好的数据库连接
- Statement接口:主要用于执行SQL语句
- ResultSet接口:主要用于存储数据库返回的记录
首先使用java.lang.Class类中的forName()方法来指定JDBC驱动的类型
Class.forName("com.mysql.jdbc.Driver");
url: 指定JDBC的数据源。其基本形式是“jdbc:mysql:数据源”,数据源包括ip或主机名,端口号和数据库名
例如:jdbc:mysql://localhost:3306:hjh localhost表示本地计算机,3306是MySQL的端口号,hjh是数据库名
user:MySQL数据库的用户名
password:指定用户名的密码
getConnection()方法返回值是Connection对象
Connection connection =DriverManager.getConnection(url,user,password);//创建Connection对象
使用getConnection()方法时需要抛出SQLException异常
Connection对象调用createStatement()方法来创建Statement对象
代码:Statement statement = connection.createStatement();
Statement 对象可以调用executeQuery()方法执行SELECT语句。SELECT语句的查询结果返回给ResultSet 对象。
调用executeQuery()方法的代码如下:
ResultSet result =statement。executeQuery(“SELECT语句”);
通过该语句可以将查询结果存储到result中。
以下贴上连接数据库的代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DB {
private final String url="jdbc:/mysql://localhost:3306/friend";
private final String userName="root";
private final String password="123456";
private Connection con=null;
private Statement stm=null;
/*通过构造方法加载数据库驱动*/
public DB(){
try{
Class.forName("com.sql.jdbc.Driver").newInstance();
}catch(Exception e){
e.printStackTrace();
System.out.println("加载数据库驱动失败");
}
}
//创建数据库连接
public void createCon(){
try{
con=DriverManager.getConnection(url, userName, password);
}catch(Exception e){
e.printStackTrace();
System.out.println("创建数据库连接失败!");
}
}
//获取数据库连接
public Connection getCon(){
try{
con=DriverManager.getConnection(url, userName, password);
}catch(Exception e){
e.printStackTrace();
System.out.println("获取数据库连接失败!");
}
return con;
}
//获取Statement对象
public void getStm(){
createCon();
try{
stm=con.createStatement();
}catch(SQLException e){
e.printStackTrace();
System.out.println("创建Statement对象失败!");
}
}
/**
* @功能 对数据库的添加,修改和删除的操作
* @参数 为要执行的SQL语句
* @返回值 boolean型值
*/
public boolean executeUpdate(String sql){
System.out.println(sql);
boolean mark=false;
try{
getStm();
int iCount=stm.executeUpdate(sql);
if(iCount>0)
mark=true;
else
mark=false;
}catch(Exception e){
e.printStackTrace();
mark=false;
}
return mark;
}
//查询数据库
public ResultSet executeQuery(String sql){
ResultSet rs=null;
try{
getStm();
try{
rs=stm.executeQuery(sql);
}catch(Exception e){
e.printStackTrace();
System.out.println("查询数据库失败!");
}
}catch(Exception e){
e.printStackTrace();
}
return rs;
}
//关闭数据库的操作
public void closed(){
if(stm!=null)
try{
stm.close();
}catch(SQLException e){
e.printStackTrace();
System.out.println("关闭stm对象是失败!");
}
if(con!=null)
try{
con.close();
}catch (SQLException e){
e.printStackTrace();
System.out.println("关闭con对象失败!");
}
}
}