我对MVC的理解
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写
- 模型(model):接收信息,进行数据库的存取
- 视图(view):用户看到的界面(如jsp、html等界面)
- 控制器(controller):接收用户需求,调用模型完成用户需求
JDBC的基本操作(实现数据的增删改查)
对Book表中的数据进行增删改查;
Book表:id int,bookName varchar,price int,description varchar
Book类:id int,bookName String ,price int,description String
DBUtil类:创建数据库连接
Book表:原有3条信息
Book类:
public class Book {
private int id;
private String bookName;
private int price;
private String description;
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;
}
public String toString(){
return "id:"+id+"bookname:"+bookName+"price:"+price+"description:"+description;
}
}
DBUtil类:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class DBUtil {
static Connection conn = null;
Statement stmt = null;
static String driverClassName="com.mysql.jdbc.Driver";
static String url="jdbc:mysql://localhost:3306/goods";
static String username="root";
static String password="123456";
public static Connection getConn(){
try {
Class.forName(driverClassName);
conn = DriverManager.getConnection(url,username,password);
} catch (Exception e) {
e.printStackTrace();
System.out.println("失败");
}
return conn;
}
}
BookTest类:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BookTest {
public static void main(String[] args) {
Book book = new Book();
book.setId(4);
book.setBookName("计算机英语");
book.setPrice(20);
book.setDescription("太难了");
addBook(book);//添加
deleteBookById(4);//删除id为4的信息
findBookById(1);//查找id为1的信息
Book book1 = new Book();
book1.setId(3);//修改id为3的信息
book1.setBookName("H5");
book1.setPrice(20);
book1.setDescription("从入门到学Java");
updateBook(book1);//修改
}
//添加
public static void addBook(Book book) {
Connection conn = DBUtil.getConn();
PreparedStatement pstmt;
try {
if (conn ==null) {
System.out.println("conn is null");
}
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.getConn();
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 Book findBookById(Integer id){
Connection conn = DBUtil.getConn();
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("id"));
book.setBookName(rs.getString("bookname"));
book.setPrice(rs.getInt("price"));
book.setDescription(rs.getString("description"));
System.out.println(book);
}
} catch (SQLException e) {
e.printStackTrace();
}
return book;
}
//根据id实现修改
public static void updateBook(Book book){
Connection conn = DBUtil.getConn();
PreparedStatement pstmt;
try {
pstmt = conn.prepareStatement("update Book set bookname=?,price=?,description=? where id=?");
pstmt.setInt(4, book.getId());
pstmt.setString(1, book.getBookName());
pstmt.setInt(2, book.getPrice());
pstmt.setString(3,book.getDescription());
int rs = pstmt.executeUpdate();
System.out.println(rs+"修改成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
下面是按功能分解代码
- 实现添加代码:
public static void main(String[] args) {
Book book = new Book();
book.setId(4);
book.setBookName("计算机英语");
book.setPrice(20);
book.setDescription("太难了");
addBook(book);
}
public static void addBook(Book book) {
Connection conn = DBUtil.getConn();
PreparedStatement pstmt;
try {
if (conn ==null) {
System.out.println("conn is null");
}
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来删除:
deleteBookById(4);//删除id为4的信息
public static void deleteBookById(int id){
Connection conn = DBUtil.getConn();
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查找
findBookById(1);//查找id为1的信息
public static Book findBookById(Integer id){
Connection conn = DBUtil.getConn();
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("id"));
book.setBookName(rs.getString("bookname"));
book.setPrice(rs.getInt("price"));
book.setDescription(rs.getString("description"));
System.out.println(book);
}
} catch (SQLException e) {
e.printStackTrace();
}
return book;
}
- 实现根据id修改信息
Book book1 = new Book();
book1.setId(3);//修改id为3的信息
book1.setBookName("H5");
book1.setPrice(20);
book1.setDescription("从入门到学Java");
updateBook(book1);//修改
public static void updateBook(Book book){
Connection conn = DBUtil.getConn();
PreparedStatement pstmt;
try {
pstmt = conn.prepareStatement("update Book set bookname=?,price=?,description=? where id=?");
pstmt.setInt(4, book.getId());
pstmt.setString(1, book.getBookName());
pstmt.setInt(2, book.getPrice());
pstmt.setString(3,book.getDescription());
int rs = pstmt.executeUpdate();
System.out.println(rs+"修改成功");
} catch (SQLException e) {
e.printStackTrace();
}
}