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

原文地址:https://www.cnblogs.com/zerotomax/p/6501295.html