Spring—jdbc模板

Spring—jdbc

Spring-jdbc就是一个jdbc的工具类,对jdbc进行了简单的封装,与dbutils类似。相对于mybatis,hibernate这些框架可能没有那么强的功能,但对数据库进行简单的CRUD操作还是不在话下。

创建一个maven工程,引入依赖

 <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.7.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.12</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.5.2</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.21</version>
        </dependency>

这里引入了一个Druid数据库连接池,等会使用它来作为连接池,当然也可以使用spring自带的连接池,Druid连接池的性能要高一些。

创建一个jdbc配置类

JdbcConfig.java


@Configuration
public class JdbcConfig {

    @Bean
    DataSource dataSource(){
    	//使用druid数据库连接池
        DruidDataSource build = new DruidDataSource();
        //使用spring自带的数据库连接池
        //DriverManagerDataSource build = new DriverManagerDataSource();
        build.setUsername("root");
        build.setPassword("root");
        build.setUrl("jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&serverTimezone=UTC");
        build.setDriverClassName("com.mysql.cj.jdbc.Driver");
        return build;
    }
    @Bean
    JdbcTemplate jdbcTemplate(){
        return new JdbcTemplate(dataSource());
    }
}

接下里进行测试:


public class JdbcTest {
    private JdbcTemplate jdbcTemplate;
    @BeforeEach
    public void test(){
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JdbcConfig.class);
        jdbcTemplate= (JdbcTemplate) context.getBean("jdbcTemplate");
    }

    @Test
    //添加
    public void test1(){
        jdbcTemplate.update("insert  into user (username ,address) value (?,?)","zs","fuzhou");
    }

	//更新
    @Test
    public void update() {
        jdbcTemplate.update("update user set username=? where id=?", "zs", 1);

    }
	//删除
    @Test
    public void delete() {
        jdbcTemplate.update("delete from user where id=?", 1);
    }
    
    //查询所有
    @Test
    public void select4() {
        List<User> list = jdbcTemplate.query("select * from user", new BeanPropertyRowMapper<User>(User.class));
        System.out.println(list);
    }
	//查询单个
    @Test
    public void select() {
        User user = jdbcTemplate.queryForObject("select * from user where id=?", new BeanPropertyRowMapper<User>(User.class), 2);
        System.out.println(user);
    }

}

发布了25 篇原创文章 · 获赞 0 · 访问量 286

猜你喜欢

转载自blog.csdn.net/qq_42219004/article/details/105198236