JDBC:JDBC的使用

JDBC的使用

使用JDBC的大概流程
第一步:加载驱动程序(引入mysql依赖后能够自动加载)
第二步:使用java.sql包中的DriverManager类获取Connection连接。
第三步:获取执行SQL的Statement对象。
第四步:执行SQL语句。
第五步:关闭资源
代码实现:

public class TestJDBC {
    //指定数据库的IP地址、端口号、数据库名称
    private static final String URL = "jdbc:mysql://localhost:3306/test";
    //指定数据库的用户名
    private static final String USER = "root";
    //数据库用户名对应的密码
    private static final String PASSWORD = "1234";

    public static void main(String[] args) throws SQLException {
    	//加载驱动程序
        Class.forName("com.mysql.jdbc.Driver");
        //获取连接(需要指定数据库地址、数据库用户名称、数据库用户密码)
        Connection connection = DriverManager.getConnection(URL,USER,PASSWORD);
		//获取执行SQL语句的Statement对象
        Statement statement = connection.createStatement();
		//要执行的查询语句
        String sql = "select * from orderlist";
		//执行查询,获取结果集
        ResultSet resultSet = statement.executeQuery(sql);
        //使用结果集时,必须在next向下查询为true是才能使用。
        while (resultSet.next()){
        	//根据下标获取结果集中的值
            System.out.println(resultSet.getString(2));
            //根据数据库表列名称获取值
            resultSet.getString("user_name");
        }
        
        //要执行的修改语句
        String updateSql = "update orderlist set addr = '中国' where id = 2";
        //执行修改,返回值为受影响的行数。
        int i = statement.executeUpdate(updateSql);
        System.out.println(i);
        
        //要执行的新增语句
        String insertSql = "insert into user(id,user_name,password,phone,college,addr) value (3,'han','123456','15011225566','中国','中国')";
        //执行新增,返回值为受影响的行数
        int i1 = statement.executeUpdate(insertSql);
        System.out.println(i1);

		//要执行的删除语句
        String deleteSql = "delete from user where id = 3";
        //执行删除,返回值为受影响的行数
        int i2 = statement.executeUpdate(deleteSql);
        System.out.println(i2);
        
        //关闭资源
		statement.close();
        connection.close();
    }
}

Statement(不能传递参数)

使用Statement操作数据库的大概流程
第一步:加载驱动程序(引入mysql依赖后能够自动加载)
第二步:使用java.sql包中的DriverManager类获取Connection连接。
第三步:获取执行SQL的Statement对象。
第四步:编写SQL语句。
第五步:调用Statement的方法执行SQL语句(参数为SQL语句)。
第六步:关闭资源

注意:
1.Statement执行SQL语句不能传递参数
2执行查询使用executeQuery(sql)方法
3.执行增删改使用executeUpdate(sql)方法

//要执行的查询语句
String sql = "select * from orderlist";
//执行查询,获取结果集
ResultSet resultSet = statement.executeQuery(sql);

//要执行的修改语句
String updateSql = "update orderlist set addr = '中国' where id = 2";
//执行修改,返回值为受影响的行数。
int i = statement.executeUpdate(updateSql);

//要执行的新增语句
String insertSql = "insert into user(id,user_name,password,phone,college,addr) value (3,'han','123456','15011225566','中国','中国')";
//执行新增,返回值为受影响的行数
int i1 = statement.executeUpdate(insertSql);

//要执行的删除语句
String deleteSql = "delete from user where id = 3";
//执行删除,返回值为受影响的行数
int i2 = statement.executeUpdate(deleteSql);

PreparedStatement(可以传递参数)

使用PreparedStatement操作数据库的大概流程;
第一步:加载驱动程序(引入mysql依赖后能够自动加载);
第二步:使用java.sql包中的DriverManager类获取Connection连接;
第三步:编写SQL语句,使用问号做占位符;
第四步:将SQL语句作为参数获取PreparedStatement对象,对SQL进行了预编译;
第五步:传递参数
第六步:调用PreparedStatement的方法执行SQL语句(会将占位符换成参数值)。
第七步:关闭资源

注意:
1.PreparedStatement会对SQL语句进行预编译,使用问号作为占位符,在真正执行SQL语句时将占位符替换成参数。
2.执行查询使用executeQuery()方法
3.执行增删改使用executeUpdate()方法

public class TestJDBCByPreparedStatement {
	//加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    //指定数据库的IP地址、端口号、数据库名称
    private static final String URL = "jdbc:mysql://localhost:3306/ershoujiaoyi";
    //指定数据库的用户名
    private static final String USER = "root";
    //数据库用户名对应的密码
    private static final String PASSWORD = "password";

    public static void main(String[] args) throws SQLException {
        //获取连接(需要指定数据库地址、数据库用户名称、数据库用户密码)
        Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
        //要执行的SQL语句,问号为占位符
        String sql = "select * from user where id = ? and college = ?";
        //获取PreparedStatement,会对SQL进行预编译
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        //传递int类型的参数(第一个值理解为SQL语句中第几个问号,第二个值为真正的参数)
        preparedStatement.setInt(1,2);
        //传递String类型的参数
        preparedStatement.setString(2,"北京大学");
        //执行查询语句,获取查询结果
        ResultSet resultSet = preparedStatement.executeQuery();
        //执行增删改语句,返回值为受影响的行数。
        int i = preparedStatement.executeUpdate();
        //使用结果集时,必须在next向下查询为true是才能使用。
        while (resultSet.next()){
            //根据数据库表列名称获取值
            System.out.println(resultSet.getString("user_name"));
        }
        //关闭资源
        preparedStatement.close();
        connection.close();
    }
}

查询语句返回值ResultSet

当查询的结果集为一行数据时,使用next()方法将指针指向第一行数据,然后再根据数据库表的列明获取查询的值。
ResultSet中的值只能根据next()方法将指针向下查询然后再去获取需要的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值