新手Java(三)---控制台 实现增删改查

参考完一二步骤,这里默认数据库已经创建完成  库与表。

框架显示图:

2:在SRC---》Test 下面 创建一个类:BaseDao

该类里面有2个主要方法。

     1:查询方法   prepareStatement   

     2:非查询方法 (增删改)  executeUpdate  

注意点: 一:JDBC_DRIVER 连接驱动的,这里需要看Mysql的版本。

如果是8.0以上的版本,需要用 com.mysql.cj.jdbc.Driver

该版本是mysql5.7  所以使用的是:com.mysql.jdbc.Driver

               二:Class.forName(JDBC_DRIVER);  这个是加载驱动,需要用try catch 并且用ClassNotFoundException 抛异常

               三:DB_URL 这个是mysql的连接地址。mytest是数据库名称

        四:USER:mysql改数据库账号

                五:PASS:数据库登入密码

三:底层连接数据库类:

package Test;
import java.sql.*;
public class BaseDao {
    /***    *      * @author 数据库连接类   *  */
    private String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    private String DB_URL = "jdbc:mysql://localhost:3306/mytest";       // ---------自己写数据库表名,只要数据库的表名跟这里的一样就行
    private String USER = "root";    //  ----------你自己数据库的名称
    private String PASS = "123456";      //  -----------你自己数据库的密码
    Connection conn = null;


    /****  @param 打开数据库 */
    protected Connection getConnetconn() {
        conn = null;
        try {
            Class.forName(JDBC_DRIVER);
            //打开连接
            System.out.println("连接数据库.....");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    /****  @param 关闭数据库连接  */
    protected void closeAll(Connection conn, PreparedStatement ps, ResultSet rs) {
        if (rs != null)
            try {
                if (rs != null)
                    rs.close();
                if (ps != null)
                    ps.close();
                if (conn != null)
                    conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }


    /***  @param 增删改方法 * @param 接受 参数为 SQL语句 和 对象数组       * @return 返回受影响行数     */
    public int executeUpdate(String sql ,Object []ob) {
        conn = getConnetconn();
        PreparedStatement ps = null;
        try {
            ps = prepareStatement(conn, sql, ob);
            int i = ps.executeUpdate();
            return i;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            //     e.printStackTrace();
            return 0;
        } finally {
            closeAll(conn, ps, null);
        }
    }

        ///***     * 查询方法        */
    protected PreparedStatement prepareStatement(Connection conn, String sql, Object[] ob) {

          PreparedStatement ps = null;
          try {
              int index = 1;
              ps = conn.prepareStatement(sql);
              if (ps != null && ob != null) {
                  for (int i = 0; i < ob.length; i++) {
                      ps.setObject(index, ob[i]);
                      index++;
                  }
              }
          } catch (SQLException e1) {
              e1.printStackTrace();
          }
          return ps;
      }

}

四:创建一个视图类,其实不创建类也可以实现改Demo,为了更直观,可以创建一个类,类名:UserInfoModel

package Test;

public class UserInfoModel {
    private int userid;

    private String username;

    private String useraddr;

    private String usertel;

    public int getUserid() {
        return userid;
    }

    public void setUserid(int id) {
        this.userid = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username){
        this.username = username;
    }

    public String getUseraddr() {
        return useraddr;
    }

    public void setUseraddr(String useraddr) {
        this.useraddr = useraddr;
    }

    public String getUsertel() {
        return usertel;
    }

    public void setUsertel(String usertel) {
        this.usertel = usertel;
    }

五:调用底层三的方法,实现增删改查  

  这里:extends 是继承了父类 BaseDao

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

public class UserInfoDao extends BaseDao{


     /*---查询方法---*/
    public List<UserInfoModel> search(String sql,Object...params){
        List<UserInfoModel> list =new ArrayList<UserInfoModel>();
        Connection conn=this.getConnetconn();
        PreparedStatement pst=null;

        ResultSet rs=null;
        try {
            pst=this.prepareStatement(conn, sql, params);
            rs=pst.executeQuery();
            while(rs.next()){
                UserInfoModel wor=new UserInfoModel();
                wor.setUserid(rs.getInt(1));
                wor.setUsername(rs.getString(2));
                wor.setUseraddr(rs.getString(3));
                wor.setUsertel(rs.getString(4));
                list.add(wor);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            closeAll(conn, pst, rs);
        }
        return list;
    }

   /*新增方法*/
   public int insert(){
       UserInfoModel t=new UserInfoModel();
       t.setUseraddr("shanghai");
       t.setUsername("王五");
       t.setUsertel("13524696896");
       String str="INSERT INTO  user_info ( user_name,user_addr,user_tel) VALUE(?,?,?)";
       return executeUpdate(str, new Object[]{t.getUsername(),t.getUseraddr(),t.getUsertel()});
   }

   /*修改方法*/
    public  int  update()
    {
        UserInfoModel r=new UserInfoModel();
        r.setUseraddr("南京");
        r.setUsername("测试");
        r.setUsertel("13524698886");
        r.setUserid(7);
        String sql="UPDATE  user_info SET `user_name`=?,`user_addr`=?,`user_tel`=?  WHERE user_id=?";
        return executeUpdate(sql, new Object[]{r.getUsername(),r.getUseraddr(),r.getUsertel(),r.getUserid()});

    }

    /*删除方法*/
    public  int  delete()
    {
        UserInfoModel e=new UserInfoModel();
        String sql="DELETE FROM `user_info` WHERE user_id=?";
        e.setUserid(7);
        return executeUpdate(sql, new Object[]{e.getUserid()});
    }
}

六:在控制台 主方法 Main里面调用方法:

package Test;

import Test.Common;

public class Main {

    public static void main(String[] args) {
 UserInfoDao dao=new UserInfoDao();
 dao.search("select  user_id, user_name,user_addr,user_tel from  user_info");
 int insert= dao.insert();
 System.out.println("新增成功条数:"+insert);
 int update=dao.update();
 System.out.println("修改成功条数:"+update);

int delete =dao.delete();
System.out.println("删除成功条数:"+delete);

}

 

七:完毕

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java控制台登录注册增删改查作业是一个基于Java程序语言的控制台操作任务,主要包括用户登录、注册管理、数据的增删改查等功能。 首先,用户可以在控制台输入用户名和密码进行登录验证,验证通过后可以进入系统进行操作。如果用户没有账号,可以选择注册一个新账号,输入所需的信息后,系统将新用户信息保存在数据库中。 在系统中,用户可以进行数据的增加、删除、修改和查询操作。通过控制台输入不同的命令或者选项便可以实现相应的功能。比如,用户可以输入命令来添加新的数据记录,也可以输入命令来删除指定的数据记录,还可以输入命令来修改现有的数据记录,同时也可以输入命令来查询某条数据的详细信息。 在Java控制台登录注册增删改查作业中,通常会使用数据库来存储用户信息和数据记录。在编写程序时,会用到Java中的各种类和方法来实现对数据库的连接和操作。同时,为了使用户在控制台中能够方便地进行操作,通常会添加一些交互式的提示信息,引导用户进行相应的操作。 整个作业涉及到Java语言基础、数据库操作、控制台交互等方面的知识和技能,对于学习和掌握Java编程语言以及数据库操作都有着重要的意义。通过这样的作业,学生可以更加深入地理解和掌握Java编程的相关知识,并且可以练习使用Java编写逻辑清晰、功能完善的程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值