【Spring】idea连接mysql数据库

1 MySQL安装

下载地址:https://dev.mysql.com/downloads/installer/
在这里插入图片描述
安装server only选项,之后的可以选择默认安装选项

2 MySQL登录并创建数据

在这里插入图片描述

-- 创建数据库
create databases spring_db;
use spring_db;
-- 创建表
create table users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    age INT
);
-- 插入数据
INSERT INTO users (id, name, age) VALUES (1, 'Alice', 25);

-- 删除数据
DELETE FROM users WHERE id = 1;

-- 更新数据
UPDATE users SET age = 26 WHERE name = 'Alice';

-- 查询数据
SELECT id, name, age FROM users WHERE age > 20;

3 idea连接MySQL数据库

选择右侧栏,依次选择Data Source->MySQL;
在这里插入图片描述
在这里插入图片描述
完成设置后右侧可以看到spring_db数据库中的内容可以查看
在这里插入图片描述

4 使用java显示数据

以下为黑马课程代码
B站视频地址
在这里插入图片描述

4.1 config包下的三个配置文件

package com.itheima.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;


public class JdbcConfig {
    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String userName;
    @Value("${jdbc.password}")
    private String password;

    @Bean
    public DataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName(driver);
        ds.setUrl(url);
        ds.setUsername(userName);
        ds.setPassword(password);
        return ds;
    }
}
package com.itheima.config;

import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

public class MybatisConfig {
    //定义bean,SqlSessionFactoryBean,用于产生SqlSessionFactory对象
    @Bean
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
        SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
        ssfb.setTypeAliasesPackage("com.itheima.domain");
        ssfb.setDataSource(dataSource);
        return ssfb;
    }
    //定义bean,返回MapperScannerConfigurer对象
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(){
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        msc.setBasePackage("com.itheima.dao");
        return msc;
    }
}
package com.itheima.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;

@Configuration
@ComponentScan("com.itheima")
//@PropertySource:加载类路径jdbc.properties文件
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MybatisConfig.class})
public class SpringConfig {
}

4.2 dao包下的AccoutDao

package com.itheima.dao;

import com.itheima.domain.Account;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public interface AccountDao {

    @Insert("insert into users(name,age)values(#{name},#{age})")
    void save(Account account);

    @Delete("delete from users where id = #{id} ")
    void delete(Integer id);

    @Update("update users set name = #{name} , age = #{age} where id = #{id} ")
    void update(Account account);

    @Select("select * from users")
    List<Account> findAll();

    @Select("select * from users where id = #{id} ")
    Account findById(Integer id);
}

4.3 domain下的Account

package com.itheima.domain;

import java.io.Serializable;

public class Account implements Serializable {

    private Integer id;
    private String name;
    private Double age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Double getAge() {
        return age;
    }

    public void setAge(Double age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Account{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

4.4 Service下的

package com.itheima.service;

import com.itheima.domain.Account;

import java.util.List;

public interface AccountService {

    void save(Account account);

    void delete(Integer id);

    void update(Account account);

    List<Account> findAll();

    Account findById(Integer id);

}

package com.itheima.service.impl;

import com.itheima.dao.AccountDao;
import com.itheima.domain.Account;
import com.itheima.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class AccountServiceImpl implements AccountService {

    @Autowired
    private AccountDao accountDao;

    public void save(Account account) {
        accountDao.save(account);
    }

    public void update(Account account){
        accountDao.update(account);
    }

    public void delete(Integer id) {
        accountDao.delete(id);
    }

    public Account findById(Integer id) {
        return accountDao.findById(id);
    }

    public List<Account> findAll() {
        return accountDao.findAll();
    }
}

4.5 主程序

import com.itheima.config.SpringConfig;
import com.itheima.domain.Account;
import com.itheima.service.AccountService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class App2 {
    public static void main(String[] args) {
        ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);

        AccountService accountService = ctx.getBean(AccountService.class);

        Account ac = accountService.findById(1);
        System.out.println(ac);
    }
}

相关推荐

  1. JDBC连接Mysql数据库

    2024-03-12 23:10:01       49 阅读
  2. Pandas连接MySQL数据库

    2024-03-12 23:10:01       37 阅读
  3. python连接Mysql数据库

    2024-03-12 23:10:01       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 23:10:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 23:10:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 23:10:01       82 阅读
  4. Python语言-面向对象

    2024-03-12 23:10:01       91 阅读

热门阅读

  1. 03_Tomcat

    03_Tomcat

    2024-03-12 23:10:01      36 阅读
  2. Android中向Fragment传递数据

    2024-03-12 23:10:01       39 阅读
  3. leetcode - 953. Verifying an Alien Dictionary

    2024-03-12 23:10:01       41 阅读
  4. 使用hashmap优化时间复杂度,leetcode1577

    2024-03-12 23:10:01       46 阅读
  5. 计算机等级考试:信息安全技术 知识点六

    2024-03-12 23:10:01       43 阅读
  6. 【Go】探索Go语言中的关于defer的应用

    2024-03-12 23:10:01       45 阅读
  7. VSCode无法用ctrl+鼠标滚轮调整字体大小了

    2024-03-12 23:10:01       37 阅读
  8. python中的幂运算

    2024-03-12 23:10:01       40 阅读
  9. Python sort从大到小排序面试题

    2024-03-12 23:10:01       36 阅读