手写JDBC

594 阅读1分钟

一注册驱动

告知JVM使用的是哪一个数据库的驱动(静态方法)(包名+类名)

Class.forName("com.mysql.jdbc.Driver");

当执行取不到server时,可这样执行

//编译
javac -Djava.ext.dirs=F:\kaikeba jdbcDemo.java
//执行
java  -Djava.ext.dirs=F:\kaikeba jdbcDemo

二获得链接

导包都导sql里面的,不导jdbc里的;多态!报异常是因为用户输入的串可能写错)后面设置下数据格式

String url="jdbc:mysql://localhost:3306/kkb?useUnicode=true&characterEncoding=UTF-8";
String user="root";
String password="123456";
Connection conn=DriverManager.getConnection(url,user,password);

三获得语句执行平台

有三种 Statement 对象,它们都专用于发送特定类型的 SQL 语句:

  • Statement 对象用于执行不带参数的简单 SQL 语句;
  • PreparedStatement 对象用于执行带或不带 IN 参数的预编译 SQL 语句;
  • CallableStatement 对象用于执行对数据库已存在的存储过程的调用。
Statement sta=conn.createStatement();

四执行sql语句

增-----一套语句执行一句sql语句 返回的是一个Int值,是指执行了几行
String sql="select * from user";
ResultSet rs=sta.executeQuery(sql);

五处理结果

ArrayList<Sort> arr=new ArrayList<Sort>();
while(rs.next()){
    //System.out.println(rs.getInt("id")+"..."+rs.getString("name"));
    User user=new User();
    user.setId(rs.getInt("id"));
    user.setName(rs.getString("name"));
    arr.add(user);
}
System.out.println(arr);

六释放资源

rs.close();
sta.close();
conn.close();