idea实现对数据库的增删改查功能

前言

java连接数据库,对数据库进行增删改查的功能


# 一、idea的一些快捷键提示
 /*
    * 如果对某一行代码进行注释ctrl+?
    * 如果希望在某个位置生成注释,使用ctrl+shift+?
    *
    * java数组长度固定,js长度不固定
    *
    *alt+ins得到getter和setter
    * alt+回车 处理异常的方法
    * sout输出快捷键
    * pswm快速建立主函数
    * */



二、增删改查

1.查询数据

根据自己的数据库和自己的需求来判定需要遍历多少数据
在这里插入图片描述

 try {
            /*1.加载驱动包*/
            Class.forName("com.mysql.jdbc.Driver");
            /*2.创建数据库连接*/
            try {
                Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/movie-manager?useUnicode=true&characterEncoding=utf8","root","root");
                /*3.创建sql语句*/
                String sql="select * from mm_userinfo";
                /*4.获取执行器*/
                PreparedStatement pstm=conn.prepareStatement(sql);
                /*5.执行sql并接收结果*/
                ResultSet rs=pstm.executeQuery();/*executeQuery是查询专用方法*/
                /*6.处理结果*/
                while(rs.next()){
                    System.out.println("编号:"+rs.getInt("id"));
                    System.out.println("用户名:"+rs.getString("username"));
                    System.out.println("昵称:"+rs.getObject("nickname"));
                    System.out.println("创建时间:"+rs.getDate("create_time"));
                    System.out.println("===================================");
                }
                /*7.关闭资源*/
                /*一定要按顺序,顺序不能乱,类似于析构函数*/
                rs.close();
                pstm.close();
                conn.close();

            } catch (SQLException e) {
                e.printStackTrace();
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

2.添加数据

在这里插入图片描述

/*初始化用户输入工具类:*/
        Scanner scanner=new Scanner(System.in);
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/movie-manager?useUnicode=true&characterEncoding=utf8","root","root");
            String sql="insert into mm_userinfo values(null,?,?,?,?,1,?,?,null,null)";
            System.out.println("请输入用户名:");
            String username=scanner.next();
            System.out.println("请输入密码:");
            String password=scanner.next();
            System.out.println("请输入昵称:");
            String nickname=scanner.next();
            System.out.println("请输入头像:");
            String avatar=scanner.next();
            Integer createAdmin=1;
            Date createDate=new Date();
                 PreparedStatement pstm=conn.prepareStatement(sql);
            pstm.setObject(1,username);
            pstm.setObject(2,password);
            pstm.setObject(3,nickname);
            pstm.setObject(4,avatar);
            pstm.setObject(5,createAdmin);
            pstm.setObject(6,createDate);
            int result=pstm.executeUpdate();
            if(result>0){
                System.out.println("添加成功");
            }else{
                System.out.println("添加失败");
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

3.修改数据

在这里插入图片描述

 Scanner scanner=new Scanner(System.in);
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/movie-manager?useUnicode=true&characterEncoding=utf8","root","root");
            String sql="update mm_userinfo set nickname=?,avatar=?,update_admin=?,update_time=? where id=?";
            PreparedStatement pstm=conn.prepareStatement(sql);
            System.out.println("请输入要修改的编号:");
            Integer id=scanner.nextInt();
            System.out.println("请输入要修改的昵称");
            String nickname=scanner.next();
            System.out.println("请输入要修改的头像");
            String avatar=scanner.next();
            Integer updateAdmin=1;
            Date updateTime=new Date();
            pstm.setObject(1,nickname);
            pstm.setObject(2,avatar);
            pstm.setObject(3,updateAdmin);
            pstm.setObject(4,updateTime);
            pstm.setObject(5,id);
            int result= pstm.executeUpdate();
            if(result>0){
                System.out.println("修改成功");
                System.out.println("当前最新数据如下:");
                String sql2="select * from mm_userinfo";
                PreparedStatement pstm2=conn.prepareStatement(sql2);
               ResultSet rs= pstm2.executeQuery();
               while(rs.next()){
                   System.out.println("编号:"+rs.getObject("id"));
                   System.out.println("昵称:"+rs.getObject("nickname"));
                   System.out.println("头像:"+rs.getObject("avatar"));
               }
               rs.close();
               pstm2.close();
            }else{
                System.out.println("修改失败");
            }
            pstm.close();
            conn.close();

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

4. 删除数据

在这里插入图片描述

Scanner scanner=new Scanner(System.in);
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/movie-manager?useUnicode=true&characterEncoding=utf8","root","root");
            String sql="delete from mm_userinfo where id=?";
            PreparedStatement pstm=conn.prepareStatement(sql);


            System.out.println("请输入要删除的id");
            Integer id= scanner.nextInt();
            pstm.setObject(1,id);
            int result= pstm.executeUpdate();
            if(result>0){
                System.out.println("删除成功");
            }else{
                System.out.println("删除失败");
            }
              pstm.close();
            conn.close();

            } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

总结

只是将增删改查每个功能的代码进行了展示。有的波浪线的地方是因为变量命名的关系,可以自己命名。
不难发现,增删改查的四个功能代码中有很多冗余重复的代码,我们可以进行优化,让代码更简洁。

  • 12
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,您需要在 pom.xml 中添加 MySQL 驱动程序的依赖项: ``` <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> ``` 接下来,您需要在 application.properties 文件中配置数据库连接信息: ``` spring.datasource.url=jdbc:mysql://localhost:3306/db_name spring.datasource.username=username spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 其中,db_name 是您要连接的数据库名称,username 和 password 是您的数据库登录凭据。 然后,您可以创建一个实体类来映射数据库表,例如: ``` @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String email; // getters and setters } ``` 接下来,您可以创建一个 UserRepository 接口来定义一些常见的数据库操作,例如: ``` @Repository public interface UserRepository extends JpaRepository<User, Long> { List<User> findByName(String name); } ``` 在上面的例子中,我们使用了 Spring Data JPA 框架来简化数据库操作。该接口继承了 JpaRepository 接口,它提供了许多常见的 CRUD 操作,例如 save、findById、findAll 等等。除此之外,我们还定义了一个自定义的查询方法,用于根据用户的姓名查找用户。 最后,您可以在您的业务逻辑中使用 UserRepository 接口来实现增删改查功能,例如: ``` @Service public class UserService { @Autowired private UserRepository userRepository; public User createUser(User user) { return userRepository.save(user); } public User updateUser(Long id, User user) { user.setId(id); return userRepository.save(user); } public void deleteUser(Long id) { userRepository.deleteById(id); } public List<User> findUsersByName(String name) { return userRepository.findByName(name); } } ``` 在上面的例子中,我们创建了一个 UserService 类,它使用了 UserRepository 接口来实现增删改查功能。例如,createUser 方法用于创建用户,updateUser 方法用于更新用户,deleteUser 方法用于删除用户,findUsersByName 方法用于根据用户的姓名查找用户。 以上就是使用 Spring Boot 和 Spring Data JPA 框架来实现增删改查功能的基本步骤。当然,具体实现还需要根据您的业务需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值