zoukankan      html  css  js  c++  java
  • Java数据库编程

          JDBC是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类库(位于java.sql和javax.sql包中)。通过JDBC,我们可以用java编写程序,实现与特定的数据库进行连接,向数据库发送SQL语句,实现对数据库的特定操作,并对数据库返回的结果进行处理。

          JDBC编程步骤:

          步骤一:根据应用程序所用的数据库,选择JDBC驱动程序类型;

          步骤二:连接到数据库,得到Connection对象;

          步骤三:通过Connection创建Statement对象;

          步骤四:使用Statement对象提交SQL语句;

          步骤五:操作结果集;

          步骤六:回收数据库资源。

          JDBC驱动程序分为四个类型:

          JDBC-ODBC Bridge: JDBC-ODBC桥 由SUN公司提供通用的驱动,能访问各种数据库,但效率极低。

          Native-API partly-Java driver: 本地库Java驱动程序 执行效率高,客户端必须安装本地驱动,维护不方便。

          net-protocal all-Java driver(JDBC Proxy) 网络协议纯Java驱动程序(通用) 客户端不必安装本地库,使用方便,但性能相对较低。

          native-protocal all-Java driver: 本地协议完全Java驱动程序 将JDBC调用转化为特定数据库的网络协议,效率很高。

          加载驱动,通过调用Class类的静态方法forName()显式地加载驱动:例如:

         

    Class.forName(驱动程序类);

    下面我们来看一段代码,以便我们了解如何去建立数据库连接:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * JDBC测试
     * 
     * @author Administrator
     *
     */
    public class JDBCDemo3 {
    
        public static void main(String[] args) {
            Connection conn = null; // 连接对象
            Statement stmt = null; // Statement对象
    
            /* 加载驱动 */
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            /* 创建Connection对象 */
            // 连接字符串
            String url = "jdbc:mysql://localhost:3306/jdbc";
            // 用户名
            String user = "root";
            // 密码
            String password = "123456";
            try {
                // 创建连接
                conn = DriverManager.getConnection(url, user, password);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        
         /* 执行的是添加多条数据到数据库中去 */
    try { stmt = conn.createStatement(); stmt.addBatch("INSERT INTO users VALUES(5, 'tom1', '000000')"); stmt.addBatch("INSERT INTO users VALUES(6, 'tom2', '000000')"); stmt.addBatch("INSERT INTO users VALUES(7, 'tom3', '789000')"); stmt.addBatch("INSERT INTO users VALUES(8, 'tom4', '456000')"); stmt.addBatch("INSERT INTO users VALUES(9, 'tom5', '123')"); stmt.executeBatch(); } catch (SQLException e1) { e1.printStackTrace(); } /* 释放资源:必做 */ try { if (stmt != null) stmt.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
  • 相关阅读:
    11. Container With Most Water(装最多的水 双指针)
    64. Minimum Path Sum(最小走棋盘 动态规划)
    数组相关
    88. Merge Sorted Array(从后向前复制)
    京东AI平台 春招实习生面试--NLP(offer)
    54. Spiral Matrix(矩阵,旋转打印)
    48. Rotate Image(旋转矩阵)
    春招实习--阿里 蚂蚁金服 支付宝 机器学习面试
    26. Remove Duplicates from Sorted Array(删除排序数组中的重复元素,利用排序的特性,比较大小)
    7. Reverse Integer(翻转整数)
  • 原文地址:https://www.cnblogs.com/gzyfj/p/4492281.html
Copyright © 2011-2022 走看看