第一个JDBC程序
第一个JDBC程序
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();//耗资源,用完关掉!
我的一生
第1章-废物的一生
第50章-糟糕的婴儿
第300章-莫欺少年穷
第600章-莫欺中年穷
第1000章-莫欺老年穷
第1100章-不详的离去
第1101章-棺材板的震动
第1150章-盗墓贼的眼泪
第1200章-死者为大
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!