JavaWeb
项目结构
类和方法的区别
类由class关键字去声明
//类 由class去声明 类的名字叫TestDao
public class TestDao {
}
方法 方法的名字在小括号之前
//该方法的名字叫main
public static void main(String[] args){
}
//定义方法 普通方法 不具备运行代码得功能 void表示不返回任何东西
public void hello(){
}
区分方法和类 只需要去看有没有小括号 有小括号就是方法
一个类中,方法名是唯一的
try...catch 语法
try{
//.....
}catch(){
}catch(){
}
查询
通过代码将数据库中一个表的所有数据读取出来
注意:当我们使用select语句时,就不会再使用executUpdate方法了
采用的是executeQuery方法,它会返回一个ResultSet对象,该对象里有我们读取出来的数据
我们只需要将他拿出来
resultSet.getXXX //这里的xxx表示数据库字段的类型 是什么类型就写什么
以getInt方法为例,它有两种用法,一种是传递字段的索引 一种是传递字段的名字
传递字段的索引 简单理解:传递当前想获取的字段是表里是第几列
传递字段的名字: 参数一定要和数据库里的字段的名字一致
public static void main(String[] args) {
//获取链接
try {
Connection connection = DriverManager.getConnection("jdbc:mysql:///test", "root", "admin");
Statement statement = connection.createStatement();
// ResultSet 结果集
ResultSet resultSet = statement.executeQuery("select * from product");
//可能返回的是多条数据 所以在这里需要循环
while (resultSet.next()){
int id = resultSet.getInt("id");
String productName = resultSet.getString("productName");
System.out.println(id+"========"+productName);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
查询表里的某条数据
变化的是 sql
public static void main(String[] args) {
try{
Connection connection = DriverManager.getConnection("jdbc:mysql:///test", "root", "admin");
Statement statement = connection.createStatement();
// ResultSet 结果集
ResultSet resultSet = statement.executeQuery("select * from users where id=1");
//可能返回的是多条数据 所以在这里需要循环
while (resultSet.next()){
int id = resultSet.getInt("id");
String username = resultSet.getString("username");
String password = resultSet.getString("password");
String name = resultSet.getString("name");
String phone = resultSet.getString("phone");
String email = resultSet.getString("email");
int role = resultSet.getInt("role");
System.out.println(id+"========"+username+"==="+password+"==="+name+"==="+phone+"==="+email+"==="+role);
}
} catch (
SQLException throwables) {
throwables.printStackTrace();
}
}
接口和类的区别
接口是通过interface去声明的
类是通过class去声明的
接口只定义方法 接口中的方法的具体内容由实现类去实现
类既定义方法还要实现方法的具体内容
DAO设计
设计思想:主要是将我们对数据库的操作独立出来 在改动时不影响其他相邻的逻辑代码
结构如下:
插入数据
通过dao思想 将student对象的值插入到数据库中
1.先在domamin包中定义实体类
public class Student {
//属性 见名知义
private int id;
private String username;
private String password;
private String name;
private String phone;
private String email;
//getter
//setter
}
2.编写Dao接口
//接口
public interface StudentDao{
//增
void addStudent(Student student);
//删
void deleteStudent(int id);
//改
void updateStudent(Student student);
//查询表里所有的数据
List<Student> getAll();
//根据id查询表里的某条数据
Student getOne(int id);
}
3.编写Dao接口的实现类
public class StudentDAOImpl implements StudentDao {
//往数据库里添加一条数据
@Override
public void addStudent(Student student) {
//实现方法里面的内容
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql:///test", "root", "admin");
// 创建语句对象
Statement statement = connection.createStatement();
//发送并执行sql
// i代表的是受影响行数
int i = statement.executeUpdate("insert into users (username,password) values('"+student.getUsername()+"',"+student.getPassword()+")");
//释放资源
statement.close();
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
//从数据库表中删除一条数据
@Override
public void deleteStudent(int id) {
}
@Override
public void updateStudent(Student student) {
}
@Override
public List<Student> getAll() {
return null;
}
@Override
public Student getOne(int id) {
return null;
}
}
4.测试写的方法到低有没有问题
在测试方法当中调用刚才我们写的方法