JDBC及常见数据存取问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC及常见数据存取问题相关的知识,希望对你有一定的参考价值。

 连接数据库步骤:

注册驱动:Class.forName("com.mysql.jdbc.Driver");

设置数据库地址、用户名、密码:String url = "jdbc:mysql://localhost:3306/database";

创建连接:Connection conn = DriverManager.getConnection(url, username, password);

创建sql语句字符串:String sql = "insert into tb_books(name,price,bookCount,author) values(?,?,?,?)";

使用PreparedStatement处理sql语句:PreparedStatement ps = conn.prepareStatement(sql);

设置缺省数据:ps.setString(1, variable);

执行sql语句,返回受影响行数:int row = ps.executeUpdate();

释放对象:ps.close();

关闭连接:conn.close();

    out.println(request.getParameter("price"));
    double price = Double.parseDouble(request.getParameter("price"));
    out.println(price);
    try {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/test";
        String username = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, username, password);
        String sql = "insert into tb_books(name,price,bookCount,author) values(?,?,?,?)";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, book.getName());
        ps.setDouble(2, price);
        ps.setInt(3, book.getBookCount());
        ps.setString(4, book.getAuthor());
        int row = ps.executeUpdate();
        if (row > 0) {
            out.print("成功添加了" + row + "条数据!");
        }
        ps.close();
        conn.close();
    } catch (Exception e) {
        out.print("添加失败!");
        e.printStackTrace();
    }

 

    try {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/test";
        String username = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, username, password);
        if (conn != null) {
            out.println("success!!");
            conn.close();
        } else {
            out.println("fail");
        }
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }

 


Q:输入的是小数,但是存入之后显示的是四舍五入后的整数。

A:float最多表示7位有效数据。double最多表示16位有效数据。改了double类型的位数为0,就好了。


 

以上是关于JDBC及常见数据存取问题的主要内容,如果未能解决你的问题,请参考以下文章

JDBC 复习3 存取Oracle大数据 clob blob

JDBC原理及常见错误分析

常见缓存分类及特点介绍

数据库常见死锁原因及处理

部分代码片段

HDFS基本原理及数据存取实战