day_04 JDBC

1.JDBC
    Java DataBase Connectivity  (java数据库链接),即链接数据库的API
    是一个接口或抽象类。
    注:API : Application Programming Intergace (应用程序接口),即函数库

    作用:连接数据库与程序的工具

    使用步骤:
        第0步: 导包
        第1步:注册驱动 (仅仅做一次)
      第2步:建立连接(Connection)
      第3步:创建运行SQL的语句对象(Statement)
      第4步:运行语句
      第5步:处理运行结果(ResultSet)
        第6步:释放资源

    *格式固定
     第一个类封装
     第二个类工具包

    public class Jdbc {
        public static void main(String[] args) {

            ResultSet resultSet=null;
            Statement statement=null;
            Connection conn=null;

            try {
                conn=JdbcUtil.getConnection();
                //第3步:创建运行SQL的语句对象(Statement)
                String sql="select * from student";
                statement=conn.createStatement();
                //第4步:运行语句,得到结果集
                resultSet = statement.executeQuery(sql);
                //第5步:处理运行结果(ResultSet)
                while(resultSet.next()){
                    System.out.println("索引打印"+resultSet.getString(2));
                    System.out.println("标签打印"+resultSet.getString("name"));;
                }
            }catch (Exception e){
                e.printStackTrace();
            }
            
            finally {
                //优化的关闭资源
                JdbcUtil.closeResultSet(resultSet);
                JdbcUtil.closeResultSet(statement);
                JdbcUtil.closeResultSet(conn);
            }
        }
    }

    工具包
    public class JdbcUtil {

        public static Connection getConnection() throws Exception {
            //第1步:注册驱动 (仅仅做一次)
            Class.forName("com.mysql.jdbc.Driver");
            //第2步:建立连接(Connection)
            Properties properties=new Properties();
            properties.load(JdbcUtil.class.getClassLoader().getResourceAsStream("jdbc.properties"));
            String url = properties.getProperty("url");
            String username = properties.getProperty("username");
            String password = properties.getProperty("password");
            return DriverManager.getConnection(url,username,password);
        }
        
        public static void closeResultSet(AutoCloseable autoCloseable){
            try {
                if(autoCloseable!=null){
                    autoCloseable.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

2.sql注入
    通过恶意的sql命令非法获得或更改设计者不允许操作的数据!

3.事物
    指访问并可能更新数据库中各种数据项的一个程序执行单元。

    四大特性:ACID
    原子性(atomicity)。一个事务是一个不可分割的工作单位,
        事务中包括的操作要么都做,要么都不做。
    一致性(consistency)。事务必须是使数据库从一个一致性状态
        变到另一个一致性状态。一致性与原子性是密切相关的。
    隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作
        及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
    持久性(durability)也称永久性(permanence),指一个事务一旦提交,
    它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

4.连接池
    存放常用数据库连接,提高效率

    优点:
        1.资源复用,避免频繁创建释放连接导致的大量性能开销,也增强了系统运行环境的平稳性
        2.更快的响应速度,初始化过程中,连接池就已经船舰了若干连接对象放在池中,减少了响应时间
        3.统一的连接管理,避免数据库连接遗漏,有超时强制回收设定,避免泄露资源  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值