Springboot连接数据库的demo

SpringBoot的简单使用

1.启动类

@SpringBootApplication 是spring boot的核心注解,包含了@ComponentScan、@Configuration@EnableAutoConfiguration注解。

@ComponentScan 组件扫描,可自动发现和装配一些Bean。@Configuration 等同于spring的XML配置文件;

@EnableAutoConfiguration让spring boot根据类路径中的jar包依赖为当前项目进行自动配置。

//内部包含EnableAutoConfiguartion和ComponentScan注解
//作用:自动对ApLication的所在包的内容进行自动扫描并配置
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

2.Dao包

@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。一般公共的方法会用上这个注解

2.1.mysql
@Component
public class UserDaoImpl2 implements UserDao {
    @Autowired
    private JdbcTemplate template;
    @Override
    public User insert(User user) {
        return null;
    }
    @Override
    public SuperUser select(SuperUser user) {
        String sql = "select * from superuser where s_id = ?";
          //新建MyRowMapper类实现RowMapper接口,重写mapRow方法,指定返回User对象
        SuperUser user2 = template.queryForObject(sql, new RowMapper<SuperUser>() {
            @Override
            public SuperUser mapRow(ResultSet resultSet, int i) throws SQLException {
                String name = resultSet.getString("s_id");
                String psd = resultSet.getString("s_password");
                return new SuperUser(name,psd);
            }
        }, user.getS_id());
        return user2;
    }

}

2.2mongodb
@Component
public class UserDaoImpl implements UserDao {
    @Autowired    //注入mongodb的使用
    private MongoTemplate template;

    @Override
    public User insert(User user) {
        //注意:这里的集合的名字
        //如果是第一次添加会直接在数据库中创建一个与当前的模型一样名字的集合.
        //第二次直接将数据添加到这个集合中
        User user1 = template.save(user);
        return user1;
    }

    @Override
    public SuperUser select(SuperUser user) {
        return null;
    }

}

3.Controller包

@RestController注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。

@RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。

3.1.mysql
@RestController
public class MysqlDBController {
    @Autowired
    private UserServiceIpl2 service2;
    @RequestMapping(value ="/getsuper")
    public String getInfo2(){
        SuperUser user1 = new SuperUser();
        user1.setS_id("root");
        SuperUser user2 = service2.select(user1);
        return user2.toString();
    }
}

3.2.mongodb
@Component
public class UserDaoImpl implements UserDao {
    @Autowired    //注入mongodb的使用
    private MongoTemplate template;

    @Override
    public User insert(User user) {
        //注意:这里的集合的名字
        //如果是第一次添加会直接在数据库中创建一个与当前的模型一样名字的集合.
        //第二次直接将数据添加到这个集合中
        User user1 = template.save(user);
        return user1;
    }
    @Override
    public SuperUser select(SuperUser user) {
        return null;
    }
}

4.Service包

@Autowired 自动导入,把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。

@Service:一般用于修饰service层的组件

4.1mysql
@Service
public class UserServiceIpl2 implements UserService2 {
    @Autowired
    private UserDaoImpl2 userDao2;
    @Override
    public SuperUser select(SuperUser user) {
        return userDao2.select(user);
    }
}
4.2mongodb
@Service
public class UserServiceIpl implements UserService {
    @Autowired
  private UserDaoImpl userDao;
 @Override
  public User insert(User user){
      return  userDao.insert(user);
  }

}

5.目录结构

Springboot连接数据库的demo_第1张图片

6.MongoDB和Mysql的连接配置

//mongodb数据库
spring.data.mongodb.uri=mongodb://localhost:27017/db1
//连接mysql数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/news?useUnicode=true&characterEncoding=utf8&userSSL=false&serverTimezone=GMT%2B8

7.项目的Maven项目XML


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>
    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.1.7.RELEASEversion>
        <relativePath/> 
    parent>
    <groupId>com.examplegroupId>
    <artifactId>demoartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>demoname>
    <description>Demo project for Spring Bootdescription>

    <properties>
        <java.version>1.8java.version>
    properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>

        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-data-mongodbartifactId>
        dependency>

        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-jdbcartifactId>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
        dependency>

    dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>

project>


8.操作

1.打开idea,创建项目

2.选择spring initializr项目,选择sdk,然后URL选择默认路径就行

3.然后next

4.选择web,然后点击右边的spring web starter(如果版本低的话选择web)

5.next,然后随便命名然后finish

6.建立以上的包和项目

7.点击运行demoapplication类,然后打开浏览器,输入localhost:8080/getsuper或者

localhost:8080/getinfo。当然如果自己改了路径就按照自己的。

8.只是给新手看的

你可能感兴趣的:(javaee)