美文网首页
java操作mysql数据库-jdbc

java操作mysql数据库-jdbc

作者: liangxifeng833 | 来源:发表于2017-02-15 17:20 被阅读1038次

一.JDBC介绍

Paste_Image.png

二.准备

*下载mysql-connector-java-5.1.38.jar

  • 在项目根目录新建lib目录,并将mysql-connector-java-5.1.38.jar 复制到给目录下
  • 在Eclipse编辑器中右键点击mysql-connector-java-5.1.38.jar -> Build Path -> Add to Build Path,将其添加到环境变量中,操作完成后编辑器会在根目录下自动生成 Referenced Libraries->mysql-connector-java-5.1.38.jar,代表环境变量添加成功;

具体代码请点击

三.Demo之(对面的女孩看过来)

Paste_Image.png
Paste_Image.png

四.执行SQL语句的两种方式

  • (1) 通过Statement对象执行方法,直接执行
            //加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //获取数据库连接
            Connection conn = DriverManager.getConnection(URL, NAME, PASS);
            //创建Statement对象
            Statement stmt = (Statement) conn.createStatement();
            
            ResultSet res = stmt.executeQuery("select id from goodess");
            while(res.next())
            {
                System.out.println(res.getInt("id"));
            }       
  • (2) 现将sql语句进行预编译,然后为预编译的占位符赋值后执行
        String sql = " insert into goodess (user_name,sex,birthday,add_time,update_time) " + 
                    "values (" + 
                    "?,?,?,current_date,current_date)";
        //预编译
        PreparedStatement ptmt = conn.prepareStatement(sql);
        //为预编译的占位符赋值
        ptmt.setString(1, gs.getUser_name());
        ptmt.setInt(2,gs.getSex());
        ptmt.setDate(3, new Date(gs.getBirthday().getTime()));
        //执行sql语句
        ptmt.execute();

五.日期类型注意

  • 如果从java.util.date类型的数据,新增到数据库中的java.sql.date类型字段时,序号转换为java.util.date类型才可以,而从数据库查出来的java.sql.date类型字段向类的属性java.util.date类型赋值是不需要转换的,因为java.sql.date是java.util.date的子类;
Paste_Image.png

JDBC其他应用

Paste_Image.png

批量新增

public static void batchInsert() throws ClassNotFoundException, SQLException{
        long start = System.currentTimeMillis();
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DriverManager.getConnection(
                        "jdbc:mysql://127.0.0.1:3306/kxh?useServerPrepStmts=false&rewriteBatchedStatements=true",
                        "root", "root");

        connection.setAutoCommit(false);
        PreparedStatement cmd = connection
                .prepareStatement("insert into test1 values(?,?)");
        
        for (int i = 0; i < 1000000; i++) {//100万条数据
            cmd.setInt(1, i);
            cmd.setString(2, "test");
            cmd.addBatch();
            if(i%1000==0){
                cmd.executeBatch();
            }
        }
        cmd.executeBatch();
        connection.commit();
        
        cmd.close();
        connection.close();
        
        long end = System.currentTimeMillis();
        System.out.println("批量插入需要时间:"+(end - start)); //批量插入需要时间:24675
    }

点击查看代码演示

相关文章

网友评论

      本文标题:java操作mysql数据库-jdbc

      本文链接:https://www.haomeiwen.com/subject/mchfwttx.html