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中移除出去,使其只负责获取,关闭连接等会更好。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题