JDBC项目

项目要求

  1. 使用JDBC,完成对如下表的增删改查操作
    在这里插入图片描述

增加操作:使用循环和随机数技巧,增加1000个数据。要求积分在0-200,注册时间均匀分布在2018年各个月份。从26个字母中随机取3个字母作为昵称,昵称不能一样。ID自增。

删除操作:根据用户ID进行删除操作

修改操作:可以修改指定用户的积分

查询操作:

1. 可以查出指定月份注册的用户

2. 根据ID查出指定用户的信息

3. 查出积分大于某个值的用户信息

项目技术要点

基于前两章的知识要点进行实操

项目代码及jar包

在这里插入图片描述

本程序主要有以下几部分

  1. JdbcUtil.java 使用JDBC封装的工具类

  2. 接口 BaseDao 封装通用的BaseDao

  3. 接口 DepartmentsDao 是Dao层的接口代码

  4. BaseDaoImpl.java 封装通用的DML操作

  5. DepartmentsDaoImpl.java 是接口DepartmentsDao的接口实现类

  6. Departments.java 实体类

  7. 业务层接口 DepartmentsService

  8. DepartmentsServiceImpl.java 对DepartmentsService接口的实现

  9. addTest.java 是添加用户时随机生成的信息的类

  10. showView.java 视图界面 在视图界面 调用方法

  11. showTest.java 启动页面

创建表格

DROP TABLE IF EXISTS `staff`;

CREATE TABLE `staff` (

  `id` int(20) NOT NULL AUTO_INCREMENT,

  `name` varchar(90) DEFAULT NULL,

  `num` int(20) DEFAULT NULL COMMENT '积分',

  `sex` varchar(90) DEFAULT NULL,

  `zhuce_time` varchar(90) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

代码部分

jdbc.properties文件

driver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3307/test?useUnicode=true&characterEncoding=utf-8
username=root
userpassword=1234567

jdbcUtil.java

package com.bjsxt.commons;

import java.sql.*;
import java.util.ResourceBundle;

/**
 * 这是一个jdbc封装的工具类
 */
public class JdbcUtil {
   
    private static String driver;
    private static String jdbcUrl;
    private static String username;
    private static String userpassword;
    //将驱动的注册放入到static块内,static块只会初始化一次
    static {
   
        //读取Properties文件
        ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
        driver = bundle.getString("driver");
        jdbcUrl= bundle.getString("jdbcUrl");
        username = bundle.getString("username");
        userpassword = bundle.getString("userpassword");
        //驱动的注册
        try {
   
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
   
            e.printStackTrace();
        }
    }
    //加载数据库驱动程序
    public static Connection getConnection(){
   
        Connection conn=null;
        try{
   
            conn= DriverManager.getConnection(jdbcUrl,username,userpassword);
        }catch (Exception e) {
   
            e.printStackTrace();
        } {
   

        }
        return conn;
    }
    //关闭 Statement 和 Connection
    public static void closeAll(Statement state, Connection conn, ResultSet rs){
   
        if (state!=null){
   
            try {
   
                state.close();
            } catch (SQLException e) {
   
                e.printStackTrace();
            }
        }
        if (conn!=null){
   
            try {
   
                conn.close();
            } catch (SQLException e) {
   
                e.printStackTrace();
            }
        }
        if (rs!=null){
   
            try {
   
                rs.close();
            } catch (SQLException e) {
   
                e.printStackTrace();
            }
        }
    }
    //事务回滚
    public static void roolback(Connection conn){
   
        if (conn!=null){
   
            try {
   
                conn.rollback();
            } catch (SQLException e) {
   
                e.printStackTrace();
            }
        }
    }
}

接口 BaseDao

package com.bjsxt.dao;

import java.util.List;

/**
 * 封装通用的BaseDao
 */
public interface BaseDao {
   
    //封装一个更新操作
    //String sql--是指sql语句  Object[] param--是指向sql语句内绑定的参数列表
    public int executeUpdate(String sql,Object[] param);

    //封装一个查询操作
    public <T> List<T> executeFind(String sql, Object[] param, Class<T> clazz);
}
BaseDaoImpl.java

package com.bjsxt.dao.impl;

import com.bjsxt.commons.JdbcUtil;
import com.bjsxt.dao.BaseDao;
import org.apache.commons.beanutils.BeanUtils;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
 * 封装通用的DML操作
 */
public class BaseDaoImpl implements BaseDao {
   
    @Override
    public int executeUpdate(String sql, Object[] param) {
   
        Connection conn = null;
        PreparedStatement ps = null;
        int rows = 0;
        try{
   
             conn = JdbcUtil.getConnection();
             conn.setAutoCommit(false);
             ps = conn.prepareStatement(sql);
             //得到参数的个数
            ParameterMetaData pmd = ps.getParameterMetaData();
            //绑定参数
            for (int i=0;i<pmd.getParameterCount();i++){
   
                ps.setObject(i+1,param[i])
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值