SpringBoot学习:Jdbc链接数据库

仅为记录自己学习过程

前置条件:

    假设已有一个MySQL数据库,其中创建一个table叫做people ,有id,name...列.

引入依赖:

在pom文件引入spring-boot-starter-jdbc的依赖:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

引入mysql连接类和连接池:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.29</version>
        </dependency>

开启web:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

配置相关文件

在jdbc.properties文件配置mysql的驱动类,数据库地址,数据库账号、密码信息。

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/people
spring.datasource.username=root
spring.datasource.password=root

修改Application.java

/**
 * Created by Administrator on 2018/3/1.
 */
@SpringBootApplication
public class Application {
    public  static void  main(String[] args){
        SpringApplication.run(Application.class,args);

        @Autowired
         private Environment env;//获取配置文件的一种方式
        //destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用.
        @Bean(destroyMethod = "close")
        public DataSource dataSource(){
            DruidDataSource dataSource =new DruidDataSource();
            dataSource.setUrl(env.getProperty("spring.datasource.url"));
            dataSource.setUsername(env.getProperty("spring.datasource.username"));
            dataSource.setPassword(env.getProperty("spring.datasource.password"));
            dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
            dataSource.setInitialSize(2);//初始化时建立物理连接的个数
            dataSource.setMaxActive(20);//最大连接池数量
            dataSource.setMinIdle(0);//最小连接池数量
            dataSource.setMaxWait(60000);//最大等待时间,单位毫秒
            dataSource.setValidationQuery("SELECT 1");//用来检测连接是否有效
            dataSource.setTestOnBorrow(false);//申请连接时执行validationQuery检测连接是否有效
            dataSource.setTestWhileIdle(true);//建议配置为true,不影响性能,并且保证安全性。
            dataSource.setPoolPreparedStatements(false);//是否缓存preparedStatement,也就是PSCache
            return dataSource;
        }
    }

根据数据库创建一个实体类

/**
 * Created by Administrator on 2018/3/1.
 */
public class People {
    private int id ;
    private String name ;
    ...
    //省略了setget
}

控制层

@RestController
@RequestMapping("/jdbc")
public class PeopleController {
    @Autowired
    IJdbcService jdbcService;

    @RequestMapping(value = "/list",method = RequestMethod.GET)
    public List<People> getPeoples(){
        return  jdbcService.findPeopleList;

    }
}

service层

@Service
public class JdbcServiceImpl implements IJdbcService{
    @Autowired
    IJdbcDao iJdbcDao;

    @Override
    public List<People> findPeopleList(){
        return  iJdbcDao.findPeopleList();
    }

public interface IJdbcService {
    List<People> findPeopleList();
}

Dao层

public interface IJdbcDao {
    List<People> findPeopleList();
}
@Repository
public class JdbcDaoImpl implements IJdbcDao {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public List<People> findPeopleList(){
        List<People>list=jdbcTemplate.query("select * from table",new Object[]{},new BeanPropertyRowMapper(People.class));
        if(list!=null && list.size()>0){
            People people =list.get(0);
            return  people;
        }else {
            return  null;
        }
    }

参考:

http://blog.csdn.net/forezp/article/details/70477821#reply

http://tengj.top/2017/04/13/springboot8/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少儿学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值