20201117_槐军
知识总结:
今天我们学习对函数进行封装,对函数进行封装可以避免我们因为输入不同的数据而改变原程序,使程序发生错误。
对函数封装分为五步:
1,连接数据库
2,增,删,改的方法
3,查的方法
4,给占位符赋值
5,关闭资源
下面是程序的具体实现:
(DBUtils)
package com.itlaobing.jdbc;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DBUtils{
java.sql.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/cpid","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);
ResultSet 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 close()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();
}
}
}
对数据库的删除调用DBUtils
package com.itlaobing.jdbc;
public class text {
public static void main(String[] args) {
DBUtils utils =new DBUtils();
try {
String sql = "DELETE FROM cpidatemanage WHERE cpiid = ?";
Object []values= {13};
int i=utils.executeUpdate(sql, values);
if (i>0) {
System.out.print("删除指定项成功");
}else {
System.out.print("删除指定项失败");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
查询数据库调用DBUtils
package com.itlaobing.jdbc;
import java.sql.ResultSet;
public class txete {
public static void main(String[] args) {
DBUtils utils =new DBUtils();
try {
String sql = "SELECT*FROM cpidatemanage ";
Object []values= {};
ResultSet rs = utils.executeQuery(sql, values);
while(rs.next()) {
System.out.println(rs.getObject("datetype"));
}
}catch(Exception e) {
e.printStackTrace();
};
}
}
学习心得:
通过今天的学习,昨天的情况有了比较大的改变。虽然还是有点跟不上老师的进度,
但是通过我自己慢慢的做,大部分情况已经得到了改变。虽然自己写出来的代码仍然会发生错误,但通过自己的细心已经得到了正确的答案,昨天把第一次接触到错了都不会发现是哪块出现了问题,今天已经可以发现那块出了问题并解决这个问题。
近期评论