JAVA高级编程系列之JDBC连接数据库(持续更新)

JDBC(推荐学习网站:stackoverflow)

在这里先给出可能会用到的资源包括以下:

  • MySql驱动jar包
  • Oracle驱动jar包
  • navicatMySql数据库的可视化工具(navicat110_mysql_cs_x86为中文,另一个英文,英文没有破解说明,不会破解的可以在下方评论)
  • Oracle数据库的可视化工具
  • mySql安装包和安装说明(mySql资料有安装详细说明)
  • oracle安装包和安装说明,这个Oracle比较小(对于学习来说足够了),而且卸载方便不必像其它安装包的oracle,安装之后难以卸载干净。
    需要的点击以下链接获取(失效了在下方评论):JDBC编程工具
sql 标准化查询语言
sun          【驱动】    数据库厂商
Java语言            mysql
                    oracle

标准                实现

数据库连接步骤:

  1. 注册驱动

    • mysql驱动

    • oracle驱动

    • ...

        Class.forName(driver);
      
  2. 获取连接
    连接 url
    url
    jdbc:oracle:thin:@localhost:1521:XE
    jdbc:mysql://127.0.0.1:3306/zmysql
    user root
    password root

     Connection conn = ConnectionFactory.getConnection();
    
  3. 创建pstmt/stmt对象
    如果有占位符替换占位符

         String sql = "insert into tbl_student values(null,'"+stu.getName()+"',"+stu.getAge()+")";
         pstmt = conn.prepareStatement(sql);
    
  4. 执行sql

     int executeUpdate();
         增 删  该
     Result executeQuery();
         查
     
     execute();
    
  5. 如果有结果集,处理结果集

     while(rs.next()){
                 long id = rs.getLong("id");
                 String name = rs.getString("name");
                 int age = rs.getInt("age");
                 System.out.println(id+"=="+name+"=="+age);
             }
    
  6. 释放资源
    Connection
    PreparedStatement
    ResultSet
    后创建的先释放 (一般放在try{}catch{}的finally{})

     if(rs!=null){
         rs.close();
     }
     if(pstmt!=null){
         pstmt.close();
     }
     if(conn!=null){
         conn.close();
     }
    
额外知识点
             三层架构  
    1. 数据访问层          (jdbc)    bean  
                                dao
    2. 业务逻辑处理层                service(面向接口编程)
    3. 视图层                        web
      |
      M 数据
      
    V    C
    视图    控制器

封装的源码

public class ConnectionFactory {
private static String driver;
private static String url;
private static String user;
private static String password;

static {
    driver = "com.mysql.jdbc.Driver";
    url = "jdbc:mysql://127.0.0.1:3306/tbl_student";
    user = "root";
    password = "13870775439z";
    // 从文件系统中获取参数
}

/**
 * 获取连接
 * */
public static Connection getConnection() throws Exception {
    Class.forName(driver);
    return DriverManager.getConnection(url, user, password);
}

/**
 * 释放资源
 * */
public static void close(ResultSet rs, PreparedStatement pstmt,
        Connection conn) throws SQLException {
    if (rs != null) {
        rs.close();
    }
    if (pstmt != null) {
        pstmt.close();
    }
    if (conn != null) {
        conn.close();
    }
}

/*
 * 插入和更新
 */
public static int Operator(String sql) {
    int num = 0;
    try {
        Connection connection = null;
        PreparedStatement pstmt = null;
        try {
            connection = ConnectionFactory.getConnection();
            pstmt = connection.prepareStatement(sql);
            num = pstmt.executeUpdate();
        } finally {
            ConnectionFactory.close(null, pstmt, connection);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return num;
}

/*
 * 查询
 */
public static String queryOperator(String sql,String username) {
    
    String result="查询失败";
    try {
        ResultSet rs = null;
        PreparedStatement pstmt = null;
        Connection conn = null;
        try {
            conn = ConnectionFactory.getConnection();
            pstmt = conn.prepareStatement(sql);
            rs=pstmt.executeQuery();
            while (rs.next()) {
                String name = rs.getString("name");
                if (usernamae.equals(name)) {
                    result="查询成功";
                    break;
                }
            }
        } finally {

            ConnectionFactory.close(rs, pstmt, conn);
        }

    } catch (Exception e) {
        // TODO: handle exception
    }
    return result;
}
}

你可能感兴趣的:(JAVA高级编程系列之JDBC连接数据库(持续更新))