JDBC练习
发布日期:2021-07-22 10:54:10
浏览次数:12
分类:技术文章
本文共 5638 字,大约阅读时间需要 18 分钟。
* 练习:
* 需求: 1. 通过键盘录入用户名和密码 2. 判断用户是否登录成功 * select * from user where username = "" and password = ""; * 如果这个sql有查询结果,则成功,反之,则失败 * 步骤: 1. 创建数据库表 userCREATE TABLE USER( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(32), PASSWORD VARCHAR(32) ); INSERT INTO USER VALUES(NULL,'zhangsan','123'); INSERT INTO USER VALUES(NULL,'lisi','234');
2. 代码实现:
public class JDBCDemo9 { public static void main(String[] args) { //1.键盘录入,接受用户名和密码 Scanner sc = new Scanner(System.in); System.out.println("请输入用户名:"); String username = sc.nextLine(); System.out.println("请输入密码:"); String password = sc.nextLine(); //2.调用方法 boolean flag = new JDBCDemo9().login(username, password); //3.判断结果,输出不同语句 if(flag){ //登录成功 System.out.println("登录成功!"); }else{ System.out.println("用户名或密码错误!"); } } /** * 登录方法 */ public boolean login(String username ,String password){ if(username == null || password == null){ return false; } //连接数据库判断是否登录成功 Connection conn = null; Statement stmt = null; ResultSet rs = null; //1.获取连接 try { conn = JDBCUtils.getConnection(); //2.定义sql String sql = "select * from user where username = '"+username+"' and password = '"+password+"' "; //3.获取执行sql的对象 stmt = conn.createStatement(); //4.执行查询 rs = stmt.executeQuery(sql); //5.判断 /* if(rs.next()){//如果有下一行,则返回true return true; }else{ return false; }*/ return rs.next();//如果有下一行,则返回true } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtils.close(rs,stmt,conn); } return false; } }
执行DDL操作:
package com.itheima;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;/*** 创建一张学生表*/public class Demo4DDL { public static void main(String[] args) { //1. 创建连接 Connection conn = null; Statement statement = null; try { conn = DriverManager.getConnection("jdbc:mysql:///day24", "root", "root"); //2. 通过连接对象得到语句对象 statement = conn.createStatement(); //3. 通过语句对象发送 SQL 语句给服务器 //4. 执行 SQL statement.executeUpdate("create table student (id int PRIMARY key auto_increment, " + "name varchar(20) not null, gender boolean, birthday date)"); //5. 返回影响行数(DDL 没有返回值) System.out.println("创建表成功"); } catch (SQLException e) { e.printStackTrace(); } //6. 释放资源 finally { //关闭之前要先判断 if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); }} if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
执行DML操作:
package com.itheima;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;/*** 向学生表中添加 4 条记录,主键是自动增长*/public class Demo5DML { public static void main(String[] args) throws SQLException {// 1) 创建连接对象 Connection connection = DriverManager.getConnection("jdbc:mysql:///day24", "root","root");// 2) 创建 Statement 语句对象 Statement statement = connection.createStatement();// 3) 执行 SQL 语句:executeUpdate(sql) int count = 0;// 4) 返回影响的行数 count += statement.executeUpdate("insert into student values(null, '孙悟空', 1, '1993-03-24')"); count += statement.executeUpdate("insert into student values(null, '白骨精', 0, '1995-03-24')"); count += statement.executeUpdate("insert into student values(null, '猪八戒', 1, '1903-03-24')"); count += statement.executeUpdate("insert into student values(null, '嫦娥', 0, '1993-03-11')"); System.out.println("插入了" + count + "条记录");// 5) 释放资源 statement.close(); connection.close(); } }
执行DDL的操作:
package com.itheima;import java.sql.*;11 / 21 /*** 查询所有的学生信息*/public class Demo6DQL { public static void main(String[] args) throws SQLException { //1) 得到连接对象 Connection connection =DriverManager.getConnection("jdbc:mysql://localhost:3306/day24","root","root"); //2) 得到语句对象 Statement statement = connection.createStatement(); //3) 执行 SQL 语句得到结果集 ResultSet 对象 ResultSet rs = statement.executeQuery("select * from student"); //4) 循环遍历取出每一条记录 while(rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); boolean gender = rs.getBoolean("gender"); Date birthday = rs.getDate("birthday"); //5) 输出的控制台上 System.out.println("编号:" + id + ", 姓名:" + name + ", 性别:" + gender + ", 生日:" +birthday); } //6) 释放资源 rs.close(); statement.close(); connection.close(); } }
转载地址:https://blog.csdn.net/m0_56426304/article/details/117431639 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月13日 08时09分03秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
什么是中奖型创业者?
2019-04-26
什么是套利型创业者?
2019-04-26
什么是取势型创业者?
2019-04-26
为什么煲鸡汤给病人喝?
2019-04-26
带团队很简单,管理就是十六字!(管理者必看)
2019-04-26
写作技巧~100段作文排比句(61-80段),考试一定用得上,赶紧收藏!
2019-04-26
判别式模型和生成式模型
2019-04-26
SVM和LR的适用情况,SVM中核函数的作用。
2019-04-26
以下机器学习中,在数据预处理时,不需要考虑归一化处理的是
2019-04-26
在统计模式识分类问题中,当先验概率未知时,可以使用N-P判决和最小最大损失准则
2019-04-26
聚类的定义和2个基本问题
2019-04-26
聚类算法的种类介绍
2019-04-26
隐马模型(HMM)
2019-04-26
转载CSDN博客步骤
2019-04-26
向量与矩阵的范数(比较1-范数、2-范数、无穷范数、p-范数、L0范数 和 L1范数等)
2019-04-26
对偶问题和原问题的关系
2019-04-26
线性分类器的三种最优准则
2019-04-26
常用激活函数总结
2019-04-26
支持向量机(SVM)
2019-04-26
常用来划分测试集和训练集的划分方法
2019-04-26