前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java学习day18----JDBC操作基本操作

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

作者头像
曼路
发布2018-10-18 15:17:34
3910
发布2018-10-18 15:17:34
举报
文章被收录于专栏:浪淘沙浪淘沙

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.代码

代码语言:javascript
复制
        // 注册数据库驱动
        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)  语句中的参数可以使用占位符(?) ?

代码语言:javascript
复制
   // 准备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

代码语言:javascript
复制
className=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/reba
name=root
password=12345

2)JdbcUtil.class

代码语言:javascript
复制
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

代码语言:javascript
复制
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);
        }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年06月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档