发表于: 2018-01-17 01:44:01
1 627
今天完成
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点,断了一天。抱歉
评论