当前位置: 移动技术网 > IT编程>开发语言>Java > JDBC操作

JDBC操作

2019年05月24日  | 移动技术网IT编程  | 我要评论
1、概述 JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句 2、JDBC原理 sun公司提供访问数据库规范称为JDBC, ...

1、概述

jdbc(java database connectivity)就是java数据库连接,说白了就是用java语言来操作数据库。原来我们操作数据库是在控制台使用sql语句来操作数据库,jdbc是用java语言向数据库发送sql语句

2、jdbc原理

sun公司提供访问数据库规范称为jdbc,而生产厂商提供的规范的实现类称为驱动

jdbc是接口,驱动是接口的实现,没有驱动将无法完成数据库的连接,从而不能操作数据库,每个厂商都需要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都是由数据库厂商提供的

3、jdbc核心接口

jdbc中的核心接口主要包括如下
drivermanger:用来注册驱动并获取connection;
connection:最为重要的一个方法就是用来获取statement对象;
statement:是用来向数据库发送sql语句的,这样数据库就会执行发送过来的sql语句
resultset:它是一个迭代器,用于检索查询数据

4、jdbc开发步骤

1、注册驱动
2、获取链接
3、获取语句执行者
4、执行sql语句
5、处理结果
实例代码如下

/**
 * create table user(
 * username varchar(30) comment '用户名',
 * password varchar(10) comment '密码'
 * )engine=innodb auto_increment=1519 default charset=utf8;
 *
 * insert into user values('张三','123456')
 */
public class jdbctest {

    public static void main(string[] args) throws classnotfoundexception, sqlexception {

        //1、注册驱动
        class.forname("com.mysql.jdbc.driver");
        //2、获取链接
        connection connection = drivermanager.getconnection("jdbc:mysql://192.168.47.151:3306/web", "root", "root");
        //3、获取执行sql语句的对象
        statement statement = connection.createstatement();
        //4、执行sql语句
        resultset resultset = statement.executequery("select * from user ");
        //处理执行结果
        while (resultset.next()) {
            system.out.println("用户名:" + resultset.getstring(1) + " 密码:" + resultset.getstring("password"));
        }

        resultset.close();
        statement.close();
        connection.close();
    }
}

5、connection

connection connection = drivermanager.getconnection(string url,string user, string password);
connection对象常用的方法
createstatement():创建向数据库发送sql的statement对象
preparestatement(sql):创建向数据库发送预编译sql的preparesatement对象
execute(string sql):用于向数据库发送任意sql语句
addbatch(string sql):把多条sql语句放到一个批处理中。
executebatch():向数据库发送一批sql语句执行。

6、执行sql语句

statement statement = connection.createstatement();
statement 常用方法如下
executequery(string sql) :用于向数据发送查询语句。
executeupdate(string sql):用于向数据库发送insert、update或delete语句
execute(string sql):用于向数据库发送任意sql语句
addbatch(string sql):把多条sql语句放到一个批处理中。
executebatch():向数据库发送一批sql语句执行。

6、防止sql注入代码

/**
 * create table user(
 * username varchar(30) comment '用户名',
 * password varchar(10) comment '密码'
 * )engine=innodb auto_increment=1519 default charset=utf8;
 *
 * insert into user values('张三','123456')
 */
public class jdbctest {

    public static void main(string[] args) throws classnotfoundexception, sqlexception {

        //1、注册驱动
        class.forname("com.mysql.jdbc.driver");
        //2、获取链接
        connection connection = drivermanager.getconnection("jdbc:mysql://192.168.47.151:3306/web", "root", "root");
//        //3、获取执行sql语句的对象
//        statement statement = connection.createstatement();
//        //4、执行sql语句
//        resultset resultset = statement.executequery("select * from user ");

        preparedstatement preparedstatement = connection.preparestatement("select * from  user  where username=? and password=?");
        preparedstatement.setstring(1,"张三");
        preparedstatement.setstring(2,"123456");
        resultset resultset = preparedstatement.executequery();

        //处理执行结果
        while (resultset.next()) {
            system.out.println("用户名:" + resultset.getstring(1) + " 密码:" + resultset.getstring("password"));
        }

        resultset.close();
        //statement.close();
        resultset.close();
        connection.close();
    }
}

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网