有一個學生表,屬性有id/name/age,id自增,經過spring-jdbc的方式查詢全部數據,添加數據。java
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.4.RELEASE</version> </dependency>
Student.javamysql
package com.dotleo.entity; /** * Student 實體類 * @author LiuFei * @create 2017-11-05 21:35 */ public class Student { private int id; //主鍵 private String name; //姓名 private int age; //年齡 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
此文件爲最終版,可能因爲部分類還沒建立報錯,暫時不用管spring
beans.xmlsql
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <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/spring_data" /> <property name="username" value="root" /> <property name="password" value="liufei" /> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="studentDAO" class="com.dotleo.dao.StudentDAOImpl"> <property name="jdbcTemplate" ref="jdbcTemplate" /> </bean> </beans>
StudentDAO.java測試
package com.dotleo.dao; import com.dotleo.entity.Student; import java.util.List; /** * 學生類DAO * @author LiuFei * @create 2017-11-05 21:38 */ public interface StudentDAO { /** * 查詢全部學生 * @return 全部學生 */ public List<Student> query(); /** * 添加一個學生 * @param student 學生 */ public int save(Student student); }
StudentDAOImpl.javathis
package com.dotleo.dao; import com.dotleo.entity.Student; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowCallbackHandler; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; /** * Student類DAO實現類,經過最原始的jdbc方式操做 * @author LiuFei * @create 2017-11-05 21:41 */ public class StudentDAOImpl implements StudentDAO{ private JdbcTemplate jdbcTemplate; public List<Student> query() { final List<Student> students = new ArrayList<Student>(); String sql = "select id, name , age from student"; jdbcTemplate.query(sql, new RowCallbackHandler() { public void processRow(ResultSet resultSet) throws SQLException { Student student = new Student(); student.setId(resultSet.getInt("id")); student.setName(resultSet.getString("name")); student.setAge(resultSet.getInt("age")); students.add(student); } }); return students; } public int save(Student student) { int result = 0; String sql = "insert into student (name, age) values (?, ?)"; result = jdbcTemplate.update(sql, student.getName(), student.getAge()); return result; } public JdbcTemplate getJdbcTemplate() { return jdbcTemplate; } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } }
須要必定有junit基礎url
DataSourceTest.javacode
package com.dotleo; import com.dotleo.dao.StudentDAO; import com.dotleo.entity.Student; import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; import javax.sql.DataSource; import java.util.List; /** * @author LiuFei * @create 2017-11-05 22:51 */ public class DataSourceTest { ApplicationContext ctx = null; @Before public void setup() { ctx = new ClassPathXmlApplicationContext("beans.xml"); } @After public void tearDown() { ctx = null; } @Test public void testDataSource() { DataSource dataSource = (DataSource) ctx.getBean("dataSource"); Assert.assertNotNull(dataSource); } @Test public void testJdbcTemplate() { JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate"); Assert.assertNotNull(jdbcTemplate); } @Test /** * 查詢方法測試 */ public void testQuery() { StudentDAO studentDAO = (StudentDAO) ctx.getBean("studentDAO"); List<Student> studentList = studentDAO.query(); for (Student student : studentList ) { System.out.println("id: " + student.getId() + "name: " + student.getName() + "age: " + student.getAge()); } } @Test /** * 添加方法測試 */ public void testSave() { StudentDAO studentDAO = (StudentDAO) ctx.getBean("studentDAO"); Student student = new Student(); student.setName("maliu"); student.setAge(23); int result = studentDAO.save(student); System.out.println(result); } }