11.连接数据库、结果集光标与元数据

在这里插入图片描述
在这里插入图片描述在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/20191101213137136.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzMzMzg1MA==,size_16,color_FFFFFF,t_70在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

//连接数据库:得到connection就成功
public class demo1 {
	/*ClassNotFoundException:
	 * 没导驱动包
	 * SQLException :
	 * 检查3个参数URL,username,password是否正确
	 * 检查是否开启MySQL服务器
	 * */
	@Test
	public void fun1() throws ClassNotFoundException, SQLException {
		/*jdbc四大参数:
		 * driverClassName:com.mysql.jdbc.Driver
		 * url:jdbc:mysql://localhost:3306/mydb1
		 * username:root
		 * password:123
		 * */
		//准备四大参数
	    String driverClassName="com.mysql.jdbc.Driver";
	    //jdbc协议格式!jdbc :工商名称:子协议(由工商自己来规定)
	    //对MySQL而言,它的子协议结构://主机:端口号/数据库名称
	    String url="jdbc:mysql://localhost:3306/mydb1";
	    String username="root";
	    String password="123";
	    Class.forName(driverClassName);//加载驱动类
	    
	    //使用三个参数得到连接对象
	    Connection con=DriverManager.getConnection(url, username, password);
	    System.out.println(con);
	    /*
	     * 二、对数据库做增、删、改
	     * 1、通过connection对象创建Statement(语句发送器,功能是向数据库发送sql语句)
	     * 2、调用它的int executeUpdate(String sql),它可以发送DML、DDL
	     * */
	    //1.通过Connection得到Statement对象
	    Statement stmt=con.createStatement();
	    //2.使用Statement发送sql语句!
	    String sql="INSERT INTO stu VALUES('002','xiaomin',23,'female')";
	    int r=stmt.executeUpdate(sql);
	    System.out.println(r);
	public void fun2() throws ClassNotFoundException, SQLException {
		/*一、得到Connection
		 *二、得到Statement,发送select语句;
		 *三、对查询返回的表格进行解析!
		 *
		 * 一、得到连接
		 * 1.准备四大参数
		 * */
		String driverClassName="com.mysql.jdbc.Driver";
		String url="jdbc:mysql://localhost:3306/mydb1";
		String username="root";
		String password="123";
		
		/*
		 *加载驱动类 
		 * */
		Class.forName(driverClassName);
		
		/*
		 * 通过剩下的三个参数调用DriverManager的getConnection(),得到连接
		 * */
		Connection con=DriverManager.getConnection(url, username, password);
		/*
		 * 二、得到statement,执行select语句
		 * 1、得到statement对象:Connection的createStatement()方法
		 * */
		Statement stmt=con.createStatement();
		
		/*
		 * 2、调用Statement的ResultSet(结果集) rs=executeQuery(String querySql)
		 * */
		ResultSet rs=stmt.executeQuery("select *from stu");
		
		/*
		 * 三、解析RusultSet
		 * 1、把行光标移动到第一行,可以调用next()方法完成!
		 * 
		 * getString()与getObject()是通用的;
		 * */
		if(rs.next()) {//把光标移到下一行,并判断下一行是否存在!
			int number=rs.getInt(1);//通过编号(第几列)来获得该列的值(该列为int型)
			String name1=rs.getString("name1");//也可以通过列名称来获得该列的值
			
			System.out.println(number+ ","+name1);
		}
		/*
		 * 四、关闭资源
		 * 倒关
		 * */
		rs.close();
		stmt.close();
		con.close();	
	}
// 规范化
	public void fun3()throws Exception  {
		Connection con=null;//
		Statement stmt=null;
		ResultSet rs=null;//在try 外给出引用定义,try内为对象实例化
		try {
		String driverClassName="com.mysql.jdbc.Driver";
		String url="jdbc:mysql://localhost:3306/mydb1";
		String username="root";
		String password="123";
		
		Class.forName(driverClassName);
		con=DriverManager.getConnection(url, username, password);
		stmt=con.createStatement();
		rs=stmt.executeQuery("select * from stu");
		while(rs.next()){
			System.out.println(rs.getString("number")+","+rs.getObject(2));
		}
		
		}catch(Exception e) {
			throw new RuntimeException(e);
		}finally {//关闭
			if(rs!=null)rs.close();//防止执行rs=stmt.executeQuery("select * from stu")
			                        //抛出异常时,rs没有赋值为空指针(此catch里的语句执行前会
			                        //执行finally语句)
			if(stmt!=null)stmt.close();
			if(con!=null)con.close();
		}			
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值