java 如何连接数据库,如何完成数据库记录添加,删除,修改以及查询。

3Q了
2024-11-24 13:37:25
推荐回答(2个)
回答1:

其实,也就那几步而已:

别忘了,加载jar文件

  1. 加载驱动

  2. 获得Connection

  3. 获得PreparedStatement /PreparedStatement

  4. 执行sql语句

  5. 处理结果集ResultSet

  6. 关闭连接


mport java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import Entity.JIAJU;

public class JiaJu {
 public JIAJU selectExe(int shouhinId) {
  JIAJU jia = new JIAJU();
  try {
   Connection con = ConnectionManager.getConnection();
   String sql = "select * from jiaju where shouhinId=?";
   PreparedStatement ps = con.prepareStatement(sql);
   ps.setInt(1, shouhinId);
   ResultSet rs = ps.executeQuery();
   if (rs != null) {
    while (rs.next()) {
     jia.setShouhinId(rs.getInt("shouhinId"));
     jia.setShouhinName(rs.getString("shouhinName"));
     jia.setShouhinColor(rs.getString("shouhinColor"));
     jia.setShouhinPrice(rs.getInt("shouhinPrice"));
     jia.setShouhinPai(rs.getString("shouhinPai"));
     jia.setShouhinShi(rs.getString("shouhinShi"));
     // list.add(jia);
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return jia;
 }

 public void insertJia(JIAJU jia) {
  try {
   Connection con = ConnectionManager.getConnection();
   String sql = "insert into jiaju values(?,?,?,?,?)";
   PreparedStatement ps = con.prepareStatement(sql);
   ps.setString(1, jia.getShouhinName());
   ps.setString(2, jia.getShouhinColor());
   ps.setInt(3, jia.getShouhinPrice());
   ps.setString(4, jia.getShouhinPai());
   ps.setString(5, jia.getShouhinShi());
   ps.executeUpdate();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 public List selectJia() {
  List list = new ArrayList();
  
  try {
   Connection con = ConnectionManager.getConnection();
   String sql = "select * from jiaju ";
   PreparedStatement ps = con.prepareStatement(sql);
   ResultSet rs = ps.executeQuery();
   if (rs != null) {
    while (rs.next()) {
     JIAJU jia = new JIAJU();
     jia.setShouhinId(rs.getInt("shouhinId"));
     jia.setShouhinName(rs.getString("shouhinName"));
     jia.setShouhinColor(rs.getString("shouhinColor"));
     jia.setShouhinPrice(rs.getInt("shouhinPrice"));
     jia.setShouhinPai(rs.getString("shouhinPai"));
     jia.setShouhinShi(rs.getString("shouhinShi"));
        list.add(jia);
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return list;
 }
 public JIAJU selectbuy(int shouhinId) {
  JIAJU jia = new JIAJU();
  try {
   Connection con = ConnectionManager.getConnection();
   String sql = "select * from jiaju where shouhinId=?";
   PreparedStatement ps = con.prepareStatement(sql);
   ps.setInt(1, shouhinId);
   ResultSet rs = ps.executeQuery();
   if (rs != null) {
    while (rs.next()) {
     jia.setShouhinId(rs.getInt("shouhinId"));
     jia.setShouhinName(rs.getString("shouhinName"));
     jia.setShouhinColor(rs.getString("shouhinColor"));
     jia.setShouhinPrice(rs.getInt("shouhinPrice"));
     jia.setShouhinPai(rs.getString("shouhinPai"));
     jia.setShouhinShi(rs.getString("shouhinShi"));
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return jia;
 }
  public void updateLou(JIAJU jia){
   try{
    Connection con = ConnectionManager.getConnection();
   String sql = "update jiaju set shouhinPrice=? where  shouhinId=?";
   PreparedStatement ps = con.prepareStatement(sql);  
   ps.setInt(1,jia.getShouhinPrice());
   ps.setInt(2, jia.getShouhinId());
   ps.executeUpdate();
   }catch(Exception e){
    e.printStackTrace();
   }
  }
  public void deleteLou(JIAJU jia){
   try{
    Connection con = ConnectionManager.getConnection();
   String sql = "delete from jiaju where shouhinId=?";
   PreparedStatement ps = con.prepareStatement(sql);
   ps.setInt(1, jia.getShouhinId());
   ps.executeUpdate();
   }catch(Exception e){
    e.printStackTrace();
   }
  }

}

回答2:

连接数据库的步骤:
一、JDBC编程步骤
1.注册驱动 运行时加载驱动类
反射Class.forName("");
可以识别某类型的数据库xe
数据库实例Oracle_SID
Oracle 本地协议驱动
第四类驱动(thin驱动)
jdbc:mysql:/
jdbc:oracle:tin:IP:port:sid
oracle 安装目录 server jdbc下的jdbc14.jar
三种方法:
1、(推荐使用)Class.forName("oracle.jdbc.driver.OracleDriver");
2、DriverManager.registerDriver(new OracleDriver());
3、System.setProperty("jdbc.drivers","oracle.jdbc.driver.OracleDriver");

2.获取连接
.properties

URL:jdbc:oracle:thin:@127.0.0.1:1521:XE
user:数据库用户名
password:数据库密码
DriverManager.getConnection();
第一种方法:
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE","zhanxi","zhanxi");
第二种方法:
其中p至少包含user 和 password属性
通过读取外部配置文件实现配置和代码分离的效果
Properties p = new Properties();
p.load(new FileInputStream("src/jdbc.properties"));
String driver = p.getProperty("driver");
System.out.println(driver);
Class.forName(driver);
Connection conn = DriverManager.getConnection(p.getProperty("url"),p);

3.选择Statement

4.执行SQL语句

execute():可以执行任何SQL语句
返回值类型为boolean
返回值代表是否有结果集产生(只有查询语句才会有结果)
executeQuery():
返回值类型为ResultSet,如果是查询语句,结果集包含查到的所有内容
如果是其他语句,结果集里面什么东西也没有
executeUpdate():
返回值类型为int,代表次SQL语句影响的记录条数(行计数)
三种方法均可以执行任何SQL语句

5.如果有结果集,处理结果集
6.资源回收

至于关于数据库的添加,删除,修改和查询,只要会写SQL语句就没问题了
插入insert:

向s_dept中插入数据
insert into s_dept values(1,'zhangsan',2);

向student中插入数据
insert into student(id,name) values(1,'lisi');

修改update:

语法:
update tableName
set column=value
[where column=value]

将2号员工股的部门号改成41:
update s_emp
set dept_id=41
where id=2;

delete 删除:
delete table
[where expr]
不写where语句就是默认删除所有内容

查询:select
从student表中查询出所有的学号和年龄
select name,age from student;

也可以根据条件查询:
根据某个人的学号查询他相关的信息
select name,age from student where stno=123456;