美文网首页Spring Boot
念安——JDBC连接测试

念安——JDBC连接测试

作者: 恰我年少时 | 来源:发表于2021-07-18 00:28 被阅读0次

    一、需要的文件及其所属文件夹

    在写项目时,系统的逻辑层次非常关键


    调用层级 数据库

    1.创建Test类用来测试,含有添加函数

    package com.test;
    
    import com.dao.IAccountDao;
    import com.entity.Account;
    import org.junit.Test;
    
    import javax.annotation.Resource;
    
    public class SpringJdbcAdd extends BaseTest{
        //注入
        @Resource
        private IAccountDao accountDao;
        @Test
        public void testAddAccount(){
            //账户模块添加操作测试类
            //用的是AccountDaoImpl的,addAccount方法
            //准备要添加的数据
            Account account = new Account("账户3","工商银行",200.0,"奖金",1);
            //调用对象方法中的添加方法,返回受影响的行数
            int row = accountDao.addAccount(account);
    
            System.out.println("添加成功,受影响的行数"+row);
        }
    }
    

    其中,BaseTest类中有集成环境

    package com.test;
    
    import org.junit.runner.RunWith;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    @RunWith(SpringJUnit4ClassRunner.class)//将测试环境运行在Spring环境中
    @ContextConfiguration(locations =  {"classpath:spring.xml"}) // 设置要加载的配置文件
    public class BaseTest {
    }
    

    2.先调用实体类中constructor,生成对象:


    SpringJdbcAdd

    3.再调用dao层接口的方法返回


    SpringJdbcAdd
    dao层
    4.在生成对象之后,需要用SQL语句将其添加进数据库。SQL语句写在AccountDaoImpl中,通过entity实体类得到对象的属性,通过SQL添加进数据库:
    package com.dao.impl;
    
    import com.dao.IAccountDao;
    import com.entity.Account;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.stereotype.Repository;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    
    //Dao交给IOC处理
    //账户模块接口的实现类
    @Repository
    public class AccountDaoImpl implements IAccountDao {
    
        @Resource
        //JDBC模板,注入JdbcTemplate模板类
        private JdbcTemplate jdbcTemplate;
    
        /**添加账户记录
         * 返回受影响的行数
         * @param account
         * @return
         */
        @Override
        public int addAccount(Account account) {
    
            //定义SQL语句
            String sql = "insert into tb_account (account_name,"+
            "account_type,money,remark,create_time,update_time,user_id) values(?,?,?,?,now(),now(),?)";
            //设置参数
            Object[] objs = {account.getAccountName(),account.getAccountType(),
                    account.getMoney(),account.getRemark(),account.getUserId()};
            int row = jdbcTemplate.update(sql,objs);
            return row;
        }
    
        @Override
        public int addAccountHashKey(Account account) {
            return 0;
        }
    
        @Override
        public int addAccountBatch(List<Account> accounts) {
            return 0;
        }
    
        @Override
        public int queryAccountCount(int userId) {
            return 0;
        }
    
        @Override
        public Account queryAccountById(int accountId) {
            return null;
        }
    
        @Override
        public List<Account> queryAccountByParams(Integer userId, String accountNames, String accountType, String createTime) {
            return null;
        }
    
        @Override
        public int updateAccount(Account account) {
            return 0;
        }
    
        @Override
        public int updateAccountBaatch(List<Account> accounts) {
            return 0;
        }
    
        @Override
        public int deleteAccount(int account) {
            return 0;
        }
    
        @Override
        public int deleteAccountBatch(Integer[] ids) {
            return 0;
        }
    }
    

    调用关系

    test->dao的implement,该类实现了IAccountDao接口->entity实体类

    附录一:pom.xml文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>test_02</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
    
    <!--        配置相关的依赖坐标-->
    
            <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.2.12.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>5.2.12.RELEASE</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>5.3.6</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>5.2.12.RELEASE</version>
            </dependency>
            <!--spring事务-->
            <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>5.2.12.RELEASE</version>
            </dependency>
    
            <!--        AOP-->
            <dependency>
                <groupId>aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>1.5.4</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.22</version>
            </dependency>
    <!--        C3P0连接池-->
            <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
            <dependency>
                <groupId>com.mchange</groupId>
                <artifactId>c3p0</artifactId>
                <version>0.9.5.2</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.1</version>
                <scope>test</scope>
            </dependency>
    
        </dependencies>
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
        </properties>
    
    </project>
    

    附录二:jdbc连接的properties:

    jdbc.driver=com.mysql.cj.jdbc.Driver
    jdbc.user=root
    jdbc.password=123456
    jdbc.url=jdbc:mysql://localhost:3306/spring_database?useUnicode=true&\
      serverTimezone=Asia/Shanghai&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true
    

    附录三:spring的xml文件配置

    <?xml version="1.0" encoding="UTF-8"?>
    <!--key_value要一一对应-->
    <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"
    
           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">
    
    <!--    org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
    Line 1 in XML document from class path resource [spring.xml] is invalid; nested exception is org.xml.sax.SAXParseException;
    systemId: http://www.springframework.org/schema/mvc/; lineNumber: 1; columnNumber: 55; 在 publicId 和 systemId 之间需要有空格。-->
    
    <!--    开启自动化扫描-->
        <context:component-scan base-package = "com" />
    <!--    加载propeties配置,可以读取jdbc.propeerties配置文件中的数据-->
        <context:property-placeholder location="jdbc.properties" />
    <!--    配置c3p0数据源-->
        <bean id = "adtaSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" >
            <!--    通过property标签配置对应的值-->
    <!--        value属性值对应properties配置文件中的值-->
            <property name="driverClass" value="${jdbc.driver}" />
            <property name="jdbcUrl" value="${jdbc.url}" />
            <property name="user" value="${jdbc.user}" />
            <property name="password" value="${jdbc.password}" />
        </bean>
    <!--    配置jdbc模板对象,并注入数据源-->
        <bean id = "jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource" ref="adtaSource" />
        </bean>
    
    
    </beans>
    

    相关文章

      网友评论

        本文标题:念安——JDBC连接测试

        本文链接:https://www.haomeiwen.com/subject/phwgpltx.html