通过JDBC进行简单的增删改查(二)
本章笔记更易理解和学习,也是我第一次初学的笔记。
1 package javastudy; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.ResultSetMetaData; 8 import java.sql.SQLException; 9 import java.sql.Statement; 10 11 public class TextJDBC { 12 13 public static void main(String[] args) { 14 // TODO Auto-generated method stub 15 /**数据库的增删改查 16 * 方法:连接到已有的数据库,通过sql命令进行操作 17 * 具体步骤: 18 * 1.添加mysql的jar包到程序中,具体操作见上章随笔 19 * 2,加载驱动程序Class。forname(); 20 * 3.连接到数据库 21 * 4.进行sql命令操作。 22 * */ 23 Connection conn = null; 24 Statement st = null; 25 String sql; 26 PreparedStatement ps; 27 try { 28 //加载驱动程序,虚拟机(jvm); 29 Class.forName("com.mysql.jdbc.Driver"); 30 //连接到数据库 31 String url="jdbc:mysql://localhost:3306/student"; 32 String user="root"; 33 String password="12345678"; 34 conn=DriverManager.getConnection(url, user, password); 35 st=conn.createStatement(); 36 } catch (ClassNotFoundException e) { 37 // TODO Auto-generated catch block 38 System.out.println("加载数据库失败!"); 39 e.printStackTrace(); 40 } catch (SQLException e) { 41 // TODO Auto-generated catch block 42 System.out.println("数据库连接失败!"); 43 e.printStackTrace(); 44 } 45 /* //增加数据 46 sql="insert into studentinfo values ('07','jine','女','18')"; 47 //修改数据 48 sql="update studentinfo set name='鲍勃' where no='03'"; 49 //删除数据 50 sql="delete from studentinfo where no='07' "; 51 try { 52 st.executeUpdate(sql); 53 } catch (SQLException e1) { 54 // TODO Auto-generated catch block 55 System.out.println("添加数据失败!!"); 56 e1.printStackTrace(); 57 } 58 */ 59 //第二种加载数据的方法:通过PreparedStatement,把values的值先做未知处理,然后进行赋值 60 try { 61 sql="delete from studentinfo where no='03' "; 62 st.executeUpdate(sql); 63 //61.62两段是为了下面语句的执行进行的操作,与第二种增加数据的方法无关。 64 sql="insert into studentinfo values (?,?,?,?)"; 65 ps=conn.prepareStatement(sql); 66 ps.setString(1, "03"); 67 ps.setString(2, "Bob"); 68 ps.setString(3, "男"); 69 ps.setInt(4, 20); 70 //进行数据库的更新加载,然后显示。 71 ps.executeUpdate(); 72 } catch (SQLException e1) { 73 // TODO Auto-generated catch block 74 System.out.println("添加数据失败!!"); 75 e1.printStackTrace(); 76 } 77 //查询数据 78 try { 79 //有返回值操作 80 ResultSet rs=st.executeQuery("select * from studentinfo"); 81 //管理数据库的表头,即输出列表头; 82 ResultSetMetaData rsm= rs.getMetaData(); 83 for(int i =1;i<=rsm.getColumnCount();i++) 84 { 85 System.out.print(rsm.getColumnName(i)+"\t"); 86 } 87 System.out.println(); 88 while(rs.next()) 89 { 90 for(int i =1; i<=4;i++) 91 { 92 System.out.print(rs.getString(i)+"\t"); 93 } 94 System.out.println(); 95 } 96 97 } catch (SQLException e) { 98 // TODO Auto-generated catch block 99 System.out.println("查找失败!"); 100 e.printStackTrace(); 101 } 102 103 } 104 105 }