七,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. mysql客户首末单时间 group by用法_20160927

    一.取用户第一次下单时间 SELECT city,username,`order_date` AS 首单日期,金额 AS 首单金额 FROM ( SELECT city,username,`order ...

  2. ACM学习历程—POJ1151 Atlantis(扫描线 && 线段树)

    Description There are several ancient Greek texts that contain descriptions of the fabled island Atl ...

  3. bzoj4555: 求和sum 快速傅立叶变换

    题目大意 给定\(S(n,m)\)表示第二类斯特林数,定义函数\(f(n)\) \[f(n) = \sum_{i=0}^n\sum_{j=0}^iS(i,j)*2^j*(j!)\] 给定正整数\(n, ...

  4. 洛谷【P2664】树上游戏

    浅谈树分治:https://www.cnblogs.com/AKMer/p/10014803.html 题目传送门:https://www.luogu.org/problemnew/show/P266 ...

  5. poj2356Find a multiple——鸽巢定理运用

    题目:http://poj.org/problem?id=2356 N个数,利用鸽巢定理可知应有N+1个前缀和(包括0),因此其%N的余数一定有重复: 同余的两个前缀和之差一定为N的倍数,据此得出答案 ...

  6. SpringMVC之六:Controller详细介绍

    一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Mo ...

  7. java web路径分析

    绝对路径:以/开头的路径就叫做绝对路径,绝对路径在相对于的路径上直接拼接得到最终的路径 相对路径:不以/开头的路径就叫做相对路径,相对路径基于当前所在的路径计算的到最终的路径 硬盘路径:以盘符开头的路 ...

  8. Java创建线程的三种方法比较

    一般有三种方法,Thread,Runnable,Callable. Runnable和Callable的区别 (1)Callable规定的方法是call(),Runnable规定的方法是run(). ...

  9. 《Java多线程编程核心技术》读后感(八)

    不使用等待/通知机制实现线程间通信 使用sleep()结合while(true)死循环来实现多个线程间通信 package Third; import java.util.ArrayList; imp ...

  10. 数组,for语句(补10.11)

    1.数组定义:一系列通数据类型的数据集合. 2.数组赋值的两种方法: 先定义后赋值:(赋值从0开始) var aa = new Arrey(); aa[0] = 1; aa[1] = 2; 定义并赋值 ...