java连接数据库实现基本的增删改查

目录

一、在IDEA中配置数据库项目环境

1.创建项目

 2.选择依赖

二、在JAVA中进行操作建立与数据库的连接

1、配置数据源——让程序可以访问到

2.配置数据源——让idea可以访问到

三、JAVA已经成功连接数据库,现在编写增删改的代码

2.运行sql语句,创建数据库和表

 3.实体模型Model

 4.程序框架

 5.数据访问层DAO

5.1、接口CRUD+(先做新接口)

 5.2、DAO层实现类--JdbcTemplate

 6.业务处理层

6.1、业务处理层接口

         6.2、业务处理层实现类

7.测试新增 

 8.其他功能

8.1、DAo

8.1.1接口

8.1.2 Dao实现

 8.2 业务层

8.2.1接口层

8.2.2实现层

四、测试其功能

1. 完整代码

 2.运行代码

3.查看数据库


一、在IDEA中配置数据库项目环境

1.创建项目

 2.选择依赖

二、在JAVA中进行操作建立与数据库的连接

1、配置数据源——让程序可以访问到

等待依赖下载完成,写入以下配置信息。包括驱动、数据源地址、数据源访问用户名和密码

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456

2.配置数据源——让idea可以访问到

在database里选择Data souce再选择MySQL,

在这一步,我们需要准备三样东西 URL ,账户用户名,密码
URL:表示跟数据库通信的地址
用户名:自然就是拥有数据库权限的账户了,这里使用根用户root
密码:登录数据库需要用户名及对应的密码

填写主机名/地址、mysql用户名及密码,下载驱动完成后做链接测试,测试连接成功,点击ok,如下图

三、JAVA已经成功连接数据库,现在编写增删改的代码

1.添加数据库和表

DROP DATABASE IF EXISTS `testdb`;
create  database testdb;

Use testdb;

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
                        `user_id` int NOT NULL AUTO_INCREMENT COMMENT '用户 ID',
                        `user_name` varchar(255) DEFAULT NULL COMMENT '用户名',
                        `status` varchar(255) DEFAULT NULL COMMENT '用户状态',
                        PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

2.运行sql语句,创建数据库和表

 3.实体模型Model

 4.程序框架

 5.数据访问层DAO

5.1、接口CRUD+(先做新接口)

 5.2、DAO层实现类--JdbcTemplate

(先实现新增接口)

Repository注解Dao实现类

Resource注入JdbcTemplate

 6.业务处理层

6.1、业务处理层接口

(先做新增)

 6.2、业务处理层实现类

@Service注解

7.测试新增 

 8.其他功能

8.1、DAo
8.1.1接口

8.1.2 Dao实现

UserDaoImpl代码

@Repository
public class UserDaoImpl implements UserDao {
    @Resource
    private JdbcTemplate jdbcTemplate;
    @Resource
    private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
    @Override
    public int addUser(User user){
        String sql= "INSERT into `user` (`user`.user_name,`user`.`status`) VALUES(?,?);";
        int update= jdbcTemplate.update(sql,user.getUserName(),user.getStatus());
        return update;
    }

    @Override
    public int update(User user) {
        String sql="UPDATE `user` SET status=? WHERE user_name=?;";
        return jdbcTemplate.update(sql,user.getStatus(),user.getUserName());
    }

    @Override
    public int delete(User user) {
        String sql="DELETE FROM `user` where user_name=?;";
        return jdbcTemplate.update(sql,user.getUserName());
    }

    @Override
    public int count(User user) {
        String sql="SELECT COUNT(*) FROM `user` where `status`=?;";
        return jdbcTemplate.queryForObject(sql,Integer.class,user.getStatus());
    }

    @Override
    public List<User> getList(User user) {
        String sql="SELECT * FROM `user` where `status`=?;";
        return jdbcTemplate.query(sql,new BeanPropertyRowMapper<User>(User.class),user.getStatus());
    }

    @Override
    public User getUser(User user) {
        String sql="SELECT * FROM `user` where user_id=?;";
        return jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),user.getUserId());
    }

    @Override
    public void batchAddUser(List<Object[]> batchArgs) {
        String sql= "INSERT into `user` (`user`.user_name,`user`.`status`) VALUES(?,?);";
        jdbcTemplate.batchUpdate(sql,batchArgs);
    }

}
 8.2 业务层
8.2.1接口层

UserService完整代码

public interface UserService {
    /**
     * 新增用户数据
     *
     * @param user
     * @return
     */
    public int addUser(User user);
    /**更新*/
    public int updateUser(User user);
    /**删除*/
    public int deleteUser(User user);
    /**统计用户数量 */
    public int countUser(User user);
    /**查询*/
    public List<User> getUserList(User user);
    //查询单个用户信息
    public User getUser(User user);
    //批量增加用户
    public void batchAddUser(List<Object[]> batchArgs);



}
8.2.2实现层

四、测试其功能

1. 完整代码

public class UserServiceTests {
//    @Resource
//    private JdbcTemplate jdbcTemplate;
    @Autowired   UserService userService;
    @Test
    void TestUser(){
        User user=new User();
        user.setUserName("小张");
        user.setStatus("在线");
        //新增一个用户
        int i= userService.addUser(user);
        System.out.println("新增用户成功");

        //更新
        User user1=new User();
        user1.setUserName("小张1");
        user1.setStatus("在线");
        int u=userService.updateUser(user);
        System.out.println("修改用户成功");

        //批量新增
        List<Object[]> batchArgs=new ArrayList<>();
        Object[] o1={"xx","在线"};
        Object[] o2={"yy","在线"};
        Object[] o3={"cc","离线"};
        Object[] o4={"tt","在线"};
        Object[] o5={"pp","离线"};
        batchArgs.add(o1);
        batchArgs.add(o2);
        batchArgs.add(o3);
        batchArgs.add(o4);
        batchArgs.add(o5);
        userService.batchAddUser(batchArgs);
        System.out.println("批量增加完毕");

        //查询在线用户数量
        User user2=new User();
        user2.setStatus("在线");
        int o=userService.countUser(user2);
        System.out.println("在线用户的个数为:"+o);

        //获取用户列表(user2在线)
        List<User> userList=userService.getUserList(user2);
        System.out.println("在线用户查询成功");

        //遍历在线列表
        for (User user4 : userList){
            System.out.println("用户 ID:"+ user4.getUserId() + ",用户名:" +user4.getUserName()+",状态:"+user4.getStatus());
        }

    }

 2.运行代码

3.查看数据库

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值