jdbc的知识点:
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,
可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,
同时,JDBC也是个商标名。
一、JDBC的实现步骤:
1、加载驱动程序
Class.forName(DriverClass);
2、使用驱动管理类,获得数据库连接
Connection conn = DriverManager.getConnection(URL,USER,PASSWORD);
URL格式: jdbc:数据库类型://IP地址:端口号/数据库名
示例 URL= "jdbc:mysql://127.0.0.1:3306/student"
3、使用数据库连接创建声明
Statement stmt = conn.createStatement();
4、使用声明执行SQL语句
ResultSet rs = stmt.executeQuery("sql");
5、遍历集合,读取数据
boolean b = rs.next();
rs.getString();
二、采用MVC三层架构
View 视图层
Control 控制层
Model 模型层
DB 数据库
MVC:
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,
从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,
一旦M改变,V应该同步更新。
模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,
已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。
模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
- Model(模型)表示应用程序核心(比如数据库记录列表)。
- View(视图)显示数据(数据库记录)。
- Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果
java部分:
InsertDemo类:
package sql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class InsertDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.动态加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.打开数据库连接
String url = "jdbc:mysql://127.0.0.1:3306/student";//连接数据库的地址
String user = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url, user, password);
//3.创建声明
Statement stmt = conn.createStatement();
//4.通过声明执行SQL语句
String sql = "delete from stu where age>20";
boolean b = stmt.execute(sql);
System.out.println(!b);//添加成功返回false
}
}
SelectDemo类:
package sql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class SelectDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.动态加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.打开数据库连接
String url = "jdbc:mysql://127.0.0.1:3306/student";//连接数据库的地址
String user = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url, user, password);
//3.创建声明
Statement stmt = conn.createStatement();
//4.通过声明执行SQL语句
String sql = "select * from stu";
ResultSet rs = stmt.executeQuery(sql);
/**
* 查询
*/
List<Stu> list = new ArrayList<Stu>();
while(rs.next()){
String name = rs.getString("name");
int age = rs.getInt("age");
String sex = rs.getString("sex");
list.add(new Stu(name,age,sex));//把每次获得的对象存入集合
}
System.out.println(list);
}
}
Stu类:
package sql;
public class Stu {
private String name;
private int age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Stu(String name, int age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
public Stu() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Stu [name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
}
注意:在使用前当然要导入一个sql的jar包,方可使用。
以上的java代码编写后,再后来可以对sql进行操作了