异常和错误
1.运行时异常 可以不处理 jvm虚拟机 处理
2.编译异常 一定要处理
处理异常的2种方式:
1.try catch 自己处理
2.throws 给掉用者处理
自定义异常
实体类:与数据库 对象
1.构造方法
2.属性
3.get set
4.toString
分层
1.model 实体类
2.dao 持久层 对数据库操作 增删改查
在昨天的基础上新建一个MusicDao文件,代码如下:
package com.zhongruan.dao;
import com.zhongruan.Util.DBUtil;
import com.zhongruan.model.Music;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class MusicDao {
public List<Music> findMusic(){
ResultSet resultSet=null;
PreparedStatement statement=null;
Connection connection=null;
List<Music> musics=new ArrayList<>();
try {
connection= DBUtil.getConnection();
String sql="select * from music";
//4.得到statement
statement=connection.prepareStatement(sql);
//5.执行sql
resultSet=statement.executeQuery();
//6.处理结果集
while (resultSet.next()){
Music music=new Music();
music.setId(resultSet.getInt(1));
music.setName(resultSet.getString(2));
music.setAuthor(resultSet.getString(3));
musics.add(music);
}
//7.关闭资源
}catch (Exception e){
e.printStackTrace();
}finally {
DBUtil.closeAll(resultSet,statement,connection);
}
return musics;
}
public void delete(int id) throws SQLException,ClassNotFoundException {
Connection connection = DBUtil.getConnection();
String sql="delete from music where id=?";
PreparedStatement statement =connection.prepareStatement(sql);
statement.setInt(1,id);
statement.executeUpdate();
DBUtil.closeAll(null,statement,connection);
}
public void update(int id) throws SQLException,ClassNotFoundException {
Connection connection = DBUtil.getConnection();
String sql="update music set name ='灾',author='yyqx' where id=?";
PreparedStatement statement =connection.prepareStatement(sql);
statement.setInt(1,id);
statement.executeUpdate();
DBUtil.closeAll(null,statement,connection);
}
public void insert(String name,String author) throws SQLException,ClassNotFoundException {
Connection connection = DBUtil.getConnection();
String sql="insert into music(NAME,author) VALUES (?,?) ";
PreparedStatement statement =connection.prepareStatement(sql);
statement.setString(1,name);
statement.setString(2,author);
statement.executeUpdate();
}
}
再将Test的代码进行更改,结果如下:
package com.zhongruan;
import com.zhongruan.Util.DBUtil;
import com.zhongruan.dao.MusicDao;
import com.zhongruan.model.Music;
import java.awt.*;
import java.awt.image.DirectColorModel;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
MusicDao musicDao=new MusicDao();
System.out.println("请输入歌名");
Scanner input=new Scanner(System.in);
String name=input.next();
System.out.println("请输入作者");
String author=input.next();
musicDao.insert(name,author);
List<Music> musics=musicDao.findMusic();
System.out.println(musics);
System.out.println("输入你要删除的音乐的id:");
try {
musicDao.update(3);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
}