zoukankan      html  css  js  c++  java
  • 【Spring 从0开始】JdbcTemplate 操作数据库

    spring 对 jdbc 做了封装,就是 JdbcTemplate,可以让操作数据库更加方便。

    一、准备工作

    1. 引入依赖

    在之前的基础上,再引入这些依赖。



    2. 配置文件中配置数据库连接池

    外部文件 jdbc.properties:

    prop.driverClass=com.mysql.jdbc.Driver
    prop.url=jdbc:mysql://localhost:3306/userDb
    prop.username=root
    prop.password=123456
    

    配置文件引入:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                               http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
                               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
    
        <context:component-scan base-package="com.pingguo.spring5"></context:component-scan>
    
        <!--引入外部属性文件-->
        <context:property-placeholder location="classpath:jdbc.properties"/>
    
        <!--配置连接池-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${prop.driverClass}"></property>
            <property name="url" value="${prop.url}"></property>
            <property name="username" value="${prop.username}"></property>
            <property name="password" value="${prop.password}"></property>
        </bean>
    </beans>
    
    
    

    3. 配置 JdbcTemplate 对象

    注入 DataSource。

    ... ...
        <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <!--注入datasource-->
            <property name="dataSource" ref="dataSource"></property>
        </bean>
    ... ...
    

    4. dao 中注入 JdbcTemplate 对象

    创建 dao,在里面注入 JdbcTemplate 。

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

    创建 service 类,在里面注入 dao。

    @Service
    public class BookService {
    
        // 注入dao
        @Autowired
        private BookDao bookDao;
    }
    

    二、操作数据库

    以添加为例。

    建一个很简单的表,里面有 3 个字段。

    1. 创建对应实体类

    创建数据表对应的实体类,并且生成 3 个属性的 get、set方法。

    public class Book {
        private String userId;
        private String username;
        private String userStatus;
    
        public String getUserId() {
            return userId;
        }
    
        public void setUserId(String userId) {
            this.userId = userId;
        }
    ... ...
    

    2. 编写service 和 dao

    service

    @Service
    public class BookService {
    
        // 注入dao
        @Autowired
        private BookDao bookDao;
    
        public void addBook(Book book) {
            bookDao.add(book);
        }
    }
    

    dao 的实现类。

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

    使用 jdbcTemplate.update() 方法进行添加,第一个参数是 sql,第二个不定长参数,成功则返回 1。

    3. 编写测试

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

    运行结果:

    八月 05, 2021 10:35:15 下午 com.alibaba.druid.pool.DruidDataSource info
    信息: {dataSource-1} inited
    1
    
    Process finished with exit code 0
    

    查看数据表

    成功添加。

    删除跟修改操作跟上面类似了,不再演示。

    --不要用肉体的勤奋,去掩盖思考的懒惰--
  • 相关阅读:
    关于报错”已有打开的于此Command相关联的DataReader,必须首先将它关闭。“的问题
    Dockerjenkins环境搭建跟配置
    Python+selenium 【第十章】封装config类,读取配置文件,封装驱动类,适配windows/mac
    —— “欢迎来到我的小屋”
    Python+selenium 【第九章】封装excel类,封装test_data类 读取测试元素信息
    Linux搭建docker
    Python+selenium 【第十二章】封装日志类优化其他方法并添加日志(异常处理)
    【selenium】Python自动化面试题
    Dockerjenkins容器安装python并配置环境变量
    【优化框架】新增期望结果,断言为mysql情况下动态化参数替换
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/15102744.html
Copyright © 2011-2022 走看看