📄 connectdb.java
字号:
package adv.jdbc;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectDB {
// 建立与数据库的连接
public Connection connDB() {
Connection con = null;
try {
// 生成一个驱动类的对象这是生成对象的另种方式
// 也可以用new 的方式来生成
// Class.forName("com.mysql.jdbc.Driver");
// 连接字符串!每一种DB的连接字符串是不一样的!
con = DriverManager.getConnection(
"jdbc:mysql://172.16.0.5:3306/qai2", "root", "root");
}
catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return con;
}
// 执行查询的方法 该方法需要一个查询的语句
public ResultSet selectDB(String sql) {
// 调用上面方法生成的连接
Connection con = this.connDB();
// 生成一个语句的对象
Statement st = null;
// 生成一个结果集的对象,该对象用来存储数据库中的记录
ResultSet rs = null;
try {
// 建立真正的语句对象
st = con.createStatement();
// 执行查询语句,得到结果集!
rs = st.executeQuery(sql);
}
catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return rs;
}
// 用于显示结果
public void showResultSet(ResultSet rs) {
if (rs != null) {
try {
// 生成表字段,也就是表头
ResultSetMetaData rsm = rs.getMetaData();
// 表头记录从1开始,最大值到getColumnCount()方法的值,注意一
// 定要等于,要不会少一列
for (int i = 1; i <= rsm.getColumnCount(); i++) {
System.out.print(rsm.getColumnName(i) + "\t\t");
}
System.out.println();
// 显示表中的记录!
while (rs.next()) {
for (int i = 1; i <= rsm.getColumnCount(); i++) {
System.out.print(rs.getString(i) + "\t");
}
System.out.println();
}
}
catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
public void closeDB(Connection con,Statement st,ResultSet rs){
try {
if(rs!=null){
rs.close();
}
if(st!=null){
st.close();
}
if(con!=null){
con.close();
}
}catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
} /**
* @param args
*/
//对记录进行增删改
public void modifyDB(String sql){
//连接数据库
Connection con=this.connDB();
if(con!=null){
try {
Statement st=con.createStatement();
int i=st.executeUpdate(sql);
st.close();
}
catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
public static void main(String[] args) {
// 输入SQL语言用于查询!
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String sql = null;
System.out.println("请输入查询语句");
try {
sql = br.readLine();
}
catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
// 生成对象,调用查询方法,查询方法中调用了连接的方法!
ConnectDB cdb = new ConnectDB();
ResultSet rs = cdb.selectDB(sql);
// 调用显示结果的方法!
cdb.showResultSet(rs);
try {
rs.close();
}
catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
// String name="李四";
// String sex="女";
// int age=23;
// String sql1="insert into student value (\""+name+"\","+"\""+sex+"\","+age+")";
// //System.out.println(sql1);
// cdb.modifyDB(sql1);
String delete="delete from student where name="+"\"张三\"";
System.out.println(delete);
cdb.modifyDB(delete);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -