MySQL入门 9(JDBC编程)

JDBC(Java DataBase Connectivity)指的是Java数据库连接
JDBC优点:直接底层操作,提供了很简单、便捷的访问数据库的方法,跨平台性比较强。灵活性比较强,可以写很复杂的SQL语句
JDBC缺点: 如果遇到批量操作,频繁与数据库进行交互,容易造成效率的下降, 操作比较繁琐,很多代码需要重复写很多次。
主要流程:
1.加载驱动
2.建立连接
3.创建对象statement
4.执行sql语句
5.处理结果集 , 按照列名获取和int都可以
int getInt(int columnIndex) throws SQLException;
int getInt(String columnLabel) throws SQLException;
6.释放资源

public class JDBC {

    public static void main(String[] args) {
        //1.加载程序
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        //2.获取连接
        //第一种 :DriverManager
        //url规范  jdbc:<数据库的名字>://host:port/<database name>
        //第二种 ;DataSource数据源
        String url = "jdbc:mysql://127.0.0.1:3306/java7";
        //都是接口
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        try {
            connection = DriverManager.getConnection(url, "root", "199938");
             //1 PreparedStatement 执行命令
         //   String sql = "select *from table where qq_mail" + "like ? and class_id= ? ";
         //   preparedStatement = connection.prepareStatement(sql);
         //   preparedStatement.setInt(1, 3);//第一个参数值
         //   preparedStatement.setString(2, "%孙");//第二个参数值
         //   resultSet = preparedStatement.executeQuery();
            //3.创建命令
            statement = connection.createStatement();
            //4.准备SQL语句,执行
            String sql = "select id,name,balance from account";
            resultSet = statement.executeQuery(sql);
            //5.返回结果,处理结果
            while (resultSet.next()) {
                //一般不用下标 ,用列名
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                int balance = resultSet.getInt("balance");
                System.out.println(String.format("id:%d   name:%s    balance:%s", id, name, balance));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //6.关闭资源
            //谁先创建谁后关闭,先关结果,命令,连接
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
JDBC常用接口和类

1. 数据库连接
(1)DriverManager静态方法获取
(2)DataSource数据源对象获取,非物理性关闭,实际对Connection对象进行初始化重置
2. Statement对象
主要是将SQL语句发送到数据库中,有三种Statement对象,
(1)Statement:用于执行不带参数的简单SQL语句
(2)PreparedStatement:用于执行带或不带参数的SQL语句查询;SQL语句会预编译在数据库系统;执行速度快于Statement对象,安全性能好;编译一次,而Statement编译俩次,占位符?不能使用多值,下标从1开始;阻止常见SQL注入攻击;最常用。
(3)CallableStatement对象:用于执行数据库存储过程的调用
3. 执行SQL的方法
(1)executeQuery() 方法执行后返回单个结果集的,通常用于select语句
(2)executeUpdate()方法返回值是一个整数,指示受影响的行数,通常用于update、insert、delete语句
4. ResultSet对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值