20201117_徐晨生
知识总结:
对jdbc的封装。
1.链接数据库
2.增删改方法
3.查询方法
4.给占位符赋值
5.关闭资源
再建立一个class进行数据的测试
具体命令如下:
1.封装
package com.itlaobing.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DBUtils {
Connection conn=null;
PreparedStatement psts=null;
ResultSet rs=null;
//链接数据库
public void getConnection() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/cpi", "root", "");
}
//增删改方法
public int executeUpdate(String sql,Object...values) throws Exception {
getConnection();
psts = conn.prepareStatement(sql);
setObject(values);
int i=psts.executeUpdate();
return i;
}
//查询方法
public ResultSet executeQuery(String sql,Object...values) throws Exception {
getConnection();
psts = conn.prepareStatement(sql);
setObject(values);
rs = psts.executeQuery();
return rs;
}
//给占位符赋值
public void setObject(Object...values) throws Exception {
if(values != null && values.length >0) {
for (int i = 0;i<values.length;i++) {
psts.setObject(i+1, values[i]);
}
}
}
//关闭资源
public void guan() throws Exception {
if(rs != null || rs.isClosed() == false) {
rs.close();
}
if(psts != null || psts.isClosed() == false) {
psts.close();
}
if(conn != null || conn.isClosed() == false) {
conn.close();
}
}
}
2.测试
增(删、改)
package com.itlaobing.jdbc;
import java.sql.ResultSet;
public class Text {
public static void main(String[] args) {
DBUtils utils=new DBUtils();
try {
String sql="INSERT INTO cpidatamanage(dataType,`area`,`date`,goodsName,price,unit,remark)VALUES(?,?,?,?,?,?,?)";
Object []values = {"水果类","陕西省","2020-10","香蕉","4","500g","无添加剂"};
int i=utils.executeUpdate(sql, values);
if(i>0) {
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
修改
package com.itlaobing.jdbc;
import java.sql.ResultSet;
public class Text {
public static void main(String[] args) {
DBUtils utils=new DBUtils();
try {
String sql="SELECT * FROM cpidatamanage WHERE date=?";
Object[]values = {"2020-11"};
ResultSet rs=utils.executeQuery(sql, values);
while (rs.next()) {
System.out.print(rs.getObject("goodsName")+"\t");
System.out.println(rs.getObject("price"));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
学习心得:
今天是学习的第二天,我们学习了对昨天的增删改查的封装,封装起来多了一个给占位符赋值。今天操作起来感觉也不是那么困难了,封装后比之前的少了很多重复的命令,命令的利用率高了很多,再测试执行后,就完成了对表格的改动。听了老师的讲解,知道了这是连接服务端和数据库最简单的封装,也了解到了很多软件都是通过这种运行方式来运行的,期待明天的学习内容。
近期评论