JDBC复习一(mysql)

来源:互联网 发布:阿里云 时间服务器 编辑:程序博客网 时间:2024/05/18 02:18

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

不同的数据库连接改变的是url 基本的逻辑结构不变
步骤如下:

  1. 先定义好四大参数 带上包名的驱动包完整名字 url(每个数据库都不同) 用户名 和密码
  2. 然后 利用反射加载驱动包
  3. 建立连接
  4. 创建statment
  5. 得到结果集
  6. 得到数据

    所有java.sql.Driver 实现类,都提供了静态代码块,块内的代码就是把自己注册到DriverManager中
    jdbc4.0 以后 每个驱动jar包中在meta-inf 目录下提供了一个名为java.sql.Driver 的文件 文件的内容就是接口实现类
    所以Class.forname(“com.mysql.jdbc.Driver”) 可以写可以不写 最好写着

如何增删改查:

    ResultSet rs = st.executeQuery(查询语句);    ResultSet rs = st.executeUpdate(增删改语句);

代码示列:

public class Jdbc {    private static Connection con = null;    private static Statement  st = null;    private static ResultSet  rs = null;    public static void main(String[] args)  {        String url = "jdbc:mysql://localhost:3306/mydata";        String driverClassName = "com.mysql.jdbc.Driver";        String username ="root";        String password ="****";        try {             Class.forName(driverClassName);             con = DriverManager.getConnection(url,username,password);             st = con.createStatement();             rs = st.executeQuery("select * from dept ");             while(rs.next()){                   System.out.print(rs.getString("dname"));                }        } catch (Exception e) {            throw new RuntimeException();        }finally{                try {                    if(rs != null) rs.close();                    if(st != null) st.close();                    if(con != null) con.close();                } catch (Exception e) {                    throw new RuntimeException();                }        }    }

还有一个Prestatement 它是预编译的 可以批处理 首先需要给出sql 模板

     String psql = "select id,loginName,email from user where id=?";          time = System.currentTimeMillis();            for (int i = 0; i < count; i++) {                int id=(int) (Math.random() * 100);                PreparedStatement preStatement = conn.prepareStatement(psql);              preStatement.setLong(1, new Long(id));                ResultSet pSet = preStatement.executeQuery();              preStatement.close();            }            System.out.println("preStatement cost:" + (System.currentTimeMillis() - time));   //用于记录运行时间
0 0
原创粉丝点击