Java操作数据库之jdbc【原生方式】

资料下载:跟后面的dbUtils一起打包,有需要的下载咯。下载的网址:http://download.csdn.net/detail/xiaozhegaa/9816808
这里写图片描述
引言:Java对数据库的操作有很多种技术。例如说jdbc,dbutil +C3p0,hibernate,jdbcTemplate等等【这五个都会总结】,到后面的话使用一些高级的框架去操作数据库,比如hibernate。但是底层操作数据库是重要的,高级框架也是也底层为基础搭建的,所以这里还是总结一下对一些常用数据库的操作技术,有兴趣的看一下。或者只挑你感兴趣的那一部分看

一:JDBC【什么是JDBC?为什么使用JDBC?怎么使用JDBC?】what +why + how
【what】SUN公司为使Java程序灵活的访问各种不同的关系型数据库提供的规则。【why】也就是说,不需要java应用程序去直接操作数据库,而是通过sum公司提供的方法统一去操作数据库,那么我们就不需要针对不同的数据库写不同的代码。只需要在配置文件里面配置一下即可,写代码更加方便。使Java程序灵活移植【how】下面讲【下面的案例全部以mysql为例】
这里写图片描述
二:开发步骤
1)导入mysql包,这一步是必须的,无论使用什么技术操作数据库,都需要导入mysql包
这里写图片描述
2) JDBC的六个固定步骤
1,注册数据库驱动[利用反射]
2,取得数据库连接对象Connection
3,创建SQL对象
4,执行SQL命令,并返回结果集
5,处理结果集
6,依次关闭结果集

//1,注册数据库驱动有两种方式
    第一种是:直接注册数据库驱动
        DriverManager.registerDriver(new Driver());
    第二种是:利用反射机制间接加载数据库驱劝,推荐用第二种
        Class.forName("com.mysql.jdbc.Driver");
//2. 取得数据库连接对象Connection
        //取得与MySQL数据库连接的桥梁,参数分别是:连接数据库  用户名 密码Connection conn = DriverManager.getConnection(                "jdbc:mysql:///zz2017","root","xiaozheng");
//前两步骤需要记住以下。下面的

//4:执行sql语句
insert/update/delete----PreparedStatement .executeUpdate(sql):返回值表示影响记录的行数
   select------------------PreparedStatement .exeucteQuery():返回值表示符合条件的记录   

【注意】创建sql对象的时候,有人会用Statement,我案例中使用的是 PreparedStatement。使用这个的好处是变量可以用占位符的方式去表示,而且它可以防止sql注入,所以我就采用这种方式,不用Statement

//案例源码
String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://127.0.0.1:3306/mydb2";
        String user = "root";
        String password = "root";
        String sql = "insert into user(name,gender,salary) values(?,?,?)";
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            //注册数据库驱动
            Class.forName(driver);
            //取得数据库连接
            conn = DriverManager.getConnection(url, user, password);
            //进行预编译,这里进行参数设置
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1,"xiaozheng");
            pstmt.setString(2,"男");
            pstmt.setFloat(3,8000);
            //进行编译
            rs = pstmt.executeQuery();
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String gender = rs.getString("gender");
                float salary = rs.getFloat("salary");
                System.out.println(id + ":" + name + ":" + gender + ":"+ salary);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(rs!=null){//轻量级,创建和销毁rs所需要的时间和资源较小
                try {
                    rs.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if(stmt!=null){//轻量级,创建和销毁rs所需要的时间和资源较小
                try {
                    stmt.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null){//重量级,创建和销毁rs所需要的时间和资源较小
                try {
                    conn.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

提醒一点,上述代码中发现有很多相同的地方,太长了。那么可以把相同部分提取成一个工具类,下面都是采用工具类的方式演示。工具类会打包给大家,有需要的可以下载看看
这里写图片描述
这里写图片描述
三:CURL操作
插入操作【图有点不清,建议可拖到新窗口打开图片就可以看清】
这里写图片描述
读取操作
这里写图片描述
删除
这里写图片描述
修改操作
这里写图片描述

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用原生JDBC进行大数据插入可以使用JDBC的批处理机制,具体步骤如下: 1. 创建数据库连接 2. 创建PreparedStatement对象,预编译SQL语句 3. 开始循环处理数据,将数据逐一添加到PreparedStatement对象中 4. 使用addBatch()方法将每条数据添加到批处理中 5. 执行批处理语句executeBatch() 6. 提交事务,并关闭数据库连接。 下面是一个示例代码: ``` Connection conn = null; PreparedStatement pstmt = null; try { // 1. 创建数据库连接 conn = DriverManager.getConnection(url, user, password); // 2. 创建PreparedStatement对象,预编译SQL语句 String sql = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)"; pstmt = conn.prepareStatement(sql); int count = 0; while (hasMoreData()) { // 3. 循环处理数据,将数据逐一添加到PreparedStatement对象中 pstmt.setString(1, data1); pstmt.setString(2, data2); pstmt.setString(3, data3); // 4. 使用addBatch()方法将每条数据添加到批处理中 pstmt.addBatch(); count++; if (count % batchSize == 0) { // 5. 执行批处理语句executeBatch() pstmt.executeBatch(); } } // 5. 执行批处理语句executeBatch(),处理剩余的数据 pstmt.executeBatch(); // 6. 提交事务,并关闭数据库连接 conn.commit(); } catch (SQLException e) { conn.rollback(); } finally { if (pstmt != null) { pstmt.close(); } if (conn != null) { conn.close(); } } ``` 在上面的代码中,batchSize是批处理的大小,可以根据实际情况进行调整。同时,需要注意事务的处理和异常的捕获。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值