java 使用 jdbc 操作mysql (快速了解)

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();
        }


    }
}

这里只实现一种方法,其他情况请自行验证。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值