package MYSQK; import java.sql.*; /** * PreparedStatement 对象可以对sql语句进行预编译,预编译的信息会存在存储该对象中,当相同的sql语句再次执行时,程序 * 会使用PrepareStatement对象中,而不需再次编译去查询数据库,大大提高了数据的访问效率 */ public class Insert { public static void main(String[] args) throws SQLException{ Connection conn=null; PreparedStatement pst =null; try { // 1 加载驱动类 Class.forName("com.mysql.jdbc.Driver"); // 2 通过DriverManager获取connection对象 String url="jdbc:mysql://192.168.64.129:3306/jdbc?" + "user=root&password=815qza&useUnicode=true&characterEncoding=UTF8"; conn = DriverManager.getConnection(url); if (!conn.isClosed()){ System.out.println("Succeeded connecting to the Database!"); }else{ System.out.println("Sorry,failed connecting to the Database"); } // 3 获取pre对象 String sql = "select * from USERS" ; pst = conn.prepareStatement(sql); //4 使用prepare对象执行sql语句 ResultSet rs = pst.executeQuery(); //5 操作result结果集 rs.absolute(2);//将指针定位到第二行数据 System.out.println("第二行记录的name为:"+rs.getString("name")); rs.beforeFirst();//指针定位到第一行记录值,这是定位到第一行之前的,调用next方法后才指向第一行 rs.next(); System.out.println("第一行记录的name为:"+rs.getString("name")); rs.afterLast();//将指针定位到最后一行后 rs.previous();//指针前移,定位到最后一行! System.out.println("最后一条记录的name值为:"+rs.getString("name")); }catch (ClassNotFoundException e){ e.printStackTrace(); }finally { // 6 关闭连接 pst.close(); conn.close(); } } }