发表于: 2018-01-17 01:44:01

1 628


今天完成

1.解决前天留下的问题,发现自己写错的地方太多,弃坑;

2.对自己表中的数据进行查询操作,照任务要求分离interface和imple;

package jdbcspringtest;

// 创建 DAO 接口 StudentDAO 并列出所有必需的方法

import javax.sql.DataSource;

import java.util.List;

public interface Dao {
public void setDatasource(DataSource datasource);
   public Student getStudent(int ID);
   public List<Student> listStudent() ;
}


package jdbcspringtest;

import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.util.List;
//定义的 DAO 接口 StudentDAO 的实现类文件
public class StudentJDBCTemplate implements Dao {
private DataSource dataSource;//数据源对象
   private JdbcTemplate jdbcTemplateObject;
   @Override
   public void setDatasource(DataSource dataSource) {
this.dataSource=dataSource;
       this.jdbcTemplateObject=new JdbcTemplate(dataSource);

   }
//获得数据源中的数据并打包到list中
@Override
   public Student getStudent(int ID) {
String sql="select * from student where ID=?";
       Student student=jdbcTemplateObject.queryForObject(sql,new Object[]{ID},new StudentMapper());
          return student;
   }
@Override
   public List<Student> listStudent() {
String sql="select * from student";
       List<Student> students=jdbcTemplateObject.query(sql,new StudentMapper());
       return students;
   }
}


package jdbcspringtest;

public class Student {
private String name;
   private Long QQ;
   private String onlineID;
   private String swear;
   private int ID;

   public String getName() {
return name;
   }

public void setName(String name) {
this.name = name;
   }

public Long getQQ() {
return QQ;
   }

public void setQQ(Long QQ) {
this.QQ = QQ;
   }

public String getOnlineID() {
return onlineID;
   }

public void setOnlineID(String onlineID) {
this.onlineID = onlineID;
   }

public String getSwear() {
return swear;
   }

public void setSwear(String swear) {
this.swear = swear;
   }

public int getID() {
return ID;
   }

public void setID(int ID) {
this.ID = ID;
   }
@Override
   public String toString() {
return "student[id="+ID+"name="+name+",QQ="+QQ+",onlineID="+onlineID+",swear"+swear+"]";
   }

}


package jdbcspringtest;
import org.springframework.jdbc.core.RowMapper;
import javax.swing.tree.TreePath;
import java.sql.ResultSet;
import java.sql.SQLException;

public class StudentMapper implements RowMapper<Student> {
public Student mapRow(ResultSet rs, int rownum) throws SQLException {
Student student=new Student();
       student.setID(rs.getInt("ID"));
       student.setName(rs.getString("name"));
       student.setOnlineID(rs.getString("onlineID"));
       student.setQQ(rs.getLong("QQ"));
       student.setSwear(rs.getString("swear"));
       return student;
}
}


package jdbcspringtest;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.Iterator;
import java.util.List;
//测试类
public class Test {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("Bean.xml");
       StudentJDBCTemplate studentJDBCTemplate=(StudentJDBCTemplate)context.getBean("studentJDBCTemplate");
       List<Student> students=studentJDBCTemplate.listStudent();
       Iterator<Student> it=students.iterator();
       while (it.hasNext()){
Student st=(Student) it.next();
           System.out.println("ID="+st.getID()+st.getName()+st.getOnlineID());
       }
}
}


<?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 http://www.springframework.org/schema/context/spring-context.xsd">
   <!--配置c3p0连接池-->
<bean id="dataSource"
     class="org.springframework.jdbc.datasource.DriverManagerDataSource">
     <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
     <property name="url" value="jdbc:mysql://localhost:3306/wodeshujuku"/>
     <property name="username" value="root"/>
     <property name="password" value="w7217459"/>
</bean>
   <!-- 创建jdbcTemplate,并且通过IOC的依赖注入的构造注入方式注入c3p0连接池对象,那么获取到jdbcTemplate后就能够直接使用 -->
   <bean id="studentJDBCTemplate"
         class="jdbcspringtest.StudentJDBCTemplate">
       <property name="datasource" ref="dataSource"></property>
   </bean>
</beans>


执行后输出

ID=1李路璐PM-885

ID=2李浩CSS-4585

ID=3孙聪聪JAVA-2252

ID=4于靖华4409

ID=5杨少华PM-867

ID=6胡语庆PM-877

ID=7姚远2182

ID=8张锦润716

ID=9高琳翔74

ID=10张新然822

ID=11高明达JAVA-2365

明天计划

1.继续spring剩余部分的学习;

2.学习Mybits;

遇到问题

执行程序时抛出:NoSuchBeanDefinitionException: No bean named 'studentJDBCTemplate' available

解决:xml文件中id拼写错误;

收获

终于自己实现了spring连接数据库并进行操作,由于不能连续长时间学习,浪费了太多的时间来进行对以前知识点的复习。发现自己对以前知识点的掌握程度只能达到了解的程度,需要更多练习。

昨天算账算到晚上2点,断了一天。抱歉

返回列表 返回列表
评论

    分享到