七,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. create-react-app使用的问题

    // 设置 npm config set registry https://registry.npm.taobao.org // 验证是否成功 npm config get registry或npm ...

  2. Django 发送email配置详解及各种错误类型

    跟随Django Book的内容发送邮件不成功,总结一下需要配置好settings.py文件,还要注意一些细节. 1.在settings文件最后添加以下内容,缺一不可! EMAIL_HOST= 'sm ...

  3. mina2中的线程池

    一.Mina中的线程池模型 前面介绍了Mina总体的层次结构,那么在Mina里面是怎么使用Java NIO和进行线程调度的呢?这是提高IO处理性能的关键所在.Mina的线程调度原理主要如下图所示: A ...

  4. state estimation for robotics-1

    概率论是探讨SLAM的一个重要的工具,概率密度函数的概率意义在于它能够描述一个随机变量位于任意区间的概率. p(x<=x<=x+dx)≍p(x).dx(由拉格朗日中值定理)

  5. dialog 设置maxHeight 最大高度

    WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Displ ...

  6. qemu编译

    符号说明 $ 表示在用户模式下执行命令 # 表示在root模式下执行命令 ### 表示注释用于解释接下来一条命令的作用 更新环境源 设置阿里源 $ sudo mv /etc/yum.repos.d/C ...

  7. 给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。

    题目描述 给出每个员工每年薪水涨幅超过5000的员工编号emp_no.薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列. 提示:在s ...

  8. ue4 简单数据储存

  9. php如何判断文件是否存在,包括本地和远程文件

    当检查的文件是本地时用PHP自带的file_exists检查就行了,而此函数只能检查本地的函数是否存在, 所以如果要检查远程的文件是否存在只能用其它的方法了. 如果所服务器中php的配置开启了“all ...

  10. 计蒜课/UCloud 的安全秘钥(hash)

    题目链接:https://nanti.jisuanke.com/t/15768 题意:中文题诶- 思路:直接hash就好了,当时zz了没想到... 代码: #include <iostream& ...