体会Spring的“IoC容器”对开发过程中的简化51CTO博客 - 娱乐之横扫全球

体会Spring的“IoC容器”对开发过程中的简化51CTO博客

2019-01-04 21:32:03 | 作者: 恨蕊 | 标签: 一个,增加,体会 | 浏览: 562

体会Spring的“IoC容器”对开发过程中的简化 问题:规划一个 DAO组件,完成对某个数据库表的操作----将DataSource也注入到咱们的程序中。 1、在本项目中再增加一个DAO的接口 称号为DAOInterface,包称号为springj2seapp 在该接口中增加一个办法的界说 package springj2seapp; import java.sql.ResultSet; public interface DAOInterface {         public ResultSet SelectDBData(String select_SqlStatement);    //代表对数据的查询 public void closeCon(); } 2、再对该接口加以完成        类称号为DAOInterfaceImpl,包称号为springj2seapp 编程该DAO组件类 package springj2seapp; import java.sql.*; import javax.sql.DataSource; public class DAOInterfaceImpl implements DAOInterface {         DataSource dataSource=null;         Connection con=null; //以便可以将dataSource以特点注入的方法来注入         public void setDataSource(DataSource dataSource)         {                   this.dataSource = dataSource;         }        public DAOInterfaceImpl()        {               super();               // TODO 主动生成结构函数存根        }        public ResultSet SelectDBData(String select_SqlStatement)        {            try            {              con = dataSource.getConnection();            }            catch (SQLException ex)            {              System.out.println(ex.getMessage());            }            ResultSet rs=null;            try            {              java.sql.PreparedStatement pstmt = con.prepareStatement(select_SqlStatement,                  ResultSet.TYPE_SCROLL_SENSITIVE,                  ResultSet.CONCUR_UPDATABLE);              rs = pstmt.executeQuery();            }            catch (SQLException e)            {              System.out.println(e.getMessage());            }               return rs;        }        public void closeCon()        {               try               {                      con.close();               }               catch (SQLException e)               {                       System.out.println(e.getMessage());               }        } } 3、修正前面的事务组件类 package springj2seapp; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; public class UserInfoManage implements UserInfoInterface {        boolean okOrNot;        private Date dateBean=null;          DAOInterface oneDAOBean=null;           public UserInfoManage()        {
新增加一个DAO的目标参数
              super();               // TODO 主动生成结构函数存根        }        public UserInfoManage(UserInfoVO oneUserInfo, Date dateBean, DAOInterface oneDAOBean)        {               this.dateBean=dateBean;               this.oneDAOBean=oneDAOBean;               doUserLogin(oneUserInfo);               // TODO 主动生成结构函数存根        }        public  boolean doUserLogin(UserInfoVO oneUserInfo)        {               String userName=oneUserInfo.getUserName();               String userUserPassWord=oneUserInfo.getUserPassWord();                            String sqlText="select * from userInfo where userName ="+userName+                                        " and userPassWord ="+userUserPassWord+"";               ResultSet rs=oneDAOBean.SelectDBData(sqlText);               try               {                      if(rs.next())                      {                             okOrNot=true;                      }                      else                      {                             okOrNot=false;                      }               }               catch (SQLException e)               {                      e.printStackTrace();
记住注释掉下面的哦
              }               oneDAOBean.closeCon();               //okOrNot=userName.equals("yang")&&userUserPassWord.equals("1234");               String loginTime=dateBean.toLocaleString();               System.out.println("您的登录时刻是:"+loginTime);               return okOrNot;        }        public boolean getUserLogin()        {               return okOrNot;        }     } 4、在*.xml装备文件中增加DataSource以及DAO组件的注入 <bean id="oneUserInfoManage" >   <constructor-arg>       <ref bean="oneUserInfo"/>   </constructor-arg>   <constructor-arg>        <ref bean="dateBean"/>   </constructor-arg>   <constructor-arg>        <ref bean="oneDAOBean"/>   </constructor-arg> </bean> <bean id="oneUserInfo" >
此刻的用户称号和暗码可所以数据库表中存在的
    <property name="userName">               <value>admin</value>        </property>
新增加一个DataSource的声明
       <property name="userPassWord">               <value>admin</value>        </property> </bean>   <bean id="dateBean" />      <bean id="dataSource" >         <property name="driverClassName">             <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>         </property>         <property name="url">             <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=WebStudyDB</value>         </property>         <property name="username">             <value>sa</value>         </property>         <property name="password">             <value>1234</value>         </property> </bean> <bean id="oneDAOBean"  >        <property name="dataSource">
新增加一个DAO组件的声明
              <ref bean="dataSource"/>        </property> </bean> 5、发动数据库服务器 而且应该有一个数据库文件WebStudyDB,在该数据库中有一个userInfo数据库表 用户帐号为sa,而且暗码为1234 6、将SQLServer2000的JDBC驱动程序的*.jar文件导入到咱们的项目中 msbase.jar、mssqlserver.jar和msutil.jar 7、履行本程序 将出现下面的登录成功的提示 8、体会IoC对DAO 的松懈的支撑 也可以对前面的DataSource改动为Apache DBCP的DataSource(org.apache.commons.dbcp.BasicDataSource) (1)将*.xml中的DataSource的创立的完成类由 org.springframework.jdbc.datasource.DriverManagerDataSource 改动为org.apache.commons.dbcp.BasicDataSource。 留意:*.xml中的其它的装备标签不需要改动。 <bean id="dataSource" >         <property name="driverClassName">             <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>         </property>         <property name="url">             <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=WebStudyDB</value>         </property>         <property name="username">             <value>sa</value>         </property>         <property name="password">             <value>1234</value>         </property> </bean>    (2)在本项目中增加对应的DBCP的驱动程序的*.jar包文件 commons-collections.jar、commons-dbcp-1.2.1.jar和commons-pool-1.2.jar (3)再履行该项目 将出现下面的登录成功的提示    
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    sysbench对mysql压力测验ITeye

    测验,线程,基准
  • 2

    Sql Server数据库跨库查询ITeye

    数据库,树立,链接
  • 3

    PowerDesigner 15 设置identityITeye

    规划,数据库,编码
  • 4

    [MySQL]ITeye

    一个,或许,这个
  • 5

    hdfs常用命令ITeye

    文件,目录,途径
  • 6

    orace11gR2 启用日志归档ITeye

    备份,数据库,需求
  • 7

    Mysql高可用架构ITeye

    可用,架构,计划
  • 8

    hbase 全体介绍ITeye

    存储,经过,文章
  • 9

    db2move 指令无法导出表ITeye

    导出,数据,字符
  • 10