Java的知识点33——JDBC
生活随笔
收集整理的這篇文章主要介紹了
Java的知识点33——JDBC
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ?
測試與數據庫建立連接
package cn.dym01;import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;/*** 測試與數據庫建立連接* @author Administrator**/ public class Demo01 {public static void main(String[] args) {try {// 加載驅動類Class.forName("com.mysql.jdbc.Driver");long start=System.currentTimeMillis();//建立連接(連接對象內部其實包含了Socket對象,是一個遠程的連接。比較耗時!這是Connection對象管理的一個要點!)//真正開發中,為了提高效率,都會使用 連接池 來管理連接對象Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc", "root", "123456");long end=System.currentTimeMillis();System.out.println(conn);System.out.println("建立連接,耗時:"+(end-start)+"ms");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}} }測試執行SQL語句,以及SQL注入問題 ? 所以一般不用statement
package cn.dym01;import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; /*** 測試執行SQL語句,以及SQL注入問題 所以一般不用statement* @author Administrator**/ public class Demo02 {public static void main(String[] args) {try {// 加載驅動類Class.forName("com.mysql.jdbc.Driver");//建立連接(連接對象內部其實包含了Socket對象,是一個遠程的連接。比較耗時!這是Connection對象管理的一個要點!)//真正開發中,為了提高效率,都會使用 連接池 來管理連接對象Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc", "root", "123456");Statement stmt= conn.createStatement();String sql="insert into t_user (username,pwd,regTime) values ('蒼凌','cl',NOW());";stmt.execute(sql);//測試SQL注入String id="5 or 1=1"; //此句一執行,該數據庫的數據表中的數據將會被清空不見sql="delete from t_user where id="+id;stmt.execute(sql);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}} }測試 PreparedStatement的基本用法
package cn.dym01;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException;/*** 測試 PreparedStatement的基本用法* @author Administrator**/ public class Demo03 {public static void main(String[] args) {try {// 加載驅動類Class.forName("com.mysql.jdbc.Driver");Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc", "root", "123456");String sql="insert into t_user (username,pwd,regTime) values (?,?,?)"; // ? 代表占位符PreparedStatement ps=conn.prepareStatement(sql); // ps.setString(1, "代止兮"); // 參數索引是從1開始計算,而不是0 // ps.setString(2, "14"); // ps.setDate(3, new java.sql.Date(System.currentTimeMillis()));//可以使用setObject方法處理參數,ps.setObject(1, "蒼凌uyk");ps.setObject(2, "cljh");ps.setObject(3, new java.sql.Date(System.currentTimeMillis()));System.out.println("插入一行記錄");ps.execute();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}} }測試ResultSet結果集的基本用法
package cn.dym01;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;/*** 測試ResultSet結果集的基本用法**/ public class Demo04 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {//加載驅動類Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");String sql = "select id,username,pwd from t_user where id>?"; //?占位符ps = conn.prepareStatement(sql);ps.setObject(1, 13); //把id大于13的記錄都取出來rs = ps.executeQuery();while(rs.next()){System.out.println(rs.getInt(1)+"---"+rs.getString(2)+"---"+rs.getString(3));}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}finally{//遵循:resultset-->statment-->connection這樣的關閉順序!一定要將三個trycatch塊,分開寫!try {if(rs!=null){rs.close();}} catch (SQLException e) {e.printStackTrace();}try {if(ps!=null){ps.close();}} catch (SQLException e) {e.printStackTrace();}try {if(conn!=null){conn.close();}} catch (SQLException e) {e.printStackTrace();}}} }package cn.dym01; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;/*** 測試批處理的基本用法**/ public class Demo05 {public static void main(String[] args) {Connection conn = null;Statement stmt = null;ResultSet rs = null;try {//加載驅動類Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");conn.setAutoCommit(false); //設為手動提交long start = System.currentTimeMillis();stmt = conn.createStatement();for(int i=0;i<20000;i++){stmt.addBatch("insert into t_user (username,pwd,regTime) values ('代"+i+"',666666,now())");}stmt.executeBatch();conn.commit(); //提交事務long end = System.currentTimeMillis();System.out.println("插入20000條數據,耗時(毫秒):"+(end-start));} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}finally{//遵循:resultset-->statment-->connection這樣的關閉順序!一定要將三個trycatch塊,分開寫!try {if(rs!=null){rs.close();}} catch (SQLException e) {e.printStackTrace();}try {if(stmt!=null){stmt.close();}} catch (SQLException e) {e.printStackTrace();}try {if(conn!=null){conn.close();}} catch (SQLException e) {e.printStackTrace();}}} }
?
總結
以上是生活随笔為你收集整理的Java的知识点33——JDBC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java的知识点32——Mysql的简单
- 下一篇: Java的知识点25——程序、进程与线程