现实的应用程序都是用户通过可视化界面发出指令从而修改数据库。本篇文章以Oracle为例,模拟怎么通过java代码实现数据库的增删改查。
新建一个Java项目,要建好桥梁,首先要拷入驱动Jar包放在项目名根目录,右键Jar包,选择Build Path》build to path。但是要想Jar包随项目走的话,需要新建lib目录,将jar包放入lib目录下。以下代码意思流程我都会在工程中解释。
JDBC连接数据库:
public static void main(String[] args) {
//在这里我不一一举例写方法执行增删改查了
//数据库连接
Connection conn = null;
Statement st =null;
ResultSet rs = null;
try {
//加载驱动引擎
Class.forName("oracle.jdbc.driver.OracleDriver");//驱动jar包名称
//建立与数据库的链接
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "system", "svse");
//建立执行sql语句平台
st = conn.createStatement();
//业务逻辑代码(数据库代码)
//st.execute("Insert Into tableName values(one,'two','three')");//增加
//st.execute("Delete From tableName Where id = ?");//删 除了查询返回结果集之外,其他的都是一样的
rs=st.executeQuery("Select * From tableName");
while(rs.next()){
System.out.println("rs.,,,,,,,,,");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//关闭资源
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(st!=null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Hinernate连接数据库
首先要导入Hibernate框架。
1.添加数据源
windows > show view > other > myEclipse Database 在新出来的窗口点击New
之后点击Test通过之后就一直点击next就行了。
2.加载框架
(myeclipse2014)右键工程名称》myeclipse》Projects facts》insert Hibernate
选择数据源后自动生成
这个和我们的jdbc代码是不是很像,它就是连接配置文件,
在hibernate.cfg.xml里
<session-factory>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">jacxuan</property>
<property name="connection.password">965752</property>
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="myeclipse.connection.profile">dept</property>
</session-factory>
之后要实现增删改查,还需要将表生成映射关系
找到你用户名下的table 》 hibernate reverse engin
最下面两个勾如果你的表存在外键表的话就会自动生成,如果你只需要单表测试,建议不要勾选。
业务逻辑代码
//加载配置文件
//如果你的配置文件路径或者文件名改变,则需再配置过程中加入文件名和路径
//Configuration cfg = new Configuration().configure("src/hibernateTest.cfg.xml");
Configuration cfg = new Configuration().configure();
//创建session工厂
SessionFactory sf = cfg.buildSessionFactory();
//打开会话
Session session = sf.openSession();
//开始事务
Transaction tran = session.beginTransaction();
//业务逻辑代码(数据库操作)
//增
// Dept dept = new Dept();
// dept.setDeptname("anyName");
// dept.setDeptpwd("anyPWD");
// session.save(dept);
//删
// Dept dept = (Dept) session.get(Dept.class, 1);
// session.delete(dept);
//改
Dept dept = (Dept) session.get(Dept.class, 1);
dept.setDeptname("anyName");
dept.setDeptpwd("anyPWD");
//查
//注意表名一定要大写!!!
Query query = session.createQuery("From Dept");
List<Dept> list = query.list();
for (Dept dept2 : list) {
System.out.println(dept2.getDeptname()+"\t"+dept2.getDeptpwd());
}
//提交事务
tran.commit();
//关闭回话
session.close();
//关闭session工程
sf.close();
OracleJar包下载地址:http://download.csdn.net/detail/jacxuan/9713188
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端