zoukankan      html  css  js  c++  java
  • JDBC

    JDBC

    第一个jdbc程序

    import java.sql.*;
    public class firstJdbc {
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
            //1.加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2.用户信息和url
            String url="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
            String username="root";
            String password="13476110270dwx";
            //3.连接,Connection代表数据库
            Connection connection=DriverManager.getConnection(url,username,password);
            //4.执行sql对象
            Statement statement =connection.createStatement();
            //5.执行sql
            String sql="select * from users";
            //executeQuery()查询操作,返回ResultSet
            //execute()执行任何sql
            //executeUpdate()执行更新,删除,插入,返回受影响的行数
            //executeBatch()可以放多个sql执行
            ResultSet resultSet=statement.executeQuery(sql);
            while(resultSet.next()){
                //getObject()不知道数据类型时使用
                //getString()获得字符串
                //getInt()获得整数...
                System.out.println("id="+resultSet.getObject("id"));
                System.out.println("name="+resultSet.getObject("NAME"));
                System.out.println("password="+resultSet.getObject("PASSWORD"));
                System.out.println("email="+resultSet.getObject("email"));
                System.out.println("birth="+resultSet.getObject("birthday"));
            }
            //6.释放连接
            resultSet.close();
            statement.close();
            connection.close();
        }
    }

    Statement对象不安全,会存在sql注入问题

    PreparedStatement安全的,其防止sql注入的本质是吧传递的参数当做字符包裹

        //使用?占位符代替参数
            String sql="insert into users(id,name,password) values(?,?,?)";
            //预编译sql,不执行
            PreparedStatement st=connection.prepareStatement(sql);
            //给参数赋值,第一个为位置,第二个为值
            st.setInt(1,4);
            st.setString(2,"dengwenxiong");
            st.setString(3,"123456");
            //执行
            int i=st.executeUpdate();

    事务

    //开启事务
    connection.setAutoCommit(false);
    //提交事务
    connection.commit();
    //回滚
    connection.rollback();

    数据库连接池

    池化技术:准备一些预先的资源,过来就连接预先准备好的

    待更新

  • 相关阅读:
    pyhton 线程锁
    python 守护线程
    python 线程
    python 判断文件的字符编码
    python 进程管道
    python 进程池
    webpack学习(一)起步安装
    最近特别喜欢的一首歌
    你真的了解回流和重绘吗?
    你了解SEO中的时效性吗?
  • 原文地址:https://www.cnblogs.com/python-road/p/13255940.html
Copyright © 2011-2022 走看看