JDBC基础:初识数据库驱动和jdbc
1.1数据库驱动存在的意义:
程序是不能直接连接数据库的,需要驱动作文中间件,连接
1.2什么是JDBC:
SUN公司为简化开发人员 的(对数据库统一)操作,提供了一个(Java操作数据库的)规范,称为JDBC
这些规范的实现由具体厂商去做
1.3Java连接数据库实际过程:
应用程序-->JDBC-->数据库驱动-->数据库
1.4前期准备:
导入java.sql javax.sql 数据库驱动包mysql-connector-java-5.1.47.jar
1.5第一个JDBC程序
创建测试数据库:
CREATE TABLE `users`( `id` INT PRIMARY KEY, `NAME` VARCHAR(40), `PASSWORD` VARCHAR(40), `email` VARCHAR(60), birthday DATE ); INSERT INTO `users`(`id`,`NAME`,`PASSWORD`,`email`,`birthday`) VALUES(1,'zhangsan','123456','zs@sina.com','1980-12-04'), (2,'lisi','123456','lisi@sina.com','1981-12-04'), (3,'wangwu','123456','wangwu@sina.com','1979-12-04') SELECT * FROM users
1.创建一个普通项目
2.导入数据库驱动(导入jar包):所需jar包:mysql-connector-java-
5.1.47.jar
将jar包导入到lib文件夹中,没有就创建一个Directory
3.代码测试
import java.sql.*; //我的第一个jdbc程序 public class JdbcFirstDemo { public static void main(String[] args) throws ClassNotFoundException, SQLException { //1.加载驱动 //DriverManger.registerDriver(new com.mysql.jdbc.Driver()); //本质:启动mysql注册机,可简写成下面的语句 Class.forName("com.mysql.jdbc.Driver");//固定写法加载驱动 //2.用户信息和url //useUnicode=true(支持中文编码)&characterEncoding=utf8(设定字符集为utf8)&useSSL=true(使用安全连接) String url="jdbc:mysql://localhost:3306/frist_jdbc?useUnicode=true&characterEncoding=utf8&useSSL=false"; String username="root"; String password="454790"; //3.连接成功,数据库对象 Connection 代表数据库 Connection connection = DriverManager.getConnection(url, username, password); //4.执行SQL的对象 Statement执行sql的对象 Statement statement = connection.createStatement(); //5.用执行SQL的对象 去执行SQL,可能存在结果,返回结果 String sql="SELECT * from users"; ResultSet resultSet = statement.executeQuery(sql);//返回结果集,结果集中封装了全部的数据库查询出来的结果 //返回的结果集本质:是一个链表的形式存储 while(resultSet.next()){ System.out.println("id="+resultSet.getObject("id")); System.out.println("NAME="+resultSet.getObject("NAME")); System.out.println("PASSWORD="+resultSet.getObject("PASSWORD")); System.out.println("email="+resultSet.getObject("email")); System.out.println("birthday="+resultSet.getObject("birthday")); System.out.println("==========================="); } //6.释放连接 resultSet.close(); statement.close(); connection.close(); } }
步骤总结:
1.加载驱动
2.连接数据库 DriverManager
3.获得执行sql的对象 Statement
4.获得返回的结果集
5.释放连接
DriverManager
//1.加载驱动 //DriverManger.registerDriver(new com.mysql.jdbc.Driver()); //本质:启动mysql注册机,可简写成下面的语句 Class.forName("com.mysql.jdbc.Driver");//固定写法加载驱动 //connection 代表数据库 //事务回滚‘ connection.rollback(); //事务提交 connection.commit(); //数据库设置自动提交 connection.setAutoCommit();
URL
String url="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true"; //mysql -- 3306 //协议://主机地址:端口号/数据库名?参数1&参数2&参数3 //oralce -- 1521 //jdbc:oracle:thin:@localhost:1521:sid
Statement执行SQL的对象
String sql="SELECT * FROM users"; //编写SQL statement.executeQuery;// 查询操作返回ResultSet statement.execute();//执行任何SQL statement.executeUpdate(); //更新,插入,删除。返回一个受影响的行数 statement.executeBatch();//放多个sql语句,同时执行
ResultSet 查询的结果集,封装了所有的查询结果
获得指定的数据类型
String sql="SELECT * from users"; ResultSet resultSet = statement.executeQuery(sql); resultSet .getObject();//在不知道列类型的情况乱下使用 / /如果知道列的类型就使用指定的类型 resultSet.getString(); resultSet.getInt(); resultSet.getFloat(); resultSet.getDate();、 。。。
遍历
resultSet.beforeFirst();//移动到最前面 resultSet.afterLast();//移动的最后面 resultSet.next();//移动到下一个数据 resultSet.previous();//移动到前一行 resultSet.absolute(row);//移动到指定行
释放资源
//6.释放连接 resultSet.close(); statement.close(); connection.close();//耗资源,用完关掉!