一.音乐管理系统
1.新建一个包,名为“dao”,再在其中新建一个JAVA文件“MusicDao”,再将前一天写好的代码复制到“MusicDao”进行修改
修改后代码如下
public class MusicDao {
public List<Music> findMusics(){
ResultSet resultSet = null;
PreparedStatement statement = null;
Connection connection = null;
List<Music> musics=new ArrayList<>();
try {
connection = DBUtil.getConnection();
String sql = "select * from music";
statement = connection.prepareStatement(sql);
resultSet = statement.executeQuery();
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);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.closeAll(resultSet, statement, connection);
}
return musics;
}
public void delete(int id) throws SQLException {
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 zj(String name,String author) throws SQLException {
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();
DBUtil.closeAll(null,statement,connection);
}
public void xg(int id,String name) throws SQLException{
Connection connection = DBUtil.getConnection();
String sql = "update music set name=? where id=?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(2,id);
statement.setString(1,name);
statement.executeUpdate();
DBUtil.closeAll(null,statement,connection);
}
}
2.前一天的“Test”文件也有所修改。我将“Test”文件修改的更加完善了些,加入了增加,修改和删除功能。
在Idea软件中的条件改动,SQL软件中刷新运行后结果也会随之改变。
修改代码如下
public class Test {
public static void main(String[] args) throws SQLException {
MusicDao musicDao=new MusicDao();
List<Music> musics=musicDao.findMusics();
System.out.println(musics);
Scanner input=new Scanner(System.in);
// System.out.println("请输入你喜欢的歌名:");
// String name=input.next();
// System.out.println("请输入你喜欢的歌的歌手:");
// String author=input.next();
// System.out.println("请输入你想修改的歌的id:");
// int ids=input.nextInt();
// System.out.println("请输入你想修改歌的歌名:");
// String names=input.next();
System.out.println("请输入你想删除歌的id:");
int id=input.nextInt();
// musicDao.zj(name,author);
// musicDao.xg(ids,names);
musicDao.delete(id);
}
}
将增加的代码注释取消,再把删除和修改的代码注释,代码运行后输入歌名和即可
程序运行结果如下
下面是数据改变后在sql运行后的结果
接下来是修改数据,同上,将修改的代码注释取消,增加和删除添加注释
程序运行结果如下
运行成功后转到SQL,刷新运行后结果如下
接下来是删除数据,同上,删除代码注释取消,增加和修改添加注释
程序运行结果
运行成功后进入sql,可以看到id为4的一行数据已经被删除
DBUtil代码也有所修改
代码如下
public class DBUtil {
public static Connection getConnection() throws SQLException{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/zjgm?characterEncoding=utf-8&user=root&password=123456");
System.out.println("操作成功!");
return connection;
}
public static void closeAll(ResultSet resultSet,Statement statement, Connection connection){
if (resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
二.数据和集合的区别
数组和集合的区别:
1.数组大小是固定的 集合不是固定
2.数组只能放一种类型的数据 集合可以放多种类型的数据
三.list和set的区别
list 和 set 的区别
1.list 有序可重复
2.set 无序不可以重复
list
arraylist 数组list 查询快 删除和添加慢
linkedlist 添加和删除快 查询慢
set
treeset 通过树状保存数据
四.异常和错误
1.运行时异常 可以不处理 jvm虚拟机 处理
2.编译异常 必须要处理
处理异常的2种方式:
1.try catch 自己处理
2.throws 给掉用者处理
自定义异常
实体类:与数据库 对象
1.构造方法
2.属性
3.get set
4.toString
五.分层
1.model 实体类
2.dao 持久层 对数据库操作 增删改查