创建测试数据库
CREATE DATABASE `jdbcStudy` CHARACTER SET utf8 COLLATE utf8_general_ci; USE `jdbcStudy`; 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')
1、创建一个普通项目
2、导入数据库驱动
3、编写测试代码
package com.hua.lessons; import java.sql.*; //我的第一个jdbc程序 public class jdbcFirstDemo { public static void main(String[] args) throws ClassNotFoundException, SQLException { //1、加载驱动 Class.forName("com.mysql.jdbc.Driver");//固定写法,加载驱动 //2、用户信息和url //useUnicode=true&characterEncoding=utf8&useSSL=true String url = "jdbc:mysql://localhost:3306/jdbcStudy?useUnicode=true&characterEncoding=utf8&useSSL=true"; String useName = "root"; String password = "123456"; //3、连接成功,数据库对象 Connection代表数据库 Connection connection = DriverManager.getConnection(url, useName, 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("pwd="+resultSet.getObject("PASSWORD")); System.out.println("email="+resultSet.getObject("email")); System.out.println("birth="+resultSet.getObject("birthday")); System.out.println("============================"); } //6、释放连接 resultSet.close(); statement.close(); connection.close(); } }
步骤总结:
1、加载驱动
2、连接数据库 DriverManager
3、获得执行SQL的对象 Statement
4、获得返回的结果集
5、释放连接
DriverManager
//DriverManager.deregisterDriver(new com.mysql.jdbc.Driver()); Class.forName("com.mysql.jdbc.Driver");//固定写法,加载驱动 Connection connection = DriverManager.getConnection(url, useName, password); //connection 代表数据库 // 数据库设置自动提交 //事务提交 //事务回滚 connection.setAutoCommit(); connection.commit(); connection.rollback();
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的对象 PrepareStatement 执行SQl的对象
String sql = "select * from users";//编写SQL statement.executeQuery(); //查询操作返回 ResultSet statement.execute(); //执行任何SQL statement.executeUpdate();// 更新、插入、删除。都是用这个,返回一个受影响的行数
ResultSet 查询的结果集:封装了所有的查询结果
获得指定的数据类型
resultSet.getObject();//在不知道列类型的情况下使用 //如果知道列类型就使用指定的类型 resultSet.getInt(); resultSet.getString(); resultSet.getFloat(); resultSet.getDouble(); resultSet.getDate();
遍历,指针
resultSet.beforeFirst(); //移动到最前面 resultSet.afterLast(); //移动到最后面 resultSet.next(); //移动到下一个数据 resultSet.previous(); //移动到前一个数据 resultSet.absolute(row); //移动到指定行
释放资源
//6、释放连接 resultSet.close(); statement.close(); connection.close();//耗资源,用完关掉!