使用JDBC执行数据库语句


         在上一节已经介绍了如何连接数据库。那么这一节讲如何利用JDBC来执行数据库语句。在利用JDBC执行数据库语句的前提是你已经连接到了数据库。JDBC执行数据库语句主要是用Statement(在java.sql包里)类中的三个方法。Execute()、excutequery()、excuteupdate()。但在使用Statement之前必须要有Connection类。因为要使用Connection类的Createstatement()方法来创建一个Statement。

-Execute()

Execute方法可以执行所有的SQL语句,其返回值为true或false。如果结果为true,则执行的语句是有返回值的(如 SELECT * FROM database_name)。如果结果为false,则执行的语句是没有返回值的(如INSERT、UPDATE、DELETE)。


public void statment1() {
		try {
			Driver driver = new com.mysql.jdbc.Driver();
			String url = "jdbc:mysql://localhost:3306/dreamweb";
			String user = "root";
			String password = "wobeidaohao";
			DriverManager.registerDriver(driver);
			Properties pro = new Properties();
			pro.setProperty("user", user);
			pro.setProperty("password", password);
			Connection con = DriverManager.getConnection(url, pro);
			Statement sta = con.createStatement();
			StringBuffer sb = new StringBuffer();
			sb.append("CREATE TABLE TB_JDBC(");
			sb.append("classid int PRIMARY KEY AUTO_INCREMENT, ");
			sb.append("classname varchar(18) NOT NULL UNIQUE)");
			boolean value = sta.execute(sb.toString());
			System.out.println(value);   //返回false
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

-ExecuteUpdate()

该方法只能执行INSERT、UPDATE 或 DELETE,或者不返回任何内容的 SQL 语句。为什么要和Execute()方法分开呢?因为它的返回值和Execute()方法不一样。它会返回一个INT类型的值。该值描述了数据库语句影响的数据库记录的条数。

public void statment2() {
		try {
			Driver driver = new com.mysql.jdbc.Driver();
			String url = "jdbc:mysql://localhost:3306/dreamweb";
			String user = "root";
			String password = "wobeidaohao";
			DriverManager.registerDriver(driver);
			Properties pro = new Properties();
			pro.setProperty("user", user);
			pro.setProperty("password", password);
			Connection con = DriverManager.getConnection(url, pro);
			Statement sta = con.createStatement();
			StringBuffer sb = new StringBuffer();
			sb.append("INSERT INTO TB_JDBC");
			sb.append("(classname) ");
			sb.append("VALUE('DS1204');");
			int value = sta.executeUpdate(sb.toString());
			System.out.println(value);   //   返回值为1  因为他只添加了一个记录,也就是说只影响了一个记录。
		} catch (SQLException e) {
			e.printStackTrace();
		}

}

-executeQuery

该方法只能执行SELECT语句。该方法的返回值为ResultSet。何为ResultSet?。可以这样理解。executeQuery只能执行SELECT语句。而SELECT是查询语句,必然会返回数据(表)。既然会返回数据。我们就必须进行接收。而在java中ResultSet封装了这个数据。那么如何使用ResultSet呢?我们可以用循环进行遍历。使用ResultSet里的Next()方法和get×××()方法。关于ResultSet的更多方法请阅读这里

public void statment3() {
		try {
			Driver driver = new com.mysql.jdbc.Driver();
			String url = "jdbc:mysql://localhost:3306/dreamweb";
			String user = "root";
			String password = "wobeidaohao";
			DriverManager.registerDriver(driver);
			Properties pro = new Properties();
			pro.setProperty("user", user);
			pro.setProperty("password", password);
			Connection con = DriverManager.getConnection(url, pro);
			Statement sta = con.createStatement();
			StringBuffer sb = new StringBuffer();
			sb.append("SELECT ");
			sb.append("* FROM ");
			sb.append("TB_JDBC");
			ResultSet value = sta.executeQuery(sb.toString());
			while(value.next()){
				System.out.println(value.getString("classname"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

}

到现在我们再来总结一下JDBC的基本用法:

1.注册一个Driver

2.建立一个到数据的连接

3.创建一个Statement

4.执行SQL语句

5.处理结果

6.关闭数据库


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值