发表于: 2019-03-02 20:21:23
1 624
今天完成的事情:
1:基于maven 使用spring框架 对jdbcTemplate crud操作的实现
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>jdbcdemo</groupId>
<artifactId>jdbcdemo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>jdbcdemo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</project>
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>jdbcdemo</groupId>
<artifactId>jdbcdemo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>jdbcdemo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</project>
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>jdbcdemo</groupId>
<artifactId>jdbcdemo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>jdbcdemo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</project>
package PersonDao;
import Person.Person;
import javax.sql.DataSource;
import java.util.List;
/**
* @author 接口类。
*/
public interface PersonDao {
public void setDatasource(DataSource ds);
/**
* 插入数据的方法
*/
public void addperson(Person person);
/**
* 更新数据的方法
*/
public void updateperson(Person person);
/**
* 查询全表的方法
*/
public List<Person> allperson();
/**
* 根据id查询方法
*/
public List<Person> querypersonId(int id);
/**
* 根据id删除方法
*/
public void deletepersonId(int id);
/**
* 输出结果的方法
*/
public void displayall();
}
package PersonDaoimpl;
import Person.Person;
import PersonDao.PersonDao;
import PersonMapper.PersonMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.util.List;
/**
* @author 实现类。
*/
public class PersonDaoImpl implements PersonDao {
private DataSource datasource;
private JdbcTemplate jdbcTemplateObject;
public void setDatasource(DataSource ds) {
this.datasource = ds;
this.jdbcTemplateObject = new JdbcTemplate(datasource);
}
/**
* 插入数据的方法
*/
public void addperson(Person person) {
String sql = "INSERT INTO stu (create_at,update_at,name,qq,job,start_time,college,number,daily_url,wish,brother,referee,city,review) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
jdbcTemplateObject.update(sql, person.getCreate_at(), person.getUpdate_at(), person.getName(), person.getQq(), person.getJob(), person.getStart_time(), person.getCollege(), person.getNumber(), person.getDaily_url(), person.getWish(), person.getBrother(), person.getReferee(), person.getCity(), person.getReview());
return;
}
/**
* 更新数据的方法
*/
public void updateperson(Person person) {
String sql = " UPDATE stu SET name=?,brother=?,job=?,wish=? where id = ?";
jdbcTemplateObject.update(sql, person.getName(), person.getBrother(), person.getJob(),person.getWish(),person.getId());
return;
}
/**
* 查询全部数据的方法
*/
public List<Person> allperson() {
List<Person> personList = null;
String sql = "SELECT * FROM stu ";
personList = jdbcTemplateObject.query(sql, new PersonMapper());
return personList;
}
/**
* 根据id查询数据的方法
*/
public List<Person> querypersonId(int id) {
List<Person> personList = null;
String sql = "SELECT * FROM stu WHERE id=?";
personList = jdbcTemplateObject.query(sql, new Object[]{id}, new PersonMapper());
return personList;
}
/**
* 根据id删除数据的方法
*/
public void deletepersonId(int id) {
String sql = "DELETE FROM stu WHERE id=?";
jdbcTemplateObject.update(sql, id);
return;
}
/**
* 输出结果的方法
*/
public void displayall() {
List<Person> personList = allperson();
for (Person s : personList) {
s.display();
}
}
}
package PersonMapper;
import Person.Person;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;
/**
* @author 映射类。
*/
public class PersonMapper implements RowMapper<Person> {
public Person mapRow(ResultSet rs, int rownum) throws SQLException {
Person person = new Person();
person.setId(rs.getInt("id"));
person.setCreate_at(rs.getString("create_at"));
person.setUpdate_at(rs.getString("update_at"));
person.setName(rs.getString("name"));
person.setQq(rs.getInt("qq"));
person.setJob(rs.getString("job"));
person.setStart_time(rs.getString("start_time"));
person.setCollege(rs.getString("college"));
person.setNumber(rs.getInt("number"));
person.setDaily_url(rs.getString("daily_url"));
person.setWish(rs.getString("wish"));
person.setBrother(rs.getString("brother"));
person.setReferee(rs.getString("referee"));
person.setCity(rs.getString("city"));
person.setReview(rs.getString("review"));
return person;
}
}
package MainTest;
import Person.Person;
import PersonDaoimpl.PersonDaoImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
/**
* @author 测试类。
*/
public class MainTest {
public static void main(String[] args) {
ApplicationContext Context = new ClassPathXmlApplicationContext("Beans.xml");
PersonDaoImpl personDaoImpl = (PersonDaoImpl) Context.getBean("PersonDaoImpl");
String[] create_at = {"10355392","10344396","10455396","10895396","10336396","10378396"};
String[] update_at = {"47289530","47226537","47245537","47969537","47287837","47282637"};
String[] name = {"张天笑", "李晓", "赵一天", "金明明", "刘星", "张帆"};
int[] qq = {110323924,110372524,110363924,110387924,110382924,110359924};
String[] job = {"java","UI","WEB","Qa","js","css"};
String[] start_time ={"2015","2016","2017","2018","2019","2014"};
String[] college = {"天津南开大学","河南大学","郑州大学","浙江大学","东北大学","辽宁大学"};
int[] number = {2468,3598,0246,4589,7836,2999};
String[] daily_url = {"http://www.jnshu.com/school/28015/daily","http://www.jnshu.com/school/28015/daily","http://www.jnshu.com/school/28015/daily","http://www.jnshu.com/school/28015/daily","http://www.jnshu.com/school/28015/daily","http://www.jnshu.com/school/28015/daily"};
String[] wish = {"老大最帅","老大最帅","老大最帅","老大最帅","老大最帅","老大最帅"};
String[] brother = {"张温瑞","李潇","路一鸣","蔡卓坤","王帆","吴盈"};
String[] referee = {"知乎","知乎","知乎","知乎","知乎","知乎"};
String[] city = {"郑州","浙江","江苏","山东","辽宁","河北"};
String[] review = {"审核中","审核中","审核中","审核中","审核中","审核中"};
Person person = null;
List<Person> personList = null;
/**插入数据的方法*/
System.out.println("------------addperson---------------");
for (int i = 0; i <create_at.length; i++) {
person = new Person(create_at[i],update_at[i],name[i],qq[i],job[i],start_time[i],college[i],number[i],daily_url[i],wish[i],brother[i],referee[i],city[i],review[i]);
personDaoImpl.addperson(person);
}
personDaoImpl.displayall();
/**更新数据的方法*/
System.out.println("------------updateperson---------------");
person = new Person("王汇通","田文瑞","java","老大最丑",1);
personDaoImpl.updateperson(person);
personDaoImpl.displayall();
/**查询全表*/
System.out.println("---------allsperson-------------");
personDaoImpl.allperson();
personDaoImpl.displayall();
/**根据Id查询*/
System.out.println("------------querypersonId---------------");
personList = personDaoImpl.querypersonId(1);
for (Person s : personList) {
s.display();
}
/**根据I删除*/
System.out.println("---------deleteId-------------");
personDaoImpl.deletepersonId(55);
personDaoImpl.displayall();
}
}
2:编写junit单元测试(还没写完,目前还不能用)
package PersonDaoimpl;
import Person.Person;
import org.junit.Test;
public class PersonDaoImplTest {
PersonDaoImpl personDaoimpl = new PersonDaoImpl();
@Test
public void addperson() {
Person person = new Person();
person.setCreate_at("10352468");
person.setUpdate_at("47289539");
person.setName("张天爱");
person.setQq(1024890526);
person.setJob("java");
person.setStart_time("2018");
person.setCollege("清华大学");
person.setNumber(3759);
person.setDaily_url("http://www.jnshu.com/school/28015/daily");
person.setWish("老大最帅");
person.setBrother("文青");
person.setReferee("知乎");
person.setCity("河南");
person.setReview("审核中");
person.display();
}
@Test
public void updateperson() {
Person person = new Person();
person.setName("李雪");
person.setBrother("张xin");
person.setJob("QA");
person.setWish("老大最帅");
person.setId(58);
person.display();
}
明天计划的事情:
1:编写单元测试
2:创建并编写多条插入的方法
遇到的问题:
1:实现类SQL语句出现少个逗号的问题(害得我找了半天)
解决方法是:把sql语句复制到数据库看效果 ,调整好在复制回来
2:数据越界问题
解决方法是:把所有数据长度调成一致
收获: 以上
还有数据库效果图 : 如下
评论