04.17 jdbc连接数据库

04.17

负责java与数据库连接的工具

在创建javaweb项目时,进行分包
dao、service、servlet、util、model
dao层负责与数据交互的类、
servlet 与前端交互的类
service 负责业务逻辑
util 工具类
model 实体类
在这里插入图片描述

  1. 根据数据库创建实体类

  2. 编写util类
    a)导入jdbc的包。
    1)右键项目 build path
    2)选择导入外部jar包 需要导入lib文件下面(右键添加一下)
    3)点击保存
    注意:外部jar包位置不要变 目前只有一个 很多个
    b)创建静态变量(指定驱动连接 连接的地址 数据库账号 数据库密码)
    c)编写GetConnection方法
    d)编写关闭的方法

3.编写dao层
例如:通过id找实体类
获得驱动连接
加载驱动
获得Statement (操作sql语句的)
获得ResultSet (获取结果集)

4.测试

=========================================================
DriverManager
负责加载驱动(驱动:与数据库的连接)
语法:
DriverManager.getConnection(url,name,password);
url:数据库的地址
name:数据库账号
password:数据库密码
语法:
static String url = “jdbc:mysql://localhost:3306/test”;
static String name =“root”;
static String password = “123456”;

Connection
连接驱动 通过DriverManager拿到Connection 对象
语法:
Connection = .getConnection()

====================================================================

Statement
作用:操作sql语句
获取:Connection.createStatement;
语法:Statement.executeQuery(sql语句)

ResultSet
作用:得到返回值
获取: ResultSet对象 = Statement.executeQuery(sql语句)
使用:
需要通过:ResultSet.next()

======================================================================
util 为整个项目(dao层的类)提供Connection对象
static String driver = “com.mysql.jdbc.Driver”;
static String url = “jdbc:mysql://localhost:3306/test”;
static String name =“root”;
static String password = “123456”;
//保证整个项目只有一个Connection对象 应该写成单例
//对Connection对象 连接驱动的保护
public static Connection getConnection(){
Connection con = null;
try {
//配置文件
//程序运行时,动态的加载对象(class文件 ==> java文件)
//动态的调用java对象里面的方法
Class.forName(driver);
con = DriverManager.getConnection(url,name,password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;

====================================================================

dao

接口
定义了基本的增删改查方法

实现类Userdao
实现增删改查方法
例如:
@Override
public User findUserById(int id) {
//定义了User 因为需要返回值
User user = null;
//User user = new User();
try {
//通过Connection 拿到 Statement对象
//Statement对象 有操作sql语句的方法
Statement statement = con.createStatement();
//编写sql语句
//因为需要将sql语句作为参数 传给Statement对象的查询方法
String sql = “select * from user where id =”+id;
//测试sql语句 是否拼接正确 打印到控制台
System.out.println(sql);
//定义一个ResultSet对象 来接收 查询返回的结果
ResultSet re = statement.executeQuery(sql);
//遍历 ResultSet
while(re.next()){
//为空的user对象赋值
//re.getInt(1) 返回数据库的第一列
user = new User(re.getInt(1),re.getString(2),re.getInt(3),re.getInt(4),re.getInt(5),re.getString(6),re.getString(7));
//user.setId(re.getInt(1))
//user.setName(re.getString(2))
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return user;
}

本文详细介绍了如何利用Python语言结合MySQL数据库开发一个学生管理系统。通过这一过程,读者不仅能够掌握系统设计的基本思路,还能学习到如何使用Python进行数据库操作。该系统涵盖了用户界面设计、数据验证以及数据库的增删改查等多个关键环节。 Python作为一种高级编程语言,以简洁易懂著称,广泛应用于数据分析、机器学习和网络爬虫等领域,同时也非常适合用于快速开发数据库管理应用。MySQL是一个广泛使用的开源关系型数据库管理系统,具有轻量级、高性能、高可靠性和良好的编程语言兼容性等特点,是数据存储的理想选择。在本系统中,通过Python的pymysql库实现了与MySQL数据库的交互。 pymysql是一个Python第三方库,它允许程序通过类似DB-API接口连接MySQL数据库,执行SQL语句并获取结果。在系统中,通过pymysql建立数据库连接,执行SQL语句完成数据的增删改查操作,并对结果进行处理。 系统采用命令行界面供用户操作。程序开始时,提示用户输入学生信息,如学号、姓名和各科成绩,并设计了输入验证逻辑,确保数据符合预期格式,例如学号为1至3位整数,成绩为0至100分的整数。 数据库设计方面,系统使用名为“test”的数据库和“StuSys”表,表中存储学生的学号、姓名、各科成绩及总成绩等信息。通过pymysql的cursor对象执行SQL语句,实现数据的增删改查操作。在构建SQL语句时,采用参数化查询以降低SQL注入风险。 系统在接收用户输入时进行了严格验证,包括正则表达式匹配和数字范围检查等,确保数据的准确性和安全性。同时,提供了错误处理机制,如输入不符合要求时提示用户重新输入,数据库操作出错时给出相应提示。 在数据库操作流程中,用户可以通过命令行添加学生信息或删除记录。添加时会检查学号是否重复以避免数据冲突,删除时需用户确认。通过上述分析,本文展示了从
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值