Spring注解小练习

1、通过注解注入方式,模拟完成如下业务逻辑

球队:包括球队名称、球队地址

球队DAO层:完成球队的增加和删除

球队Service层:完成对DAO层方法的调用

 

2、pom文件中加入Druid的依赖,使用Druid获得数据库连接

3、使用数据库连接jdbc,完成任务1的实际数据库操作

 

<?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">
    <parent>
        <artifactId>springFramework</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>day_03_job</artifactId>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.15</version>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.11</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
    </dependencies>
</project>

 

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=zengyu1234

bean.clanName=Lakers
bean.clanAddress=Los Angeles
<?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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 德鲁伊数据源连接池 -->
    <!-- 在容器中加载属性文件 -->
    <context:property-placeholder location="classpath:db.properties"></context:property-placeholder>
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>

    <context:component-scan base-package="com.xzit.model"></context:component-scan>

    <bean id="dao" class="com.xzit.Dao.clanDao"></bean>

    <bean id="service" class="com.xzit.service.clanService">
        <property name="dao" ref="dao"></property>
    </bean>

</beans>
package com.xzit.Dao;

import com.xzit.model.Clan;

public interface IclanDao {
    public int addClan(Clan clan);
}
package com.xzit.Dao;

import com.alibaba.druid.pool.DruidDataSource;
import com.xzit.model.Clan;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class clanDao implements IclanDao{
    @Override
    public int addClan(Clan clan) {
        int res=0;
        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
        DruidDataSource dataSource = (DruidDataSource) ctx.getBean("dataSource");
        Connection conn = null;
        try {
            conn = dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        System.out.println(conn);
        System.out.println(clan.getClanName());
        System.out.println(clan.getClanAddress());
        System.out.println("执行了增加方法");
        String sql="insert into clan "+"(id,clanName,clanAddress) values (?,?,?)";//sql插入语句
        PreparedStatement ps = null;
        try {
            ps = conn.prepareStatement(sql);//获取PreparedStatement接口对象
            /* 设置替换sql语句中的参数占位符? */
            ps.setInt(1,0);
            ps.setString(2,clan.getClanName());
            ps.setString(3,clan.getClanAddress());
            res=ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                ps.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return res;
    }
}
package com.xzit.service;

import com.xzit.Dao.IclanDao;
import com.xzit.model.Clan;

public class clanService {
    private IclanDao dao;

    public IclanDao getDao() {
        return dao;
    }

    public void setDao(IclanDao dao) {
        this.dao = dao;
    }

    public int addClan(Clan clan){
        int res = dao.addClan(clan);
        return res;
    }
}
package com.xzit.model;

import com.xzit.service.clanService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
        Clan clan=ctx.getBean(Clan.class);
        clanService service = ctx.getBean(clanService.class);
        int res = service.addClan(clan);
        System.out.println("新增了"+res+"条球队记录");
    }
}
package com.xzit.model;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class Clan {
    @Value("${bean.clanName}")
    private String clanName;
    @Value("${bean.clanAddress}")
    private String clanAddress;

    public String getClanName() {
        return clanName;
    }

    public void setClanName(String clanName) {
        this.clanName = clanName;
    }

    public String getClanAddress() {
        return clanAddress;
    }

    public void setClanAddress(String clanAddress) {
        this.clanAddress = clanAddress;
    }

    @Override
    public String toString() {
        return "Clan{" +
                "clanName='" + clanName + '\'' +
                ", clanAddress='" + clanAddress + '\'' +
                '}';
    }
}

 

posted @ 2022-06-19 00:23  伊万  阅读(64)  评论(0)    收藏  举报