1.创建对应的数据库
2.在MyEclipse中创建项目 引入需要的jar包
3.创建数据访问层
public interface StudentDao { //新增学生
int addStudent(Student student);
//删除学生
int delStudent(Student student);
//修改学生
int updateStudent(Student student); //查询所有
List<Student> findStudents();
//查询所有的学生姓名
List<String> findNames();
}
StudentDao
public class StudentDaoImpl extends JdbcDaoSupport implements StudentDao { @Override//新增
public int addStudent(Student student) {
String sql="insert into student(age,name) values(?,?)";
return getJdbcTemplate().update(sql,student.getAge(),student.getName());
}
@Override//删除
public int delStudent(Student student) {
String sql="delete from student where id=?";
return getJdbcTemplate().update(sql,student.getId());
} @Override//修改
public int updateStudent(Student student) {
String sql="update student set age=?,name=? where id=?";
return getJdbcTemplate().update(sql,student.getAge(),student.getName(),student.getId());
} //查询所有的学生信息
@Override
public List<Student> findStudents() {
String sql="select * from student";
//需要配置 行 映射器 因为 表中有3列 spring期望值是一列
return getJdbcTemplate().query(sql, new StudentRowMapper());
}
//查询所有的姓名
@Override
public List<String> findNames() {
String sql="select name from student";
return getJdbcTemplate().queryForList(sql, String.class);
} }
StudentDaoImpl
public class StudentRowMapper implements RowMapper<Student> { //行映射器 //这里的ResultSet指的是单行数据 并不是 所有行的结果集
@Override
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
Student student=new Student();
student.setId(rs.getInt("id"));
student.setAge(rs.getInt("age"));
student.setName(rs.getString("name"));
return student;
} }
StudentRowMapper
4.创建业务逻辑层
public interface StudentService { //新增学生
void addStudent(Student student);
//删除学生
void delStudent(Student student);
//修改学生
void updateStudent(Student student); //查询所有
List<Student> findStudents();
//查询所有的学生姓名
List<String> findNames(); }
StudentService
public class StudentServiceImpl implements StudentService { private StudentDao dao; // 新增
@Override
public void addStudent(Student student) {
int num = dao.addStudent(student);
if (num > 0) {
System.out.println("新增成功");
} else {
System.out.println("新增失败");
}
} @Override
// 删除
public void delStudent(Student student) {
int num = dao.delStudent(student);
if (num > 0) {
System.out.println("删除成功");
} else {
System.out.println("删除失败");
}
} @Override
// 修改
public void updateStudent(Student student) {
int num = dao.updateStudent(student);
if (num > 0) {
System.out.println("修改成功");
} else {
System.out.println("修改失败");
}
} @Override
// 查询所有的学生信息
public List<Student> findStudents() {
return dao.findStudents();
} @Override
// 查询所有的学生姓名
public List<String> findNames() {
return dao.findNames();
} public StudentDao getDao() {
return dao;
} //DI 依赖注入
public void setDao(StudentDao dao) {
this.dao = dao;
} }
StudentServiceImpl
5.书写配置文件
<?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"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
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
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 配置数据源 01.spring的默认数据源 -->
<!-- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property
name="url" value="jdbc:mysql:///news"/> <property name="username" value="wym"/>
<property name="password" value="wym"/> </bean> --> <!-- 配置数据源 02.dbcp数据源 -->
<!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property
name="url" value="jdbc:mysql:///news"/> <property name="username" value="wym"/>
<property name="password" value="wym"/> </bean> --> <!-- 配置数据源 03.c3p0数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driverClass}" />
<property name="jdbcUrl" value="${jdbcUrl}" />
<property name="user" value="${user}" />
<property name="password" value="${password}" />
</bean> <!-- 01. 使用配置文件 加载 数据库需要的4要素 经常使用 -->
<context:property-placeholder location="classpath:jdbc.properties" /> <!-- 02.使用配置文件 加载 数据库需要的4要素 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"></property> </bean> --> <!-- 配置模板 -->
<bean id="template" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean> <!--配置dao -->
<bean id="dao" class="cn.bdqn.dao.impl.StudentDaoImpl">
<property name="jdbcTemplate" ref="template"></property>
</bean> <!-- 配置service -->
<bean id="service" class="cn.bdqn.service.impl.StudentServiceImpl">
<property name="dao" ref="dao"></property>
</bean> </beans>
applicationContext.xml
jdbc.properties文件
6.书写测试类
public class StudentTest { @Test
// 新增
public void addTest() {
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
StudentService service = (StudentService) context.getBean("service");
service.addStudent(new Student(5655, "小白5"));
} @Test
// 删除
public void delTest() {
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
StudentService service = (StudentService) context.getBean("service");
Student student = new Student();
student.setId(2);
service.delStudent(student);
} @Test
// 修改
public void updateTest() {
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
StudentService service = (StudentService) context.getBean("service");
Student student = new Student();
student.setId(1);
student.setName("xiao");
student.setAge(1000);
service.updateStudent(student);
} @Test
// 查询学生姓名
public void findNames() {
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
StudentService service = (StudentService) context.getBean("service");
List<String> names = service.findNames();
for (String string : names) {
System.out.println(string);
}
} @Test
// 查询学生
public void findStudents() {
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
StudentService service = (StudentService) context.getBean("service");
List<Student> list = service.findStudents();
for (Student student : list) {
System.out.println(student);
}
} }
测试代码