Spring注解小练习


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

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

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

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

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

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

<?xml version="1.0" encoding="UTF-8"?>

         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">
    
        springFramework
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    day_03_job

    
        11
        11
    
    
        
            org.springframework
            spring-context
            5.3.15
        
        
            javax.annotation
            javax.annotation-api
            1.3.2
        
        
            com.alibaba
            druid
            1.2.11
        
        
            mysql
            mysql-connector-java
            8.0.28
        
    
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"?>

       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">
    
    
    
    class="com.alibaba.druid.pool.DruidDataSource">
        
        
        
        
    

    package="com.xzit.model">

    class="com.xzit.Dao.clanDao">

    class="com.xzit.service.clanService">
        
    

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 + '\'' +
                '}';
    }
}