zoukankan      html  css  js  c++  java
  • jdbc

    package com.mm;

    import java.sql.ResultSet;
    import java.sql.SQLException;

    // import com.mysql.jdbc.Statement;

    //import java.sql.*;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.Statement;
    import java.sql.DatabaseMetaData;

    public class JDBCMySQL {

    static String sql = null;
    static MySQLHelper db1 = null;
    static ResultSet ret = null;



    public JDBCMySQL() {
    // TODO Auto-generated constructor stub
    }

    public static void main(String[] args) throws SQLException, ClassNotFoundException {
    // TODO Auto-generated method st


    Connection conn = null;

    PreparedStatement pStatementstmt = null;


    /**************************************************************
    * 1, 加载驱动
    * 加载数据库驱动到jvm。 加载成功后,会将Driver类的实例注册到DriverManager类中。
    * */
    try {
    Class.forName("com.mysql.jdbc.Driver");
    } catch (Exception e) {
    System.out.println("加载驱动失败");
    e.printStackTrace();
    }

    /***************************************************************
    * 2, 链接数据库
    获得connect对象
    * */

    try {
    conn = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/new_schema2?useUnicode=true&characterEncoding=utf8&transformedBitIsBoolean=yes", "root",
    "123456");
    } catch (Exception e) {
    System.out.println(" 链接数据库 失败");
    e.printStackTrace();
    }

    /*创建一个Statement
    •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
    种类型:
    1、执行静态SQL语句。通常通过Statement实例实现。
    2、执行动态SQL语句。通常通过PreparedStatement实例实现。
    3、执行数据库存储过程。通常通过CallableStatement实例实现。
    具体的实现方式:
    */

    try {
    //3, 操作数据库
    String querySql = "select * from usr_table " ;
    //connection 接口 进行 实例化操作
    //创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
    pStatementstmt = conn.prepareStatement(querySql);
    // 第一 个 ? 的内容
    //stmt.setInt(1, 1);

    //通过 statement 可以对数据库 增删改擦
    Statement stmt=conn.createStatement();


    /* 判断数据库是否存在 表 ,不存在就创建 */
    /* 通过连接获取DatabaseMetaData,即调用connection.getMetaData() */
    DatabaseMetaData metaData = conn.getMetaData();

    //存储查询结果的对象,还可以操作数据。
    ResultSet rs1 = metaData.getColumns(null, "new_schema2", "student_9" , null);
    // Map map = new HashMap();
    if(rs1.next()){
    System.out.println("存在表 9");
    }else{
    System.out.println("  不 存在表 9 ");

    String creaSql = "create table student_9 (NO char(20), name varchar(20), primary key(NO) )";
    int result = stmt.executeUpdate(creaSql);
    if (result != -1) {
    System.out.println(" 创建 表成功");
    }
    }


    //插入数据
    /*
    sql = "insert into student_9 (NO,name) values('008','陶伟基')";
    stmt.executeUpdate(sql);
    */

    for (int i = 20; i < 40; i++) {
    String iString = Integer.toString(i);
    sql = "insert into student_9 (NO,name) values("+iString+",'zhou')";
    stmt.executeUpdate(sql);
    }



    sql = "select * from student_9 ";
    ResultSet rsStudent = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
    System.out.println("学号 姓名");
    while (rsStudent.next()) {
    System.out
    .println(rsStudent.getString(1) + " " + rsStudent.getString(2));// 入如果返回的是int类型可以用getInt()
    }



    //记录集
    ResultSet rs= stmt.executeQuery(querySql);
    //执行查询
    // ResultSet rs = pStatementstmt.executeQuery();

    System.out.println(" 查询 表所以内容");
    while (rs.next()) {
    System.out.print(rs.getInt("id")+" : ");
    System.out.print(rs.getString("name") + ", ");
    System.out.println( rs.getString("age") + "");
    System.out.println("----------------------------");
    }

    // 4,关闭数据库
    /*关闭JDBC对象
    操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
    明顺序相反:
    1、关闭记录集
    2、关闭声明
    3、关闭连接对象
    */

    if (rs != null){
    rs.close();
    }
    if (stmt != null) {
    stmt.close();
    }
    if (pStatementstmt != null){
    pStatementstmt.close();
    }
    if (conn != null){
    conn.close();
    }

    // statement.execute(" CREATE TABLE emp ( empno INT(4), ename varchar(10) , job varchar(10), hiredare date, sal float(7,2) ) ");
    // statement.execute(" insert into emp (empno, ename, job, hiredate, sal) values (6060, '李兴华', 'jingli', '2001-09-12', 2000.20) ");


    } catch (Exception e) {
    System.out.println("---- shi bai --- ");
    e.printStackTrace();
    // TODO: handle exception
    }


























    }

    }

  • 相关阅读:
    codeforces 713A A. Sonya and Queries(状态压缩)
    2016大连网赛
    hdu-5834 Magic boy Bi Luo with his excited tree(树形dp)
    codeforces gym-101078
    ifrog-1028 Bob and Alice are playing numbers(trie树)
    codeforces 477B B. Dreamoon and Sets(构造)
    codeforces 477A A. Dreamoon and Sums(数学)
    三角形划分区域
    当总统
    Friends number
  • 原文地址:https://www.cnblogs.com/iOS-mt/p/5735965.html
Copyright © 2011-2022 走看看