zoukankan      html  css  js  c++  java
  • Java JDBC

    JDBC是一组专门负责连接操作数据库的标准。

    常见的连接方式:JDBC-ODBC桥连接、JDBC连接。

    一般JDBC比较常用,JDBC-ODBC性能比较差。

    JDBC开发的四大步骤:

    1、加载数据库驱动程序

    2、连接数据库

    3、操作数据库

    4、关闭数据库连接

    实例:

    创建如下的表数据:

    package java_jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class JdbcTest {
        
        //定义连接数据库的参数常量
        public static String DBDRIVER="com.mysql.jdbc.Driver"; 
        public static String DBURL="jdbc:mysql://localhost:3306/db_jdbc";
        public static String DBUSER="root";
        public static String DBPASSWORD="mysqladmin";
        
        public static void main(String[] args) throws Exception {
            
            Connection conn=null;
            Statement st=null;
            ResultSet rs=null;
            
            //1、加载驱动,这里使用的是mysql
            Class.forName(DBDRIVER);
            //2、连接数据库
            conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
            //3、实例化Statement完成操作
            st=conn.createStatement();
            System.out.println("*** 输出表中的初始数据 ***");
            rs=st.executeQuery("select * from menber");
            while(rs.next()){
                System.out.println("id:"+rs.getInt("id")+",name:"+rs.getString("name")+",age:"+rs.getInt("age")+",address:"+rs.getString("address"));
            }
            System.out.println("*** 插入一个menber ***");
            st.executeUpdate("insert into menber values(null,'王武','28','深圳')");
            
            System.out.println("*** 修改张三的年龄 ***");
            st.executeUpdate("update menber set age='22' where id=1");
            
            System.out.println("*** 输出表中的最终数据 ***");
            rs=st.executeQuery("select * from menber");
            while(rs.next()){
                System.out.println("id:"+rs.getInt("id")+",name:"+rs.getString("name")+",age:"+rs.getInt("age")+",address:"+rs.getString("address"));
            }
            
            //4、关闭连接
            rs.close();
            st.close();
            conn.close();
        }
    }
    View Code

     但是由于Statement存在注入漏洞,所以现在基本上不使用了,而是使用PreparedStatement

    实例:

    package java_jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    public class JdbcTest2 {
        
        //定义连接数据库的参数常量
        public static String DBDRIVER="com.mysql.jdbc.Driver"; 
        public static String DBURL="jdbc:mysql://localhost:3306/db_jdbc";
        public static String DBUSER="root";
        public static String DBPASSWORD="mysqladmin";
        
        public static void main(String[] args) throws Exception {
            
            Connection conn=null;
            PreparedStatement ps=null;
            ResultSet rs=null;
            
            //1、加载驱动,这里使用的是mysql
            Class.forName(DBDRIVER);
            //2、连接数据库
            conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
            //3、实例化Statement完成操作
            ps=conn.prepareStatement("select * from menber where age>?");
            ps.setInt(1, 25);
            rs=ps.executeQuery();
            while(rs.next()){
                System.out.println("id:"+rs.getInt("id")+",name:"+rs.getString("name")+",age:"+rs.getInt("age")+",address:"+rs.getString("address"));
            }
            
            //4、关闭连接
            rs.close();
            ps.close();
            conn.close();
        }
    }
    View Code

  • 相关阅读:
    Matlab2018 b 下载和安装激活说明
    亿图思维导图软件 Edraw MindMaster Pro 8.0.102 中文直装版全功能专业版
    中华人民共和国民法典全文及下载
    qbxt DAY3 T4
    洛谷P1972 [SDOI2009]HH的项链——题解
    洛谷P2824 [HEOI2016/TJOI2016]排序——题解
    洛谷P1966 火柴排队——题解
    逆序对小记(~dtk)
    0/1分数规划 小记
    洛谷P3199 [HNOI2009]最小圈——题解
  • 原文地址:https://www.cnblogs.com/zerotomax/p/6501295.html
Copyright © 2011-2022 走看看