使用MySQL需要导mysql-connector-java-5.1.7-bin.jar包
所有的java.sql.Driver实现类,都提供了static块,块内的代码就是把自己注册到DriverManager中。
1.配置四大参数
1 String driverClassName="com.mysql.jdbc.Driver"; 2 String url="jdbc:mysql://localhost:3306/数据库名"; 3 String username="root"; 4 String password="密码";
2.加载数据库驱动
1 Class.forName(driverClassName); 2 3 //等同于上边的加载驱动 4 5 //com.mysql.jdbc.Driver driver= new com.mysql.jdbc.Driver(); 6 7 //DriverManager.registerDriver(driver);
3.创建连接
1 Connection con=DriverManager.getConnection(url,user,password);
4.得到连接后就可对数据库进行增、删、改、查等操作
(1)对数据库增删改
a)通过Connection对象创建Statement,Statement语句的发送器,它的功能是向数据库发送sql语句!
b)调用它的int executeUpdate(String sql),它可以发送DML,DDL
Statement stmt=con.createStatement(); //使用Statement发送sql语句 //String sql="insert into stu values('ITCAST-0004','zhaoliu',19)"; //String sql="update stu set age=25 where name='zhaoliu'"; String sql="dalete from stu"; //返回所影响的行数 int r=stmt.executeUpdate(sql);
(2)对数据库进行查询
查询后返回表格----对查询返回的“表格”进行解析!
1 String sql="select * from stu"; 2 //调用Statement的ResultSet rs(返回值) executeQuery(String querysql) 3 //返回的是结果集 4 ResultSet rs=stmt.executeQuery(sql); 5 6 7 //解析ResultSet 8 while(rs.next){//把光标向下移动一行,并判断下一行是否存在! 9 //可以以下标的方式获取 10 String str=rs.getString(1); 11 //可以以字段名称获取 12 String str2=rs.getString("name"); 13 System.out.println(str); 14 System.out.println(str2); 15 }
查询结束后:
1 rs.close(); 2 stmt.close(); 3 con.close();
//规范代码形式
1 public void fun3() throws ClassNotFoundException, SQLException { 2 // 引用在外边给 3 Connection con = null;// 定义引用 4 Statement stmt = null; 5 ResultSet rs=null; 6 try { 7 // 一、得到连接 8 String driverClassName = "com.mysql.jdbc.Driver"; 9 String url = "jdbc:mysql://localhost:3306/mydb3"; 10 String username = "root"; 11 String password = "123456"; 12 13 Class.forName(driverClassName); 14 con = DriverManager.getConnection(url, username, password);// 实例化 15 16 // 二、创建Statement 17 stmt=con.createStatement();//createStatement(int,int);这两个参数是用来确定创建的statement能生成什么样的结果集 18 String sql="select * from stu"; 19 rs=stmt.executeQuery(sql); 20 // rs.beforeFirst(); 21 rs.last(); 22 System.out.println("行数:"+rs.getRow()); 23 rs.beforeFirst(); 24 //三、循环遍历rs,打印其中数据 25 /*while(rs.next()){ 26 System.out.println(rs.getString(1));//数据库中第一例的值 27 }*/ 28 //获取结果集元数据在获取列数 29 int count=rs.getMetaData().getColumnCount(); 30 31 while(rs.next())//遍历行 32 { 33 int i; 34 for(i=1;i<=count;i++){//遍历列 35 System.out.print(rs.getMetaData().getColumnName(i)+":"+rs.getString(i)+" "); 36 } 37 System.out.println(" "); 38 } 39 } catch (Exception e) { 40 throw new RuntimeException(e); 41 } finally { 42 // 关闭 43 if(rs!=null) rs.close(); 44 if(stmt!=null) stmt.close(); 45 if(con!=null) con.close(); 46 } 47 }