JSP访问数据库(基于JDBC技术)

1.1JDBC简述

  1. 在实际项目中,网页通常要与数据库进行数据的交互,数据库在Web的开发中占有很大的地位。因此有了JDBC(Java Data Base Connectivity)这种通过java代码访问数据库的技术.。它提供了一系列的API,让Java语言编写的代码连接数据库,对数据库进行添加、删除、修改、查询等操作。

  2. JDBC相关的API存放在java.sql包中,主要包括以下类和接口(更多请参考JDK的API文档)
    (1)java.sql.Connection,负责连接数据库。
    (2)java.sql.Statemetn,负责执行数据库的SQL语句。
    (3)java.sql.ResultSet,负责存放查询结果。

  3. 连接不同的数据库,使用不同的数据库驱动包。(本文以MySql驱动为例)

1.2JDBC的操作

进行以下代码编写前,现在项目中添加驱动程序包,用idea则添加依赖。
1.指定驱动程序(数据库类型不同,驱动不同)
Class.forName(“驱动名”);
2. 获取数据库连接
DriverManager.getConnection(“url”,“用户名”,“密码”);
3.获得sql语句执行对象
Statement stat=conn.CreateStatement();
4.定义sql语句
String sql=“sql 语句”;
5.定义一个变量ResultSet变量存放查询结果
ResultSet rs=stat.executeQuery(sql);
6.定义一个变量来存储sql语句执行受影响的行数(当执行修改数据库操作时需要这条语句)
int i=stat.executeUpdate(sql);
7.关闭数据库连接
stat.close();
conn.close();

1.3插入数据

<%

    //1、指定驱动
    Class.forName("com.mysql.jdbc.Driver");
    //2、获取连接
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc", "root", "root");
    //定义一条输出语句验证是否连接成功
    out.println("连接成功");
    //3、创建一个sql语句执行对象
    Statement statement = connection.createStatement();
    //4、定义sql语句
    String sql = "INSERT  INTO user1(id,user,age) VALUES('4','xiaoming','30')";
    //它返回一个正型,意思是这条sql语句执行受影响的行数,即成功添加的行数
    int i = statement.executeUpdate(sql);
    out.println(i);
    statement.close();
    connection.close();

%>

1.4删除数据

	//4、定义删除的sql语句
    String sql = "DELETE FROM user1 WHERE id='4'";

1.5修改数据

	//4、定义修改数据库的sql语句
    String sql = "UPDATE user1 SET age='99' WHERE id='1'";

1.6查询数据

	//4、//定义sql语句
    String sql = "SELECT user,age FROM user1 WHERE id='1'";
    //5、定义一个ResultSet类型的变量存储查询结果
    ResultSet resultSet = statement.executeQuery(sql);
    //6、用游标将查询结果取出来
    while (resultSet.next()) {
        //定义变量来存储每一列中的数据
        String user = resultSet.getString("user");
        String age = resultSet.getString("age");
        //将取出的值打印出来
        out.println(user + "" + age);
    }

注意:

	(1)查询数据比上面的增删改,多了对结果集的处理(ResultSet),以及用游标将结果集中的数据取出。
	(2)游标的概念:游标是在ResultSet中一个可以移动的指针,它指向一行数据,初始游标指向第一行的前一行,。“rs.next()”方法可以将游标移动到下一行,其返回值是一个布尔类型,如果下一行有数据则返回true,结合while循环可将结果集中的数据取出来。

1.7使用PreparedStatement

  1. PreparedStatement是Statement的子接口,作用简化用户与数据库交互的SQL语句
		//运用了PrepareStatement
        String sql="INSERT INTO user1(id,user,age) VALUES(?,?,?) ";
        PreparedStatement preparedStatement=connection.prepareStatement(sql);
        //用参数代替第n个“?”
        preparedStatement.setString(1,id);
        preparedStatement.setString(2,user);
        preparedStatement.setString(3,age);
        int i=preparedStatement.executeUpdate();
        out.println("成功添加" + i + "行");
        preparedStatement.close();
        connection.close();

你可能感兴趣的:(java)