数据库连接池

连接Spring和Mysql,充当一个转换容器,临时存储原生的mysql语句操作
在这里插入图片描述

增删改查功能设计

思路
  • 创建接口及实现类
  • 创建数据库层的class
  • 创建外部类调用接口功能
    在这里插入图片描述

JdbcTemplate方法

update函数

update(String sql,Object … args)

  • sql语句
  • 可变参数设置语句值(传递给?)
queryForObject函数

queryForObject(String sql,Class requiredType)

  • sql语句
  • 返回的类型class
    查询表里面有多少条记录,返回是某个值
    queryForObject返回查询对象
    queryForObject(String sql,RowMspper rowMapper,Object… args)
  • sql语句
  • RowMsppper接口
  • 可变参数

配置数据连接池

导入需要的依赖jar包

在这里插入图片描述
配置数据库连接池

<!--    数据库连接池 阿里 mysql-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
          destroy-method="close">
        <property name="url" value="jdbc:mysql://localhost:3306/jdbctest?useUnicode=true&amp;characterEncoding=utf8" />
        <property name="username" value="root" />
        <property name="password" value="password" />
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    </bean>

<!--    jdbc template对象注入-->

    <bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<!--        注入datasource-->

        <property name="dataSource" ref="dataSource"></property>
    </bean>

<!--组件扫描-->
    <context:component-scan base-package="service,entity,dao">

    </context:component-scan>

创建与数据库表对应的类(entity)

创建一个book类对应mysql中的bookuser表
在这里插入图片描述

package entity;

public class Book {
    private String username,userpassword;
    private int id;

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

    public void setUserpassword(String userpassword) {
        this.userpassword = userpassword;
    }

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

    public String getUsername() {
        return username;
    }

    public String getUserpassword() {
        return userpassword;
    }

    public int getId() {
        return id;
    }
}

配置接口及实现类(interface)

接口
接口定义数据库表的增、删、改、查方法

package dao;
import entity.Book;
public interface BookDao {
    public  void add(Book book);//添加book表数据
    public void updatebook(Book book);//修改表数据
    public void deletebook(Book book);//删除数据
    public int selecCount();//查询数据库
}

接口实现类
实现接口的方法

package dao;
import entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class BookDaoImpl implements BookDao {
    @Autowired
    public JdbcTemplate jdbctemplate;

    @Override
    public void add(Book book) {
        String sql="insert into bookuser values(?,?,?)";//原生语句 添加数据 ?为参数的传输
        Object[] args={book.getUsername(),book.getUserpassword(),book.getId()};
        int update=jdbctemplate.update(sql,args);//成功返回1
        System.out.println(update);
    }

    @Override
    public void updatebook(Book book) {
        String sql="update bookuser set username=?,userpassword=? where id=?";//原生语句 修改数据
        Object[] args={book.getUsername(),book.getUserpassword(),book.getId()};//只修改用户名使用get
        int update=jdbctemplate.update(sql,args);
        System.out.println(update);
    }

    @Override
    public void deletebook(Book book) {
        String sql="delete from bookuser where id=?";//原生语句 删除数据
        Object[] args={book.getId()};
        int update=jdbctemplate.update(sql,args);
        System.out.println(update);
    }

    @Override
    public int selecCount() {
        String sql="select count(*) from bookuser";
        Integer count=jdbctemplate.queryForObject(sql,Integer.class);//第二个参数为返回的类型
        return count;
    }
}

调用接口功能(service)

package service;

import dao.BookDao;
import entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
//自动注解把类名的首字母小写
public class BookService {
    @Autowired
    private BookDao bookdao;
    public void addBook(Book book)
    {
        bookdao.add(book);//添加
    }
    public void updateBook(Book book)
    {
        bookdao.updatebook(book);//更新
    }
    public void deleteBook(Book book)
    {
        bookdao.deletebook(book);//删除
    }
    public void selectCount()
    {
        bookdao.selecCount();//返回查询的结果
    }

}

main方法中实现

        ApplicationContext context4=new ClassPathXmlApplicationContext("bean06.xml");
        BookService jdbc=context4.getBean("bookService",BookService.class);//自动注解
        System.out.println(jdbc);//已执行
        Book user01=new Book();//添加的数据
        user01.setUsername("yma16");
        user01.setUserpassword("password");
        user01.setId(666);//条件
        jdbc.addBook(user01);//实现接口
        System.out.println("insert成功!");

        Book user02=new Book();//修改的数据
        user02.setUsername("修改的用户名");
        user02.setUserpassword("修改的密码");
        user02.setId(666);//条件
        jdbc.updateBook(user02);//实现修改的接口
        System.out.println("update成功!");
        //查询的数据
        jdbc.selectCount();//实现查询的接口
        System.out.println("查询成功!");

增、删、改、查测试成功!
在这里插入图片描述
查看mysql中的bookuser表已更新!
在这里插入图片描述

代码:我的github仓库
end
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐