栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

4.1SpringBoot之JdbcTemplate

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

4.1SpringBoot之JdbcTemplate

依赖

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-jdbc
        

        
            mysql
            mysql-connector-java
            runtime
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

User类

package com.example.jdbctemplate;


public class User {
    private Long id;
    private String username;
    private String address;

    public Long getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + ''' +
                ", address='" + address + ''' +
                '}';
    }
}

application.properties配置

spring.datasource.username=root
spring.datasource.password=111111
spring.datasource.url=jdbc:mysql://localhost:3306/test01?useUnicode=true&characterEncoding=UTF-8

增删改查

@Service
public class UserService {
    @Autowired
    JdbcTemplate jdbcTemplate;

    
    //增
    public int addUser(User user) {
        int update = jdbcTemplate.update("insert into user (username,address,id) values (?,?,?)", user.getUsername(), user.getAddress(), user.getId());
        return update;
    }

//增+返回主键
    public int addUser2(User user) {
        GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
        int result=jdbcTemplate.update(new PreparedStatementCreator() {
            @Override
            public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
                PreparedStatement ps = con.prepareStatement("insert into user (username,address) values (?,?)", Statement.RETURN_GENERATED_KEYS);
                ps.setString(1, user.getUsername());
                ps.setString(2, user.getAddress());
                return ps;
        }

        }, keyHolder);
        user.setId( keyHolder.getKey().longValue());
        return result;
    }

//删
    public int delete(Long id) {
        return jdbcTemplate.update("delete from user where id=?",id);
    }

    //改
    public int update(String username,Long id) {

        return jdbcTemplate.update("update  user set username=? where id=?",username,id);

    }

    //查(实体类和数据库字段不一致)
    public List query(){
        List query= jdbcTemplate.query("select * from user", new RowMapper() {
            @Override
            public User mapRow(ResultSet rs, int rowNum) throws SQLException {
                String username=rs.getString("username");
                String address=rs.getString("address");
                long id=rs.getLong("id");
                User u=new User();
                u.setUsername(username);
                u.setAddress(address);
                u.setId(id);
                return u;
            }
        });
        return query;
    }

    //查(实体类和数据库字段一致)
    public List query2(){
        List query= jdbcTemplate.query("select * from user",new BeanPropertyRowMapper<>(User.class));
        return query;
    }

}

测试

 @Autowired
    UserService userService;

    @Test
    void contextLoads() {
        User user = new User();
        user.setUsername("xiaoxiao2");
        user.setAddress("123456");
        userService.addUser(user);
    }
    @Test
    void test2() {
        User user = new User();
        user.setUsername("xiaoxiao2");
        user.setAddress("123456");
        int i = userService.addUser2(user);
        System.out.println("i="+i);
        System.out.println("user.getId()="+user.getId());
    }

    @Test
    void test3() {

        int i=userService.delete(3L);

    }

    @Test
    void test4() {
        int i=userService.update("xiaojunfeng3",6L);
    }

    @Test
    void test5() {
        List users=userService.query();
        for (User i:users){
            System.out.println(i);
        }
    }

    @Test
    void test6() {
        List users=userService.query2();
        for (User i:users){
            System.out.println(i);
        }
    }

2.数据源配置

依赖


        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            com.alibaba
            druid-spring-boot-starter
            1.1.10
        
        
            mysql
            mysql-connector-java
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

application.properties配置

spring.datasource.one.url=jdbc:mysql:///test01?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.one.username=root
spring.datasource.one.password=111111
spring.datasource.one.type=com.alibaba.druid.pool.DruidDataSource

spring.datasource.two.url=jdbc:mysql:///test02?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.two.username=root
spring.datasource.two.password=111111
spring.datasource.two.type=com.alibaba.druid.pool.DruidDataSource

User类不变

DataSourceConfig
@Configuration
public class DataSourceConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.one")
    DataSource dsOne() {
        return DruidDataSourceBuilder.create().build();
    }

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.two")
    DataSource dsTwo() {
        return DruidDataSourceBuilder.create().build();
    }
}

JdbcTemplateConfig
@Configuration
public class JdbcTemplateConfig {
    @Bean
    JdbcTemplate jdbcTemplateOne(@Qualifier("dsOne") DataSource dsOne) {
        return new JdbcTemplate(dsOne);
    }

    @Bean
    JdbcTemplate jdbcTemplateTwo(@Qualifier("dsTwo") DataSource dsTwo) {
        return new JdbcTemplate(dsTwo);
    }
}

测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class Jdbctemplate2ApplicationTests {

    @Autowired
    @Qualifier("jdbcTemplateOne")
    JdbcTemplate jdbcTemplateOne;

    @Resource(name = "jdbcTemplateTwo")
    JdbcTemplate jdbcTemplateTwo;

    @Test
    public void contextLoads() {
        List list1 = jdbcTemplateOne.query("select * from user", new BeanPropertyRowMapper<>(User.class));
        System.out.println(list1);
        List list2 = jdbcTemplateTwo.query("select * from user", new BeanPropertyRowMapper<>(User.class));
        System.out.println(list2);
    }

}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/872748.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号