杂记一、java中的mysql连接方法及说明

参考到博客:https://www.cnblogs.com/centor/p/6142775.html

 

工具:eclipse

   MySQL5.6

   MySQL连接驱动:mysql-connector-java-5.1.27.jar

           链接:https://pan.baidu.com/s/18tUdoRDFN8hljPJgGDtLEg       提取码:5krm 
 

 

总感觉驱动会和版本有关系,但是在具体使用过程中没有去对比,所以不太清楚具体的问题,那就遇到了在解决吧。

只是找了下相应的资料,就贴在下面了:

这个是我的mysql配置版本

那准备工作做好了,就开始我们的测试。

===========================================================================================

那我们就开始创建java工程了:

加载驱动:

  1. 在工程目录中创建lib文件夹,将下载好的JDBC放到该文件夹下,如下图所示:

                           

       2. 右键工程名,在java build path中的Libraries分页中选择Add JARs...,选择刚才添加的JDBC,如下图:

         

 

 

 3.准备好自己的数据包

这里就简单的弄两条数据了,主要是记录下学习的内容

CREATE TABLE usertable(
   empno            INT(4)          PRIMARY KEY,
   ename            VARCHAR(10),
   job              VARCHAR(9),
   hiredate         DATE,
   sal              FLOAT(7,2)
) ;
insert into usertable (empno,ename) values (1,'tan');
insert into usertable (empno,ename) values (2,'hu');

 

4.java操作mysql数据的简单的代码:

package javasql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

@SuppressWarnings("unused")

public class javasql {

    public static void main(String[] args) {
        //声明Connection对象
        Connection con;
        //驱动程序名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要访问的数据库名mydata
        String url = "jdbc:mysql://localhost:3306/mytest";
        //url的格式: 大协议:子协议://IP地址:端口号/库名?参数=参数值
                
        //MySQL配置时的用户名
        String user = "root";
        //MySQL配置时的密码
        String password = "123456";
        //遍历查询结果集
        try {
            //加载驱动程序
            Class.forName(driver);/*Class.forName("");的作用是要求JVM查找并加载指定的类。
            加载类,这里会调用静态方法DriverManager.registerDriver(new Driver());且只执行 
            一次*/
            //1.getConnection()方法,连接MySQL数据库!!
            con = DriverManager.getConnection(url,user,password);
            if(!con.isClosed())
                System.out.println("Succeeded connecting to the Database!");
            //2.创建statement类对象,用来执行SQL语句!!
            Statement statement = con.createStatement();
            //要执行的SQL语句
            String sql = "select * from usertable";
            //3.ResultSet类,用来存放获取的结果集!!
            ResultSet rs = statement.executeQuery(sql);
            System.out.println("-----------------");
            System.out.println("执行结果如下所示:");  
            System.out.println("-----------------");  
            System.out.println("序号" + "\t" + "姓名");  
            System.out.println("-----------------");  
             
            String job = null;
            String id = null;
            while(rs.next()){//rs为一个查询数据库的结果集。next()就是判断是否到了最后一条记录
                //获取stuname这列数据
                job = rs.getString("ename");//获取对应该字段的记录内容
                //获取stuid这列数据
                id = rs.getString("empno");
                //输出结果
                System.out.println(id + "\t" + job);
            }
            rs.close();
            con.close();
        } catch(ClassNotFoundException e) {   
            //数据库驱动类异常处理
            System.out.println("Sorry,can`t find the Driver!");   
            e.printStackTrace();   
            } catch(SQLException e) {
            //数据库连接失败异常处理
            e.printStackTrace();  
            }catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            System.out.println("数据库数据获取结束!!");
        }
    }

}

结果如下图所示:

==================================================================================

上面初步对JAVA的jdbc的操作有了个大致的了解,那接下来,

1  先了解下JDBC中使用的几个类对应的方法,主要为下面的5种接口:

2  简单的总结下,java操作mysql的增删改查的操作:

  -------------------

 具体给个接口的方法的功能详细请查看:https://blog.csdn.net/know9163/article/details/80574315

其中用到的类(主要由4个类构成),和对应的功能如图所示:

下面只是做简单的指出:

1  Connection接口

    - Connection与特定数据库的连接(会话),在连接上下文中执行SQL语句并返回结果。

    - DriverManager的getConnection()方法建立在JDBC URL中定义的数据库Connection连接上,主要的使用方法如下:

      -Mysql

        Connection con = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");

      -Oracle

        Connection con = DriverManager.getConnection("jdbc:oracle:thin@host:port/database", "user", "password");

 

2   Statement接口

    - 用于执行静态SQL语句并返回它所生成结果的对象。

    - 三种Statement类:

      - (1)Statement:

        由createStatement创建,用于发送简单的SQL语句(不带参数)

      - (2)PreparedStatement:

        - 继承自Statement接口,有preparedStatement创建,用于发送含有一个或者多个输入参数的SQL语句。PreparedStatement对象

         比Statement对象效率更高,并且是防止SQL注入。我们一般都使用PreparedStatement。

      - (3)CallableStatement:

        - 继承自preparedStatement。由方法prePareCall创建,用于调用存储过程。

    - 常用的Statement方法

        - execute():运行语句,返回是否有结果集。

        - executeQuery():运行select语句,返回ResultSet结果节

        - executeUpdate():运行insert/update/delete操作,返回更新的行数。

4    Driver接口

    - Driver接口由数据库厂家提供,对于Java开发者而言,只需要使用Driver接口就可以了。

    - 在编程中要连接数据库,必须先装载特定厂商的数据库驱动程序。不同的数据库有不同的装载方法。

    - 驱动:就是各个厂商实现Sun公司提出的JDBC接口。即对Connection等接口的实现类的jar文件。

    - 装载mysql驱动:Class.forName("com.mysql.jdbc.Driver");

    - 装载oracle驱动:Class.forName("com.jdbc.driver.OracleDriver");

   DriverManager接口

    - DriverManager接口是JDBC的管理层,作用于用户和驱动程序之间。

    - DriverManager跟踪可用的驱动程序,并在数据库和相应的驱动之间建立连接。

 

5. ResultSet接口

      - Statement执行SQL语句时返回Result结果集

      - ResultSet提供的检索不同类型字段的方法,常用的有:

        - getString():获得在数据库里是varchar,char等数据类型的对象。

        - getFloat():获得数据库里是Float类型的对象

        - getDate():获得数据库里是Date类型的对象

        - getBoolean():获得数据库里是Boolean类型的数据      

 

最后操作完之后的,关闭顺序:

- 依序关闭使用的对象和连接

        Result->Statement->Connection

 

下面就是简单的介绍下,java中的增删改查了,其实前面的部分大家知道了,之后的内容就和我们平常操作数据库是一样的了,只是换了种语言,换了一种API。

增加、删除和修改数据:

  增加数据:

String name;
String id;

 
PreparedStatement psql;
ResultSet res;
//预处理添加数据,其中有两个参数--“?”

psql = con.prepareStatement("insert into usertable (empno,ename,job,hiredate,sal) "
        + "values(?,?,?,?,?)");
//注:这里的index里面的 1,2,3,4,5就是指的上面语句中第几个?的位子,即就是动态的执行SQL,后附值
psql.setInt(1, 3212);              //设置参数1,创建id为3212的数据
psql.setString(2, "jun");          //设置参数2,name 为jun
psql.setString(3, "manager");      //设置参数3    为职称


DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
Date myDate2 = dateFormat2.parse("2010-09-13");
psql.setDate(4,new java.sql.Date(myDate2.getTime()));
psql.setFloat(5, (float) 2000.3);
psql.executeUpdate();           //执行更新

 

更新数据:

 PreparedStatement psql;

//预处理更新(修改)数据,将jun的sal改为5000.0
psql = con.prepareStatement("update usertable set sal = ? where ename = ?");
psql.setFloat(1,(float) 5000.0);      
psql.setString(2,"jun");           //动态的给sql附完值 , 完成了完整的SQL语句         
psql.executeUpdate();              //执行update跟新语句,实现更新数据

删除数据:

PreparedStatement psql;//预处理删除数据

psql = con.prepareStatement("delete from usertable where sal > ?");

psql.setFloat(1, 4500);             //动态的给sql附完值 , 完成了完整的SQL语句         
psql.executeUpdate();               //执行delete删除语句,实现数据删除提交

psql.close();

 

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值