1.使用自己的话表述MVC。
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
View(视图) - 视图代表模型包含的数据的可视化。
Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开
优点:耦合性低、重用性高、生命周期成本低、部署快、可维护性高、有利软件工程化管理
缺点:没有明确的定义、不适合小型,中等规模的应用程序、增加系统结构和实现的复杂性、视图与控制器间的过于紧密的连接、视图对模型数据的低效率访问、一般高级的界面工具或构造器不支持模式
2.掌握JDBC的基本操作。
对book表中的数据进行增删改查;
book表:id int,bookName varchar,price int,description varchar
Book类:id int,bookName String ,price int,description String
提示:创建数据库连接工具类DBUtil类。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
*<p>Title:DBUtil</p>
*<p>Description:数据库连接工具类</p>
* @author 赖文卓
* @date 2019年10月10日
*/
public class DBUtil {
//类加载只执行一次//静态代码块只执行一次
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
String sql="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8";
Connection conn;
try {
conn = DriverManager.getConnection(sql,"root","12570071");
return conn;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
public static void close(Connection conn){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(PreparedStatement ps){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(ResultSet rs){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.entity.Book;
import com.util.DBUtil;
/**
*
*<p>Title:Test</p>
*<p>Description:测试类</p>
* @author 赖文卓
* @date 2019年10月10日
*/
public class Test {
public static void main(String[] args) {
Book book=new Book();
book.setId(2);
book.setBookName("阿甘正传后传");
book.setPrice(110);
book.setDescription("非常好看");
// addbook(book);
// deleteBookById(2);
// updateBook(book);
findBookById(2);
}
/*
* 添加书本的方法
*/
public static void addbook(Book book){
Connection conn=DBUtil.getConnection();
PreparedStatement pstmt;
try{
pstmt=conn.prepareStatement("insert into book(id,bookName,price,description) values(?,?,?,?)");
pstmt.setInt(1, book.getId());
pstmt.setString(2, book.getBookName());
pstmt.setInt(3, book.getPrice());
pstmt.setString(4, book.getDescription());
int rs=pstmt.executeUpdate();
System.out.println(rs);
}catch (SQLException e) {
e.printStackTrace();
}
}
/*
* 删除书本的方法(根据id)
*/
public static void deleteBookById(int id){
Connection conn=DBUtil.getConnection();
PreparedStatement pstmt;
try{
pstmt=conn.prepareStatement("delete from book where id=?");
pstmt.setInt(1, id);
int rs=pstmt.executeUpdate();
System.out.println(rs);
}catch(SQLException e){
e.printStackTrace();
}
}
/*
* 修改书本的方法(根据id)
*/
public static void updateBook(Book book){
Connection conn=DBUtil.getConnection();
PreparedStatement pstmt;
try{
pstmt=conn.prepareStatement("update book set bookName=?,price=?,description=? where id=?");
pstmt.setString(1, book.getBookName());
pstmt.setInt(2, book.getPrice());
pstmt.setString(3, book.getDescription());
pstmt.setInt(4, book.getId());
int rs =pstmt.executeUpdate();
System.out.println(rs);
}catch(SQLException e){
e.printStackTrace();
}
}
/*
* 根据书本id查询书本的方法
*/
public static Book findBookById(Integer id){
Connection conn=DBUtil.getConnection();
PreparedStatement pstmt;
Book book=new Book();
try{
pstmt=conn.prepareStatement("select * from book where id=?");
pstmt.setInt(1, id);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
book.setId(rs.getInt(1));
book.setBookName(rs.getString(2));
book.setPrice(rs.getInt(3));
book.setDescription(rs.getString(4));
System.out.println(book);
}
}catch(SQLException e){
e.printStackTrace();
}
return book;
}
}
/**
*
*<p>Title:Book</p>
*<p>Description:实体类</p>
* @author 赖文卓
* @date 2019年10月10日
*/
public class Book {
private int id;
private String bookName;
private int price;
private String description;
public Book(int id,String bookName,int price,String description){
this.id=id;
this.bookName=bookName;
this.price=price;
this.description=description;
}
public Book(){
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
return "Book [id=" + id + ", bookName=" + bookName + ", price=" + price + ", description=" + description + "]";
}
}