JavaJdbc_基础(1)

环境:win7、mysql5、myeclipse

说明:本文记录java使用jdbc查询数据库的最基础最直接的步骤,以后将继续深入。数据库部分自己创建。

准备:把数据库的驱动加入到构建路径中
 1、加载驱动程序并注册驱动(首先把mysql的注册驱动放入构建路径)
 2、获取与数据库的连接
 3、得到代表SQL语句的对象,并发送SQL给数据库
 4、如果有查询结果,得到封装了查询结果的对象
 5、遍历结果
 6、释放占用的资源

代码+注释如下:

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class JdbcDemo1 {

 /**
  * @param args
  * @throws SQLException
  */
 public static void main(String[] args) throws SQLException {
  // TODO Auto-generated method stub
  //1.加载驱动程序并注册驱动:Drivermanager
  DriverManager.registerDriver(new com.mysql.jdbc.Driver());
  //2.获取与数据库的连接:Connection
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","mysql");
  //3.得到代表SQL语句的对象,并发送SQL给数据库:Statement
  Statement stmt = conn.createStatement();
  //4.如果有查询结果,得到封装了查询结果的对象RsultSet
  ResultSet rs = stmt.executeQuery("select * from users");
  //5.遍历结果
  while(rs.next()){
   System.out.println("-------");
   System.out.println(rs.getObject("id"));
   System.out.println(rs.getObject("name"));
   System.out.println(rs.getObject("password"));
   System.out.println(rs.getObject("email"));
   System.out.println(rs.getObject("birthday"));
  }
  //6.释放资源
  rs.close();
  stmt.close();
  conn.close();
 }

}

这样最基本的查询就完成了,但是有问题,下面是问题及解决:


package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class JdbcDemo1 {

 /**
  * @param args
  * @throws SQLException
  */
 public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
  //1.加载驱动程序并注册驱动:Drivermanager
  //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 不可取:1.严重依赖驱动包。2.导致注册2次。更改如下:
  Class.forName("com.mysql.jdbc.Driver");//加载类的静态代码块,就可以实现注册了。
  //2.获取与数据库的连接:Connection
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","mysql");
  //3.得到代表SQL语句的对象,并发送SQL给数据库:Statement
  //Statement stmt = conn.createStatement();//更改如下后有这些优势:1、预编译SQL语句,数据库执行效率高。2、防止SQL注入3、支持参数占位符"?"
  PreparedStatement stmt = null;
  //4.如果有查询结果,得到封装了查询结果的对象RsultSet
  //ResultSet rs = stmt.executeQuery("select * from users");
  stmt = conn.prepareStatement("select * from users");
  ResultSet rs = stmt.executeQuery();
  //5.遍历结果
  while(rs.next()){
   System.out.println("-------");
   System.out.print(rs.getObject("id"));
   System.out.print(rs.getObject("name"));
   System.out.print(rs.getObject("password"));
   System.out.print(rs.getObject("email"));
   System.out.println(rs.getObject("birthday"));
  }
  //6.释放资源
  rs.close();
  stmt.close();
  conn.close();
 }

}
这样的话,看着比较像样了,为了说明问题注释较多,可以去掉再看就清爽多了。这样就是实现了最基础的mysql连接。但是还有如下问题要解决:

1.mysql的配置信息在代码内,这样数据库有更改后就必须更改源代码,所以需要把数据库信息提取放到配置文件中,这里用properties文件。

2.真正的项目中不可能把数据库连接还有操作放在一个文件,内容过多,且数据库连接很固定,可以提出单独的jdbc文件,一直沿用。

3.很多问题以后再说,最终的目的是得到一个通用的版本。。。






JavaJdbc_基础(1)

上一篇:YouTube数据:谁获得了最多订阅者?


下一篇:通过RCU建立OSB和SOA Suite的database schemas