[关闭]
@Sarah 2015-07-05T05:24:00.000000Z 字数 1859 阅读 928

SQL LESSON 2

用java 访问数据库

Java DataBase Connection
此处输入图片的描述

  1. Class.forName(""); //驱动
  2. Connection con=DriverManager.getConnection("","","");
  3. //引号里分别是url、名字、密码(初始密码是空)
  4. Statement st=con.createStatement('','','');
  5. ResultSet rs=st.executeQuery(); //select
  6. =st.executeUpdate();//delete/update/insert

此处输入图片的描述
Result Set:
next()
把指针往下移动一行

sql里字符串要用单引号‘’


Transaction 事务

"update T set a=a+100 where id=2;"
"update T set a=a-100 where id =1"
此处输入图片的描述


连接池:可更换的ResultSet
此处输入图片的描述


java---jdbc---.jar----DB


上课代码案例

  1. package database;
  2. import java.io.FileInputStream;
  3. import java.sql.*;
  4. public class Test {
  5. public static void main(String[] args) {
  6. try {
  7. Class.forName("com.mysql.jdbc.Driver");
  8. Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/temp", "root", "");
  9. Statement st=con.createStatement();
  10. ResultSet rs=st.executeQuery("select * from test where id>5");
  11. rs.last();
  12. int rowCount=rs.getRow();
  13. rs.first();
  14. rs.absolute(3);
  15. rs.previous();
  16. while(rs.next()){
  17. String s1=rs.getString(1);
  18. String s2=rs.getString(2);
  19. System.out.println(s1+"\t"+s2+"\t" + rs.getString(3)+"\t"+ rs.getString(4));
  20. }
  21. //st.executeUpdate("update test set b=b+1 ");
  22. String ss="123";
  23. st.executeUpdate("insert into test(a,b,c) values('123','23','45')");
  24. int i=4000;
  25. //transaction start...
  26. con.setAutoCommit(false);
  27. try{
  28. st.executeUpdate("update test set b=b+"+i+" where id=1");
  29. st.executeUpdate("update test set b=b-"+i+" where id=2");
  30. con.commit();
  31. }
  32. catch(Exception e){
  33. con.rollback();
  34. System.out.println("error,already rollbacked!");
  35. }
  36. //end
  37. con.setAutoCommit(true);
  38. PreparedStatement pst=con.prepareStatement("insert into test(a,b,c,d) values(?,?,?,?)");
  39. String a="abcd";
  40. String c="defg";
  41. pst.setString(1, a);
  42. pst.setInt(2, (int)(Math.random()*100));
  43. pst.setString(3, c);
  44. pst.setBinaryStream(4, new FileInputStream("20130208224050_QJ8M2.gif"));
  45. pst.executeUpdate();
  46. // con.commit();
  47. } catch (ClassNotFoundException e) {
  48. // TODO Auto-generated catch block
  49. e.printStackTrace();
  50. } catch (Exception e) {
  51. // TODO Auto-generated catch block
  52. e.printStackTrace();
  53. }
  54. }
  55. }

在navicat里的视图
此处输入图片的描述

运行之前别忘了在系统里打开mySQL!

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注