七,JOBC数据库编程

七,JOBC数据库编程
一,java数据库编程步骤
1,将数据库驱动包考入lib目录;
2,加载驱动--整个操作数据库程序运行期间只需要加载一次
Class.forName("com.mysql.driver");加载driver驱动
整个操作数据库程序,只需要加载一次
3,开启连接
1,开启链接调用Connection接口;(登录数据库)
Connection con=null;
con=DriverManager.getConnection("地址;端口/库;编码格式, 账号, 密码);
需要使用try捕获错误
编码格式;
开启编码;useUnicode=true
用&拼接参数;&characterEncoding=utf-8
例;
Connection con=null;
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test
?useUnicode=true&characterEncoding=utf-8", "root", "root");
4,操作管道(面试重点)
1,增删改;
1,声明sql语句
String sql="update t_atmuser set f_atmUserPassWord=?,f_atmUserMoney=
? where pk_atmid=? ;";
2,?占位符,代表,用PreparedStatement为?字符串拼接方式有风险(sql注入),
所以使用位置赋值(下标是从一开始第一个就代表第一个问号)
PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1, user.getPassword());
ps.setFloat(2, user.getAccount());
ps.setInt(3, user.getAtmid());
3,写入数据库,返回一个int类型的值,响应的行数
ps.executeUpdate();
4,字符串拼接使用(有风险sql注入)
Statement stat = con.createStatement();
int n = stat.executeUpdate(sql);
2,查
1,申明了语句(有ID用ID查,速度更快)
String sql="select
pk_atmid,f_atmUserName,f_atmUserPassWord,f_atmUserMoney
from t_atmuser where f_atmUserName=? and f_atmUserPassWord=?";
2,?占位符,代表,用PreparedStatement为位置赋值
(下标是从一开始第一个就代表第一个问号)
PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1, userName);
ps.setString(2, userPassWord);
3,返回一个ResultSet类型数据
ResultSet rs=ps.executeQuery();
4,用while来读取所有每行数据,rs.next()有几行数据就返回几个true
while(rs.next()){ //rs.next();判断有没有下一行
rs.get数据类型(那个字段)
user.setAccount(rs.getFloat("f_atmUserMoney"));
user.setAtmid(rs.getInt("pk_atmid"));
user.setCardNum(rs.getString("f_atmUserName"));
user.setPassword(rs.getString("f_atmUserPassWord"));
}
5,关闭管道
if(con!=unll){
con.close();
}
二,事务
1,一个动作,同时涉及到多张表的增删改查操作,且这些操作化为一体;
2,必须保证是同一个Connection
3,设置自动提交为假(开启事务);
con.setAutoCommit(false);//写在Connection下
4,最后用con.commit();手动提交;之前都没有发生异常才可以;
5,发生异常就执行con.rollback();回滚;需要try(捕获异常)
6,事务的4大特性
1,原子性
多个动作是一个整体,不可被切割,必须同时成功或同时失败;
2,一致性
多个动作执行结果必须按照顺序串执行
3,隔离性
事务执行不受其他动作的干扰;事务执行的中间结果与其他动作是透明的;
4,持久性
对于自己已提交的事务必须保证对数据库的物理表执行操作;
三,映射;
类与类之间的关联;表与表之间的关联
四,注意
1,date dt=new date();//java的date
date de=new java.sql.date(tb.gettime());sql的date

七,JOBC数据库编程的更多相关文章

  1. Python学习系列(七)( 数据库编程)

    Python学习系列(七)( 数据库编程)        Python学习系列(六)(模块) 一,MySQL-Python插件       Python里操作MySQL数据库,需要Python下安装访 ...

  2. Java数据库编程、XML解析技术

    数据库编程 JDBC概述 是Java Database Connecive,即数据库连接技术的简称,它提供了连接各种常用数据库的能力. 是一种用于执行SQL语句的Java API,可以为多种关系数据库 ...

  3. 提高你的数据库编程效率:Microsoft CLR Via Sql Server

    你还在为数据库编程而抓狂吗?那些恶心的脚本拼接,低效的脚本调试的日子将会与我们越来越远啦.现在我们能用支持.NET的语言来开发数据库中的对象,如:存储过程,函数,触发器,集合函数已及复杂的类型.看到这 ...

  4. VB.NET数据库编程基础教程

    关键词:作者罗姗   众所周知,VB.NET自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的.其中,ADO. ...

  5. 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库

    运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...

  6. java面向对象下:Java数据库编程

    19.Java数据库编程: JDBC概述:        JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...

  7. .Net程序员学用Oracle系列(3):数据库编程规范

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.书写规范 1.1.大小写风格 1.2.缩进风格 1.3.换行 1.4.其它 2.命名规范 2.1.数据库对象命名 2.2.变 ...

  8. java 数据库编程 学习笔记 不断更新

    最近开始学习java,感觉java的数据库编程需要发个随笔记录一下,话不多说 切入正题. 一.数据库访问技术的简介 应用程序  →  执行SQL语句 →数据库 → 检索数据结果 → 应用程序   ( ...

  9. Windows数据库编程接口简介

    数据库是计算机中一种专门管理数据资源的系统,目前几乎所有软件都需要与数据库打交道(包括操作系统,比如Windows上的注册表其实也是一种数据库),有些软件更是以数据库为核心因此掌握数据库系统的使用方法 ...

随机推荐

  1. unbuntu下安装qq

    由于Wine QQ一直没更新版本导致目前版本报版本过低无法使用,暂时先上UK官网的国际版Wine QQ,虽然功能没那么新,但稳定能用: 下载: 下载地址:http://www.ubuntukylin. ...

  2. docker 学习(七) docker 容器挂载

    1:docker的默认存放位置: $ sudo su # cd /var/lib/docker # ls -F containers/ graph/ repositories volumes/     ...

  3. WPF RichTextBox 插入回车

    richtextbox插入回车,开始是这样写的,在win7下运行时没有问题: MyMessageBox.CaretPosition.InsertLineBreak(); MyMessageBox.Ca ...

  4. 《精通Spring4.X企业应用开发实战》读后感第五章(方法注入)

  5. 转载TCP-IP协议解释

    本文转载自 http://www.ruanyifeng.com/blog/2009/03/tcp-ip_model.html TCP/IP模型是互联网的基础, 理解 TCP/IP对理解互联网至关重要 ...

  6. SetCapture到底是什么?

    函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获.一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内.同一时刻只能有一个窗口捕获鼠标.如果鼠标光标在另一个线程创建的窗口上, ...

  7. 《剑指offer》面试题22—栈的压入、弹出序列

    <程序员面试宝典>上也有经典的火车进站问题,类似. 如果12345是压栈顺序,序列45321可能是出栈顺序,但序列43512不可能. 规律:对序列中任意元素n,排在n后且比n小的元素一定是 ...

  8. 我也来Show一下我的VisualStudio2017

    1.首先,在微软官方网站下载VS2017的安装程序,后续的安装将通过这个安装程序来引导.这里有三个版本可供选择:社区版.专业版和企业版,社区版免费,专业版和企业版可以免费体验,之后收费,当然,在中国盗 ...

  9. 从扫码支付想到的超级APP主宰一切,数据!数据!还是数据!

    前言 做室内定位的人其实内心都明白:基于指纹方法的移动端定位,无论paper每年出来多少,距离真正的大规模应用的距离还有多么遥远.指纹采集,指纹更新,似乎在生产实践上就是不可能的难题.所有还在基于人工 ...

  10. 一次偶然的点开一盏灯引发的SEO初识

    事情是这样,不小心点开了dev tools的审计(audits)面板,点开了灯之后,画风如下 emmm, SEO 跑了满分也,好奇宝宝就往下滚到SEO区域,发现了如下新大陆 嗯,原来是应用满足了打钩的 ...