jdbcTemplate

Spring框架对JDBC进行封装,使用jdbcTemplate方便实现对数据库操作。

1、引入依赖jar包

2、在Spring配置文件配置数据库连接池

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="url" value="jdbc:mysql://user_db"></property>
        <property name="username" value="root"></property>
        <property name="password" value="root"></property>
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
    </bean>

3、配置jdbcTemplate对象,注入DataSource

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

4、创建Service和Dao类,在dao中注入jdbcTemplate

*配置文件。开启扫描注解

    <!--开启组件扫描-->
    <context:component-scan base-package="spring5_2"></context:component-scan>
    <!--连接数据库-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="url" value="jdbc:mysql://localhost:3306/user_db?serverTimezone=UTC"></property>
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="username" value="root"></property>
        <property name="password" value="root"></property>
    </bean>
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

*Service

@Service
public class BookService {
    //注入Dao
    @Autowired
    private BookDao bookDao;
    //添加的方法
    public void addBook(Book book){
        bookDao.add(book);
    }
}

*BookDao

@Repository
public class BookDaoImpl implements BookDao {
    //注入 JdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
}

 

2、编写service和dao

(1)在dao进行数据库添加操作

(2)调用jdbcTempl对象里面update方法实现添加操作

jdbcTemplate.update(sqlStr,args);
jdbcTemplate.update(sqlStr,args);

update两个参数:sql语句,可变参数(用来设置sql语句值)。

@Repository
public class BookDaoImpl implements BookDao {
    //注入 JdbcTemplatle
    @Autowired
    private JdbcTemplate jdbcTemplate;
    
    @Override
    public void add(Book book) {
        String sqlStr="insert into t_book values(?,?,?)";
        Object []args={book.getUserId(),book.getUsername(),book.getUstatus()};
        int update=jdbcTemplate.update(sqlStr,args);
        System.out.println(update);
    }
}

Book类


public class Book {
    private String userId;
    private String username;
    private String ustatus;

    public void setUserId(String userId) {
        this.userId = userId;
    }

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

    public void setUstatus(String ustatus) {
        this.ustatus = ustatus;
    }

    public String getUserId() {
        return userId;
    }

    public String getUsername() {
        return username;
    }

    public String getUstatus() {
        return ustatus;
    }

    @Override
    public String toString() {
        return "Book{" +
                "userId='" + userId + '\'' +
                ", username='" + username + '\'' +
                ", ustatus='" + ustatus + '\'' +
                '}';
    }
}

测试类

    @Test
    public void testJdbcTemplate() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        BookService bookService = context.getBean("bookService", BookService.class);
        Book book = new Book();
        book.setUserId("1");
        book.setUsername("2");
        book.setUstatus("3");
        bookService.addBook(book);
    }

jdbcTemplate修改和删除

1、修改:

    @Override
    public void updateBook(Book book) {
        String sql="update t_book set username=?,ustatus=? where uer_id=?";
        Object[] args = {book.getUserId(), book.getUsername(), book.getUstatus()};
        int update = jdbcTemplate.update(sql, args);
        System.out.println(update);
    }

2、删除:

    @Override
    public void delete(String id) {
        String sql="delete from t_book where user_id=?";
        int update = jdbcTemplate.update(sql, id);
        System.out.println(update);
    }

jdbcTemplate操作数据库 (查询返回某个值)

1、查询表里面有多少条记录,返回是某个值

2、使用jdbcTemplate实现查询返回某个代码

jdbcTemplate.queryForObject(sql,Integer.class);

jdbcTemplate操作数据库 (查询返回对象)

场景:查询图书详情

还是用jdbcTemplate实现查询返回对象。

包含 了是三个参数,sql语句,RowMapper接口,sql语句值

 
jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<Book>(Book.class),id);

jdbcTemplate操作数据库 (查询返回集合)

其他。。。

事务

数据库操作的最基本单元。逻辑上一组操作,要么都成功,一个失败都失败。

银行转账。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值