java学习day18----JDBC操作基本操作

1.JDBC了解
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
2.开发步骤
1.创建一个java项目
2.导入mysql的数据库驱动jar包 驱动包
3.注册驱动 Class.forName(“”)
4.获取与数据库的链接
5.得到代表发送和执行SQL语句的对象 Statement
6.执行语句
7.如果执行的是查询语句,就会有结果集,处理
8.释放占用的资源
3.代码

        // 注册数据库驱动
        DriverManager.deregisterDriver(new Driver());
        // 获取数据库连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "root", "123456");
        // 获取执行sql语句的statem0ent
        Statement st = conn.createStatement();
        String sql = "select * from user ";
        // 执行sql语句增删改查
        //st.executeUpdate("insert into user values(12,'杨过','123456')");
        //st.executeUpdate("update user set namer='杨康' where id='12'");
        //st.executeUpdate("delete from user where id='12'");
        ResultSet set = st.executeQuery(sql);
        while (set.next()) {
            // 获取指定位置的数据,角标从1 开始
            String com1 = set.getString(1);
            String com2 = set.getString(2);
            String com3 = set.getString(3);
            String com4 = set.getString(4);
            System.out.println(com2 + ":" + com3 + ":" + com4 + ":" + com1);
        }
        // 释放数据库资源
        set.close();
        st.close();
        conn.close();

4.PreparedStatement
 PreparedStatement实现Statement
 PreparedStatement需要预编译以及需要参数
 由于PreparedStatement有缓存区,所以效率更高
 由于PreparedStatement有缓存区,所以更安全,防止了注入(1=1)
 语句中的参数可以使用占位符(?) ?


   // 准备sql预编译语句
    // ?占用一个参数位
    String sql = "INSERT INTO user (NAME,sex,age) VALUES (?,?,?);";
    // 3:执行sql预编译语句(检查语法)
    stsm=conn.prepareStatement(sql);
    // 4:设置传递的参数
     stsm.setString(1,"张三");
     stsm.setString(2,"男");
     stsm.setInt(3,20);
    // 5:发送参数,执行sql
    // 注意:这里的方法后面没有参数
    int result = stsm.executeUpdate();

5.封装工具类的使用
1)db.properties

className=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/reba
name=root
password=12345

2)JdbcUtil.class

public  static   String DRIVER ;
    public  static   String URL ;
    public  static   String USERNAME ;
    public  static   String PASSWORD ;

    static{
        //读取配置文件的方式 
        InputStream is = JdbcUtil.class.getClassLoader().getResourceAsStream("db.properties");
        Properties p = new Properties();
        try {
            p.load(is);
            DRIVER = p.getProperty("driverClass");
            URL = p.getProperty("jdbcUrl");
            USERNAME = p.getProperty("username");
            PASSWORD = p.getProperty("password");

            Class.forName(DRIVER);//加载驱动
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 获取数据库连接
     * @return
     * @throws Exception
     */
    public static Connection getConnection() throws Exception{
        return DriverManager.getConnection(URL, USERNAME, PASSWORD);
    }

    /**
     * 关闭资源的方法
     * @param rs
     * @param st
     * @param con
     */
    public static void release(ResultSet rs ,Statement st,Connection con){
        //6.关闭资源  (有顺序)
        if(rs!=null){
             try {
                rs.close();
                rs = null;  //垃圾回收器立即回收
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if(st!=null){
            try {
                st.close();
                st = null;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if(con!=null){
            try {
                con.close();
                con = null;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }

3)Test.class

Connection con = null;
        Statement st = null;
        ResultSet rs = null;
        try {
            con = JdbcUtil.getConnection();
            st = con.createStatement();
            rs = st.executeQuery("");
            while(rs.next()){
                //封装数据
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JdbcUtil.release(null, st, con);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值