1:认识Spring
创始人:Rod Johson
特点:
a:方便解耦合,简化开发,提升性能(IOC)
b:Aop面向切面的编程
c:声明式事务的调试
d:方便程序的测试
e:方便集成各大优秀的框架
f:Java源代码学习的典范
2: Spring的体系结构
3:Java的面向对象,封装、继承、多态。
Java的本质是什么:面向对象
对象是怎么创建的:new
对象职责是:调用方法和给属性赋值
JavaBean的作用
a:为什么要生成getter/setter呢?(就是为了给属性赋值)
3、快速搭建一个SpringWeb框架,实现登录
案例:Springmvc +Hibernate实现helloword
1、下载spring所需要的包
2、项目结构搭建
3、结构分析和详细代码
(1)、applicationContext.xml
<!-- 扫描文件所在dao包 -->
<context:component-scan base-package="com.Heart.dao"></context:component-scan>
<context:component-scan base-package="com.Heart.service"></context:component-scan>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/tzspring?useUnicode=true&characterEncoding=utf8"></property>
<property name="username" value="root"></property>
<property name="password" value="12345"></property>
</bean>
<!-- springjdbctempte查询模板 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
(2)、web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 编码拦截控制 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- springmvc注册 -->
<servlet>
<servlet-name>tzspringmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>namespace</param-name>
<param-value>tzspringmvc</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>tzspringmvc</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
(3)、tzspringmvc.xml
<!-- springmvc 是多例 -->
<context:component-scan base-package="com.Heart.web"></context:component-scan>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
(4)、user.java
public class User implements java.io.Serializable{
private Integer id;
private String username;
private String password;
private String email;
private Integer age;
private Date createTime;
private String address;
同时生成他们的set get 构造方法
(5)、UserDao.java
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public boolean saveUser(User user){
/**
* 保存用户信息
*/
String sql = "INSERT into tz_user(username,password,age,address,email)VALUES(?,?,?,?,?)";
//保存、修改、删除都是update
int count = jdbcTemplate.update(sql,user.getUsername(),user.getPassword(),user.getAge(),user.getAddress(),user.getEmail());
return count >0 ?true:false;
}
/**
* 查询用户信息
*/
@SuppressWarnings("unchecked")
public List<User> findUser(){
String sql = "select id,username,address,'password',email,create_time from tz_user";
final List<User> users = new ArrayList<User>();
jdbcTemplate.query(sql, new RowMapper(){
@Override
public Object mapRow(ResultSet rs,int index) throws SQLException{
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
user.setCreatTime(new Date(rs.getTimestamp("create_time").getTime()));
users.add(user);
return user;
}
});
return users;
}
}
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public boolean saveUser(User user){
/**
* 保存用户信息
*/
String sql = "INSERT into tz_user(username,password,age,address,email)VALUES(?,?,?,?,?)";
//保存、修改、删除都是update
int count = jdbcTemplate.update(sql,user.getUsername(),user.getPassword(),user.getAge(),user.getAddress(),user.getEmail());
return count >0 ?true:false;
}
/**
* 查询用户信息
*/
@SuppressWarnings("unchecked")
public List<User> findUser(){
String sql = "select id,username,address,'password',email,create_time from tz_user";
final List<User> users = new ArrayList<User>();
jdbcTemplate.query(sql, new RowMapper(){
@Override
public Object mapRow(ResultSet rs,int index) throws SQLException{
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
user.setCreatTime(new Date(rs.getTimestamp("create_time").getTime()));
users.add(user);
return user;
}
});
return users;
}
}
(6)、UserService.java
@Service
public class UserService {
@Autowired
private UserDao userDao;
/**
* 保存用户信息
*/
public boolean saveUser(User user){
return userDao.saveUser(user);
}
/**
* 查询用户信息
*
*/
public List<User> findUser(){
return userDao.findUser();
}
}
(7)、UserController.java
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/user")
public ModelAndView user(){
ModelAndView modelAndView = new ModelAndView();
List<User> users = userService.findUser();
modelAndView.addObject("users",users);
modelAndView.setViewName("user");
return modelAndView;
}
@RequestMapping("/user/save")
public ModelAndView usersave(HttpServletRequest request){
ModelAndView modelAndView = new ModelAndView();
User user = new User();
user.setAge(Integer.parseInt(request.getParameter("age")));
user.setUsername(request.getParameter("username"));
user.setPassword(request.getParameter("password"));
user.setAddress(request.getParameter("address"));
user.setEmail(request.getParameter("email"));
boolean flag = userService.saveUser(user);
if(flag){
modelAndView.setViewName("success");
System.out.println("保存成功");
}else{
modelAndView.setViewName("fail");
System.out.println("保存失败");
}
return modelAndView;
}
}
创建 user.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML >
<html>
<head>
<title>My JSP 'user.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<c:forEach var="user" items="${users}">
<h1>${user.id}====${user.username}===${user.email}</h1>
</c:forEach>
<form action="user/save.html" method="post">
<p>用户名:<input type="text" name="username"></p>
<p>密码:<input type="text" name="password"></p>
<p>年龄:<input type="text" name="age"></p>
<p>邮箱:<input type="text" name="email"></p>
<p>地址:<input type="text" name="address"></p>
<input type="submit" value="注册">
</form>
</body>
</html>
运行程序:http://localhost:8080/Heart_Springmvc/user.html
返回成功
查看数据库是否添加成功