在第一天将Java Web环境搭建完成后,先用JDBC 在控制台命令行上实现模拟登录和增删改查进行练手,同时回顾了数据库连接过程的七个步骤
数据库连接过程
(1)获取驱动
(2)创建连接
(3)编写sql
(4)获取prepareStatement
(5)执行sql语句,并返回结果
(6)处理结果集
(7)关闭资源
//1.获取驱动
Class.forName("com.mysql.jdbc.Driver") ;
//2.创建连接127.0.0.1 /Localhost 自动生成返回值:Ctrlc+Alt+V
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java3?useSSL=true&characterEncoding=utf-8&user=root&password=123456");
//3.编写sql语句
String sql = "select * from tb_user" ;
//4.获取对象
prst = conn.prepareStatement(sql);
//5.执行并返回结果 - executeUpdate 返回整数,适用于增删改; executeQuery - 返回结果集,查询
rs = prst.executeQuery();
//6.处理结果
while(rs.next()){
System.out.println("用户id为:"+rs.getInt(1));
System.out.println("用户姓名为:"+rs.getString(2));
System.out.println("用户密码为:"+rs.getString(3));
//7.关闭资源
if(rs !=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(prst !=null){
try {
prst.close();
} catch (SQLException e) {
e.printStackTrace();
}
} if(conn !=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
同时还复习了Java的三大特性:封装、继承、多态以及实体层的封装结构
实体类封装
实体类模型映射数据库字段,其中实体层的封装结构分为四步
(1)属性封装
(2)Get set
(3)构造方法
(4)toString方法重写
先是对属性进行封装
public class User {
//1.属性封装
private int id;//用户id
private String name;//用户名
private String pwd;//用户密码
}
进行get set
在空白处右击,点击Generat,也可以通过快捷键Alt+Insert进入Generat
选择getter and setter
按住shift全选
完成get set
之后的构造方法和toString方法重写都可以从Generate中获取
最后的代码
//2.get set
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 String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
//3.构造方法
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public User() {
}
//4.toString 方法重写
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
有了实体类的封装,同是也要对使用的工具进行封装,便有工具类的封装。
工具类封装
这里则是对数据库的连接
package util;
import java.sql.*;
//工具类
public class DBUtil {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/java3?useSSL=true&characterEncoding=utf-8";
private static String user = "root";
private static String password = "wen199877";
static {
try {
//1.获取驱动
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
}
}
//2.创建连接
public static java.sql.Connection get_Conn() throws SQLException {
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("成功连接");
return conn;
}
//3.关闭资源
public static void get_CloseConn(ResultSet rs , PreparedStatement prst,Connection conn) throws SQLException {
if (rs != null) {
rs.close();
}
if (prst != null) {
prst.close();
}
if (conn != null) {
conn.close();
}
}
//单元测试/白盒测试
// public static void main (String[] args){
// try {
// get_Conn();
// } catch (SQLException e) {
// e.printStackTrace();
// }
//
// }
}
SSM的初步认识
现如今众多java应用中,Spring框架是必须的。Struts2框架与Spring的整合问题日益凸显,而Spring MVC作为新一代的MVC框架,因其可以与Spring框架无缝整合的特性收到了越来越多的欢迎。另一方面,Hibernate框架在面对需要存储过程或者复杂SQL时显得力不从心,不能提供高效的数据库控制。而Mybatis框架作为持久层的框架,虽然需要自己编写SQL语句,但是其对高并发高响应的支持,以及对动态SQL和动态绑定的支持使其脱颖而出。
所以,SSM框架(Spring + Spring MVC +Mybatis)逐渐取代了SSH框架(Spring + Struts2 + Hibernate)。
概念
1.Spring是非常经典的java bean容器,它可以非常有效率的实现对java bean(也包括分离出的DAO和Service)的管理。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2.SpringMVC作为控制层的web框架,全方面替代了Struts2,在action层面进行拦截,使用注解的方式来定义controller中的antion,在xml中配置自动扫描即可实现业务的跳转。并且由于是spring大家族的产品,对spring的兼容性几乎到达百分之百兼容。继承于Spring,MVC是Model、View、Controller。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
3.Mybatis是当下较为流行的持久层框架,而所有的持久性框架,都是在JDBC的基础上进行高度封装。其中的优点:是对JDBC进行了完美的封装,保留了动态sql的编写,善于处理复杂的多表关系,采用xml配置sql语句的方式,sql形式多样,便于扩展和后期维护。
项目的开发过程
1.用的是IDEA开发工具,可以直接新建Maven项目
2.在新建的项目中添加所需要的文件/文件夹
新建四个包:pojo,service,dao,controller,其所存放的分别是:
pojo: 存放自定义的java类。如:paper类,user类,book类等,每个类的属性设为private,并提供public属性的getter/setter方法让外界访问
service:定义接口,包含系统所提供的功能。(之后还会在service包下再新建impl包)。
dao:定义接口,包含与数据库进行交互的功能。
controller:控制器,负责接收页面请求,转发和处理。
在resource包下新建Directory:“mapper”(用于存放xxxMapper.xml文件)和“spring”(用于存放spring-xxx.xml配置文件),新建文件:“jdbc.properties”(mysql数据库配置文件),”log4j.properties”(日志输出配置文件),”mybatis-config.xml”(mybatis框架配置文件)。
最终完整项目目录如下
3.自定义Paper类
在这之前要对项目的pom.xml文件进行配置,在此文件中配置项目所需要的jar包
4.利用tomcat进行项目部署