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

浙公网安备 33010602011771号