20201117_肖昂
学习总结:
今天学习内容jdbc数据的封装
- 链接数据库
- 增删改的方法
- 查询方法
- 给占位符赋值
- 关闭资源另外再创建一个class包来一起运行来实现与数据库连接
以下是部分程序语句package com.itlaobing.jdbc;
DBUtils:
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);
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) {
psts.close();
}
if(rs !=null || rs.isClosed()==false) {
psts.close();
}
if(rs !=null || rs.isClosed()==false) {
psts.close();
}
}
}
Test增删改:package com.itlaobing.jdbc;
public class Test {
public static void main(String[] args) {
DBUtils utils=new DBUtils();
String sql ="DELETE FROM cpidatamanage WHERE cpiId=?";
Object []values = {8};
try {
int i = utils.executeUpdate(sql, values);
if(i>0) {
System.out.print("删除成功");
}else {
System.out.print("删除失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Test查询:package com.itlaobing.jdbc;
import java.sql.ResultSet;
public class cx {
public static void main(String[] args) {
DBUtils utils=new DBUtils();
String sql ="SELECT*FROM cpidatamanage ";
Object []values = {};
try {
ResultSet rs = utils.executeQuery(sql, values);
while(rs.next()) {
System.out.print(rs.getObject("dataType"));
System.out.println(rs.getObject("price")+"\n");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
学习心得:
今天是第二天的学习,学习了封装的一系列操作,就昨天相比较来说,差不多多了一个赋值的操作,改变的是需要用多个public void语句来封装各部分操作,它的实用性比起昨天的分部分操作来的更高,删除了那些重复的命令。整个操作下来会感觉更加工整、更有条理,但它的操作会更加的细腻。随着更深层次的接触和老师的讲解,会对它产生更多的兴趣,慢慢的会将其与实际生活相联系,会慢慢想明白以前碰到又不知其缘由的现象,总之,期待接下来的学习。
点赞
评论