4-4 自由编程 作业
来源:4-4 自由编程
csm032
2020-04-23 22:28:30
————————JDBCUtils———————— package com.imooc.jdbc.utils; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import org.junit.Test; public class JDBCUtils { private static final String driverClass; private static final String url; private static final String username; private static final String password; //引入配置信息 static { Properties pros=new Properties(); InputStream is=JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"); try { pros.load(is); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } driverClass=pros.getProperty("driverClass"); url=pros.getProperty("url"); username=pros.getProperty("username"); password=pros.getProperty("password"); } //加载驱动 public static void loadDriver() throws ClassNotFoundException { Class.forName(driverClass); } //建立连接 public static Connection getConnection() throws Exception { loadDriver(); Connection conn=DriverManager.getConnection(url, username, password); return conn; } //解除资源占用 public static void release(ResultSet rs,Statement stmt,Connection conn) { if(rs!=null) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } rs=null; } if(stmt!=null) { try { stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } stmt=null; } if(conn!=null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn=null; } } //查询数据表信息 public static String searchInfo(ResultSet rs) throws SQLException { String str=""; while(rs.next()) { int id=rs.getInt("id"); String name=rs.getString("name"); float price=rs.getFloat("price"); String desp=rs.getString("desp"); str=str+id+" "+name+" "+price+" "+desp+'\n'; } return str; } }
————————JDBCDemo———————— package com.imooc.jdbc.demo; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import org.junit.jupiter.api.Test; import com.imooc.jdbc.utils.JDBCUtils; public class JDBCDemo { @Test public void demo1() { Connection conn=null; Statement stmt=null; ResultSet rs=null; String info=""; try { JDBCUtils.loadDriver(); conn=JDBCUtils.getConnection(); stmt=conn.createStatement(); String sql="insert goods(name,price,desp) values('手机',2000.0,'黑色,存储容量32G'), ('冰箱',1500.0,'银色,对开门'), ('洗衣机',3000.0,'滚筒'), ('空调',4000,'变频空调')"; int i=stmt.executeUpdate(sql); if(i>0) { System.out.println("1.表格中的四条数据添加数据库成功!\n"); System.out.println("2.显示所有数据如下:"); sql="select * from goods"; rs=stmt.executeQuery(sql); info=JDBCUtils.searchInfo(rs); System.out.println(info); System.out.println("3.name值为冰箱的数据如下:"); sql="select * from goods where name='冰箱'"; rs=stmt.executeQuery(sql); info=JDBCUtils.searchInfo(rs); System.out.println(info); }else { System.out.println("添加数据失败"); } sql="update goods set price=5000 where name='手机'"; i=stmt.executeUpdate(sql); if(i>0) { System.out.println("4.将name值为手机的数据的price值改为5000"); System.out.println("显示所有数据如下:"); sql="select * from goods"; rs=stmt.executeQuery(sql); info=JDBCUtils.searchInfo(rs); System.out.println(info); }else { System.out.println("修改价格失败"); } sql=" delete from goods where name='洗衣机'"; i=stmt.executeUpdate(sql); if(i>0) { System.out.println("5.删除name值为洗衣机的数据"); System.out.println("显示所有数据如下:"); sql="select * from goods"; rs=stmt.executeQuery(sql); info=JDBCUtils.searchInfo(rs); System.out.println(info); }else { System.out.println("删除数据失败"); } System.out.println("6.按价格升序排序显示所有数据:"); sql="select * from goods order by price asc"; rs=stmt.executeQuery(sql); info=JDBCUtils.searchInfo(rs); System.out.println(info); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { JDBCUtils.release(rs, stmt, conn); } } }
————————jdbc.properties————————
driverClass=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbctest1?serverTimezone=Hongkong
username=root
password=123456
1回答
同学你好,同学写的不错哦,
老师有个小建议,JDBCUtils作为一个工具类,不建议放业务代码在里边,使其更加的纯粹
建议把searchInfo()中的代码从JDBCUtils中移除出去,使其只负责获取,关闭连接等会更好。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题