JDBC采用DAO和Entity层完成增删改查

本文介绍如何利用DAO和Entity层在Java中完成数据库的增、删、改、查及查询所有用户信息功能。项目要求使用DAO设计模式,并且详细说明了sql.Date与java.util.Date之间的转换工具类的编写。此外,还涵盖了数据库连接工具类、日期转换工具类、Entity实体类和DAO操作类的实现。
摘要由CSDN通过智能技术生成

数据库要求:

列名 类型 说明 列名
user_id 整数、主键 用户编号 user_id
user_name 字符串,唯一,非空 用户名称 user_name
user_pwd 字符串,非空 用户密码 user_pwd
user_borndate DATE 出生日期 user_borndate
user_email 字符串,非空 邮箱 user_email
user_address 字符串 地址 user_address

项目要求:

采用DAO+Entity分层完成五个功能:查所有用户信息
并作出测试!
注意: sql.Date和java.util.Date之间的转换,要求写成工具类!

知识科普:

DAO(Data Access Object) 是一个数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。
实体类(entity) 是一行数据中,多个零散的数据进行整理,通过entity的规则对表中的数据进行对象的封装,表名=类名;列名=属性名;提供各个属性的get、set方法,提供无参构造方法、(视情况添加有参构造)


数据库SQL命令:

create table users
(
    user_id int primary key ,
    user_name varchar(20) unique not null ,
    user_pwd varchar(20) not null ,
    user_borndate date ,
    user_email varchar(20) not null ,
    user_address varchar(50)
) character set utf8;

properties文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/account?useUnicode=true&characterEncoding=utf8
username=root
password=123456

数据库连接工具类:

import java.sql.*;

/**
 * 数据库工具类
 * 1.提供连接--Connection
 * 2.提供统一资源关闭
 * 可复用性方案
 */
public class DBUtils {
   
    static {
   
        try {
   
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
   
            e.printStackTrace();
        }
    }

    /**
     * 硬编码
     * 获取连接对象
     */
    public static Connection getConnection() {
   
        Connection connection = null;
        try {
   
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/temp?useUnicode=true&characterEncoding=utf8", "root", "123456");
        } catch (SQLException e) {
   
            e.printStackTrace();
        }
        return connection;
    }

    /**
     * 释放资源
     */
    public static void closeAll(Connection connection, Statement statement, ResultSet resultSet) {
   
        try {
   
            if (resultSet != null) {
   
                resultSet.close();
            }
            if (statement != null) {
   
                statement.close();
            }
            if (connection != null) {
   
                connection.close();
            }
        } catch (SQLException e) {
   
            e.printStackTrace();
        }
    }
}

日期转换工具类

import java.text.ParseException;
import java.text.SimpleDateFormat;

/**
 * 日期转换
 *
 * 字符串转换为UtilDate
 * 字符串转换为SqlDate
 * UtilDate转换为SqlDate
 * 注意:SqlDate转换为UtilDate是不可以的,因为UtilDate是SqlDate的父类
 */
public class DateUtils {
   
    private static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");

    /**
     * 字符串转换为UtilDate
     */
    public static java.util.Date strToUtilDate(String string) {
   
        try {
   
            return SIMPLE_DATE_FORMAT.parse(string);
        } catch (ParseException e) {
   
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 字符串转换为SqlDate
     */
    public static java.sql.Date strToSqlDate(String string) {
   
        try {
   
            java.util.Date date = SIMPLE_DATE_FORMAT.parse
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值