Spring
是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
配置xml
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!--
1. 使用IOC的注解扫描与支持: base-package - 父路径
-->
<context:component-scan base-package="com.zhongruan"></context:component-scan>
<!-- 2. 配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/db_gm?useSSL=true&characterEncoding=utf-8"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<!-- 3. 将dataSource 注入到JDBCTemplate -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
编写dao层
@Repository
public class StudentDaoImpl implements IStudentDao {
@Autowired
private JdbcTemplate jdbcTemplate;
// 注入方法
public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
this.jdbcTemplate = jdbcTemplate;
}
// 增加学生
@Override
public boolean addStu(Student student) {
boolean flag = false;
String sql = "insert into student values(?,?,?,?)";
int row = jdbcTemplate.update(sql, student.getId(), student.getName(), student.getSex(), student.getAge());
if (row > 0) {
flag = true;
}
return flag;
}
@Override
public boolean deleStu(Student student) {
boolean flag = false;
String sql = "delete from student where id = ?";
int row = jdbcTemplate.update(sql, student.getId());
if (row > 0) {
flag = true;
}
return flag;
}
@Override
public boolean updataStu(Student student) {
boolean flag = false;
String sql = "update student set name = ?,sex = ?,age= ? where id = ?";
int row = jdbcTemplate.update(sql, student.getName(), student.getSex(), student.getAge(),student.getId());
if (row > 0) {
flag = true;
}
return flag;
}
@Override
public List<Student> findAllstu() {
String sql = "select * from student";
List<Student> students = new ArrayList<>();
jdbcTemplate.query(sql, new RowCallbackHandler() {
@Override
public void processRow(ResultSet resultSet) throws SQLException {
Student student = new Student();
student.setId(resultSet.getInt("id"));
student.setAge(resultSet.getString("age"));
student.setName(resultSet.getString("name"));
student.setSex(resultSet.getString("sex"));
students.add(student);
}
});
return students;
}
@Override
public Student findByIdstu(int id) {
String sql = "select * from student where id = ?";
Student student = new Student();
jdbcTemplate.query(sql,new Object[]{id}, new RowCallbackHandler() {
@Override
public void processRow(ResultSet resultSet) throws SQLException {
student.setId(resultSet.getInt("id"));
student.setAge(resultSet.getString("age"));
student.setName(resultSet.getString("name"));
student.setSex(resultSet.getString("sex"));
}
});
return student;
}
@Override
public List<Student> findLikeNameStu(String name) {
name = "%"+name+"%";
String sql = "select * from student where name like ? ";
List<Student> students = new ArrayList<>();
jdbcTemplate.query(sql, new Object[]{name},new RowCallbackHandler() {
@Override
public void processRow(ResultSet resultSet) throws SQLException {
Student student = new Student();
student.setId(resultSet.getInt("id"));
student.setAge(resultSet.getString("age"));
student.setName(resultSet.getString("name"));
student.setSex(resultSet.getString("sex"));
students.add(student);
}
});
return students;
}
}
编写service层
@Service
public class StudentServiceImpl implements IStudentService {
@Autowired
private IStudentDao studentDao;
@Override
public boolean addStu(Student student) {
return studentDao.addStu(student);
}
@Override
public boolean deleStu(Student student) {
return studentDao.deleStu(student);
}
@Override
public boolean updataStu(Student student) {
return studentDao.updataStu(student);
}
@Override
public List<Student> findAllstu() {
return studentDao.findAllstu();
}
@Override
public Student findByIdstu(int id) {
return studentDao.findByIdstu(id);
}
@Override
public List<Student> findLikeNameStu(String name) {
return studentDao.findLikeNameStu(name);
}
}
编写test
public class TestSpringJDBC {
// 1. 加载配置文件
private ApplicationContext ac;
@Before
public void into(){
ac = new ClassPathXmlApplicationContext("applicationContext.xml");
}
// 2. 写方法进行测试
@Test
public void testAddStu(){
// 1. 给定学生信息
Student stu = new Student(2,"隔壁老王","男","30");
// 2. 调用Service进行测试
StudentServiceImpl ssi = (StudentServiceImpl)ac.getBean("studentServiceImpl");
boolean b = ssi.addStu(stu);
if (b) {
System.out.println("增加学生成功 ... ");
} else {
System.out.println("增加学生失败 ... ");
}
}
@Test
public void testdeleteStu(){
Student stu = new Student(2,"隔壁老王","男","30");
stu.setId(2);
// 2. 调用Service进行测试
StudentServiceImpl ssi = (StudentServiceImpl)ac.getBean("studentServiceImpl");
boolean b = ssi.deleStu(stu);
if (b) {
System.out.println("删除学生成功 ... ");
} else {
System.out.println("删除学生失败 ... ");
}
}
@Test
public void testupdataStu(){
Student stu = new Student(1,"隔壁老王","男","30");
// 2. 调用Service进行测试
StudentServiceImpl ssi = (StudentServiceImpl)ac.getBean("studentServiceImpl");
boolean b = ssi.updataStu(stu);
if (b) {
System.out.println("修改学生成功 ... ");
} else {
System.out.println("修改学生失败 ... ");
}
}
@Test
public void testFindAllStu(){
// 2. 调用Service进行测试
StudentServiceImpl ssi = (StudentServiceImpl)ac.getBean("studentServiceImpl");
List<Student> allstu = ssi.findAllstu();
System.out.println(allstu);
}
@Test
public void testFindByID(){
// 2. 调用Service进行测试
StudentServiceImpl ssi = (StudentServiceImpl)ac.getBean("studentServiceImpl");
Student byIdstu = ssi.findByIdstu(1);
System.out.println(byIdstu);
}
@Test
public void findLikeNameStu(){
StudentServiceImpl ssi = (StudentServiceImpl)ac.getBean("studentServiceImpl");
List<Student> s = ssi.findLikeNameStu("d");
System.out.println(s);
};
}
完成
173万+

被折叠的 条评论
为什么被折叠?



