服务器和java程序的桥梁--jdbc/hibernate
现实的应用程序都是用户通过可视化界面发出指令从而修改数据库。本篇文章以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
服务器和java程序的桥梁--jdbc/hibernate的更多相关文章
- 在java程序中使用JDBC连接mysql数据库
在java程序中我们时常会用到数据库中的数据或操作数据库中的数据,如果java程序没有和我们得数据库连接,就不能实现在java程序中直接操作数据库.使用jdbc就能将java程序和数据库连起来,此时我 ...
- 编写Java程序,使用JDBC连接SQL Server数据库
返回本章节 返回作业目录 需求说明: 使用JDBC连接SQL Server数据库 SQL Server数据库位于192.168.2.101. 所需连接的数据库为eshop_db,用户名为test,密码 ...
- java程序重要节点
1.前台页面 2.前台页面到controller层跳转 和controller层的承上启下(jsp页面和java程序的桥梁) 3.serviceIpmle 程序处理的逻辑层 3.mybatis操作数据 ...
- Java面试题 OOAD & UML+XML+SQL+JDBC & Hibernate
二.OOA/D 与UML 部分:(共6 题:基础2 道,中等难度4 道) 96.UML 是什么?常用的几种图?[基础] 答:UML 是标准建模语言:常用图包括:用例图,静态图(包括类图.对象图和包图) ...
- 01_Weblogic课程之概念篇:代理服务器,web服务器,应用程序服务器,JNDI概念,JTA概念,Java消息服务,Java验证和授权(JAAS),Java管理扩展,Web客户机,客户机应用程序
1 什么是服务器 Weblogic中服务器分为两种,一种是受管服务器,另外一种是管理服务器. Weblogic课程(Weblogic是Oracle公司的,最开始的是BEA公司的) 一 系统管理 ...
- JDBC:Java连接数据库的桥梁
JDBC(Java DataBase Connection),java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成 ...
- 在云端服务器centos7安装jvm并且运行java程序
(1)在云端服务器 下载jdk http://www.linuxidc.com/Linux/2016-09/134941.htm(大致看这个文章后可以下载一个jdk的压缩包,然后将压缩包解压) 然后, ...
- JDBC让java程序连上数据库(mysql数据库)
一.小论异常: 其实JDK已经提供了一组API让java程序连上数据库,并执行SQL语句,其实说起来也蛮简单的,但是绝对是一个细致活,因为稍不留神,异常就铺天盖地的来了,下面说说这些异常吧(声明一下: ...
- 【JDBC】Java程序的数据库初体验
JDBC是什么 JDBC是一种能够用来执行SQL语句的Java API[接口]. 它是Java提供的一种规范,让各大数据库厂商遵循此规范完成自己的数据库连接驱动[实现接口]. JDBC的入门程序(这里 ...
随机推荐
- spring in action 学习笔记十三:SpEL语言(Spring Expression Language)
SpEl语言的目的之一是防止注入外部属性的代码硬代码化.如@Value("#{student.name}")这个注解的意思是把Student类的name的属性值注入进去.其中stu ...
- 无法定位程序输入点GetTickCount64 在动态链接库kernel32.dll上
winxp系统,在使用boost中的thread中的sleep的时候出现“无法定位程序输入点GetTickCount64 在动态链接库kernel32.dll上”的错误, 1.在引用boost库之前( ...
- Linux命令之type,whatis,whereis,which,locate,find
第一个:type--查询一个命令的类型 -查询一个命令为内部或者外部命令的命令: -linux的众多命令中,有内部命令和外部命令,这时可以用type命令来查询一个命令到底是属于内部命令还是属于外部命令 ...
- HDU5974 A Simple Math Problem---数论--转化解方程
感谢:http://blog.csdn.net/mirror58229/article/details/63685884 题意:x+y=a lcm(x,y)=b 求x,y 12WCases + b ...
- codeforces gym/100814 humming distance (二进制位数比较)
Gym - 100814I I. Salem time limit per test 1 second memory limit per test 1024 megabytes input stand ...
- Topcoder SRM 606 div1题解
打卡! Easy(250pts): 题目大意:一个人心中想了一个数,另一个人进行了n次猜测,每一次第一个人都会告诉他实际的数和猜测的数的差的绝对值是多少,现在告诉你所有的猜测和所有的差,要求你判断心中 ...
- 废弃sqlite代码,备查
using System.Linq; using System.Text; using System.Threading.Tasks; using System.Reflection; using T ...
- 【leetcode】500. Keyboard Row
问题描述: Given a List of words, return the words that can be typed using letters of alphabet on only on ...
- inotify+rsync实现实时同步并邮件通知
服务器之间文件实时同步,监控文件的变化,发送邮件通知,并实时同步文件. 由于人工同步多台服务器的文件比较吃力,可以借助这样一套软件,自动化的实现这样的工作. 并且可以事实监控变化发送邮件给系统管理人员 ...
- poj 3026(BFS+最小生成树)
Borg Maze Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12032 Accepted: 3932 Descri ...