1.JDBC 是一套面对对象的应用程序接口,它制定了统一的访问各类关系数据库的标准接口,为各个数据库厂商提供了标准接口实现。本文将通过java语言操作mysql数据库。
内容提要:JDBC操作mysql数据库的基本流程 (对数据的增删查改)
需要工具:mysql-connector-java-5.1.39-bin.jar ,java编译环境(这里使用idea 2014)(将jar包导入idea中(自行百度))。
提示:使用java API 和mysql API查看帮助文档效果更佳
2.操作结构:
1.与数据库建立连接 ->2.向数据库发送mysql语句->3.处理发送的mysql语句->4.将处理的结果返回->释放使用资源
public class Jd_chaxun { public static void main(String[] args) { try{ //1.加载驱动 Class.forName("driver"); //2.获取连接 Connection conn = DriverManager.getConnection(url,user,password); //3.编辑需要执行的sql语句 String sqlsent= "mysql语句; //4.预先编译 PreparedStatement pst=conn.prepareStatement(sqlsent); //5.执行sql语句获得结果集合 ResultSet rs=pst.executeQuery(); //6.释放资源 rs.close(); conn.close(); }catch (ClassNotFoundException e){ e.printStackTrace(); }catch (SQLException e){ e.printStackTrace(); } } }
2.1.加载驱动
操作1:利用Classd的forName方法加载驱动;
这里加载mysql的驱动:将上面代码第一步中中的 driver 替换为 :com.mysql.jdbc.Driver
2.2 获取连接
操作2:利用DriverManager的getConnnection方法建立java和mysql一个连接,返回值是一个Connection对象。这里我们将返回的Connection对象赋值给coon.
注意:getConnection方法有三个参数,分别是url,username,password(下文详细讲解)
这里我们令:
url="jdbc:mysql://localhost:3306/1_mydata" #url结构为->
url= jdbc协议:数据库子协议://主机:端口/数据库
username="root" #(我的数据库名称是root,请修改成你自己的数据库名称)
password="123456" #我的数据库密码是123456,请修改成你自己的数据库密码
2.3编辑需要执行的mysql语句(sql怎么写自行百度)
这里我们将需要执行的mysql语句赋值给一个字符串变量sqlsent:
String sqlsent ="需要执行的sql语句";
2.4预编译sql语句
这里使用Connection对象的prepareStatement方法对步骤2.3中的mysql语句进行预编译,得到的结果为一个PreparedStatement 对象,我们将结果赋值给 PreparedStatement 对象pst
PreparedStatement pst =coon.prepareStatement(sqlsent);
2.5执行mysql语句
使用PreparedStatement对象的executeQuery()方法或者executeUpdate()方法来执行mysql语句,这里一executeQuery()方法为例:
executeQuery()方法执行编译的查询mysql语句,返回一个结果结合;这里我们将结果赋值非ResultSet对象res:
ResultSet res=pst.executeQuery(); #将结果结合读取出来下面再介绍
2.6关闭使用的资源
整个流程一个使用了三个对象: Connection, PreparedStatement,ResultSet ;
这里根据使用先后顺寻依次关闭就就行了:
res.close();
pst.close();
conn.close();
3.操作中的类和方法讲解:
1.驱动加载
连接数据库之前需要将加载连接数据库的驱动加载带java虚拟机中,通过“java.lang.Class”类的静态方法forName(String className)来实现;加载JDBC的驱动后,,会将加载的驱动类注册给DriverManager类,如果加载失败,将会抛出ClassNotFoundException异常。
2。“java.sql.DriverManager”驱动程序管理器是JDBC的管理层,主要是建立和管理数据库连接。通过该管理器的静态方法getConnection(String url,String user,String password)可以建立数据库的练级额,其中静态方法的第一个参数是连接数据库url地址,第二个参数是连接数据库的名称,第三个参数是连接数据库的登陆密码,getConnection()方法的返回值类型是“java.lang.Connection”
3.当通过Connection对象获取到数据库连接后,还需要通过Statement对象执行各种sql语句。Statement对象可以分为三类:
Statement:执行静态SQL语句的对象
PreparedStatement:执行预编译的SQL语句对象
CallableStatement:执行数据库存储过程
4.Statement接口有两个方法来执行sql语句
Statement接口的executeUpdate(String sql)方法将执行insert,update,delete(即添加,修改,删除)的sql语句,执行成功后返回一个int值,该数值为影响数据库记录的行数。
Statement接口的executeQuery(Stringi sql)方法执行select(查询)语句,执行成功后返回一个ResultSet类型的结果集对象,该对象将存储所有满足查询条件的数据记录。
5.例:
通过Statement对象执行insert,update,delete,select语句:
int num =statement.executeUpdate("insert into 1_mytable1 value('zhangsan',17)");
int num=statement.executeUpdate("update 1_mytable1 set name='new zhangsan' where age=17");
int num=statement.executeUpdate("delete from 1_mytable1");
ResultSet res=statement.executeQuery("select * from 1_mytable1");
通过PreparedStatement对象执行insert,update,delete,select语句;
PreparedStatement pst=connection.prepareStatement("insert into 1_mytable1 value(?,?)");
pst.setString(1,"zhangsan");
pst.setInt(2,17);
int num=pst.excuteUpdate();
//update,delete,select()同insert 方法
4.代码实例:
e public static void main(String[] args) { try{ //加载驱动 Class.forName("com.mysql.jdbc.Driver"); //获取连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/1_mydata","root","123456"); //执行sql语句 String sql="select * from 1_mytable1"; //预先编译 PreparedStatement pst=conn.prepareStatement(sql); //执行sql语句获得结果集合 ResultSet rs=pst.executeQuery(); //遍历结果将数据依次取出 while(rs.next()){ String name=rs.getString("n"); String age=rs.getString("age"); System.out.println(name+" "+age); } //释放资源 rs.close(); conn.close(); }catch (ClassNotFoundException e){ e.printStackTrace(); }catch (SQLException e){ e.printStackTrace(); } } }
这里只实现一种方法,其他情况请自行验证。