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(); } }
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
网友评论