Java 之 数据库编程(JDBC)
1.JDBC
a.定义:是一种用于执行SQL语句的Java API,它由一组用Java 语言编写的类和接口组成
b.操作步骤:
①加载驱动——告诉驱动管理器我们将使用哪一个数据库的驱动包
Class.forName("com.mysql.jdbc.Driver"); // try - catch
②操作JDBC API完成数据库动作
常用方法:Connection:连接
Statement:语句对象
ResultSet:查询语句返回的结果集
//2-1、获取连接
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test134" +
"?useUnicode=true&characterEncoding=utf8&useSSL=false", "root", "root");
//2-2、书写SQL语句---字符串拼接、
String sql = "insert into t_class(f_classname,f_teacher) values('"+className+"','"+teacherName+"')";
//2-3、获取语句对象---Statement对象
Statement state = con.createStatement();
//2-4、执行语句对象---所有的DML语句,全部执行executeUpdate()方法
int row = state.executeUpdate(sql); //返回的int代表影响了多少行!
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
//2-5、关闭连接
if(con != null){
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
注:以上是 增、删、改 的方法,查询需要用到一下语句
ResultSet rs = state.executeQuery(sql);
c. url:
①定义:统一资源定位符
②样式:协议 : // ip地址 : 端口号 / 服务
jdbc:mysql://127.0.0.1:3306/test134
2.PreparedStatement——预编译语句
a.特点:①可以完全替代statement,执行executeUpdate()和executeQuery()
②解决SQL注入问题
③因为在执行之前就把语句和String SQL绑定上(交给数据库预先编译了),执行时不能再改变SQL的结构
b.注意:①?是用来替代语句中的数据值的位置,不能替代跟结构有关的任何内容
②使用?替代字符串值的时候,不能打引号
③不要滥用预编译,预编译语句过多也会影响数据库性能;当数据值是由外部文本输入的时候,才用它
String sql = "select * from t_user where f_username=? and f_password=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2, pwd);
ResultSet rs = ps.executeQuery();
3.事务——Transaction
a.定义:是JDBC中的一种,让多条SQL语句作为一个整体,必须整体成功或整体失败
b.作用:主要控制的是DML语句,需要保证数据的完整性;DQL语句可以不参与事务
c.步骤:事务操作分为三步——这三步都由一个对象完成——Connection
1.开启事务——设置自动提交为假
con.setAutoCommit( false );
2.整体提交
con.commit();
3.在Catch块中,整体回滚
con.rollback;
Java 之 数据库编程(JDBC)的更多相关文章
- Java操作数据库——在JDBC里使用事务
Java操作数据库——在JDBC里使用事务 摘要:本文主要学习了如何在JDBC里使用事务. 使用Connection的事务控制方法 当JDBC程序向数据库获得一个Connection对象时,默认情况下 ...
- Java操作数据库——使用JDBC连接数据库
Java操作数据库——使用JDBC连接数据库 摘要:本文主要学习了如何使用JDBC连接数据库. 背景 数据持久化 数据持久化就是把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应 ...
- JAVA数据库编程(JDBC技术)-入门笔记
本菜鸟才介入Java,我现在不急着去看那些基本的语法或者一些Java里面的版本的特征或者是一些晋级的知识,因为有一点.Net的OOP编程思想,所以对于Java的这些语法以及什么的在用到的时候在去发现学 ...
- Java数据库编程(JDBC)
一.使用Java对数据库的操作步骤: 1.根据应用程序的数据库类型,加载相应的驱动: 2.连接到数据库,得到Connection对象: 3.通过Connection创建Statement对象: 4.使 ...
- JavaSE学习总结(九)—— Java访问数据库(JDBC)
一.JDBC简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java ...
- java 的数据库操作--JDBC
一.java与数据库的交互 1.jdbc:java data base connectivity,java数据库连接.java的JDBC操作主要通过操作两个类进行连接操作:Connection 和 S ...
- [Java] 数据库编程JDBC
背景 持久化:把Java对象保存在硬盘中 序列化:将对象转换为二进制对象,再保存 保存在关系型数据库中 Object-Relational Mapping(对象-关系映射框架,或ORM框架):把对象属 ...
- Java操作数据库之JDBC增删改查
1.java连接MySql数据库 代码区域: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...
- 【Java 与数据库】JDBC中日期时间的处理技巧
JDBC中日期时间的处理技巧 详谈Java.util.Date和Java.sql.Date 基础知识 Java中用类java.util.Date对日期/时间做了封装,此类提供了对年.月.日.时.分.秒 ...
随机推荐
- Redis安装测试(待完善)
1 Redis安装 在网址http://redis.io/下载redis-3.2.3.tar.gz,解压. 进入解压目录 编译和安装,具体配置项可参考自带的README.md文件 make test ...
- python之numpy
一.矩阵的拼接合并 列拼接:np.column_stack() >>> import numpy as np >>> a = np.arange(9).reshap ...
- php-fpm启动,重启,终止操作
最近安装了mysqli扩展,重启了nginx后,phpinfo()没有显示出mysqli,后来搞不出原因,直接使用了pdo连接数据库.直到今天安装redis后phpinfo()没有显示redis,内心 ...
- Lr IP欺骗设置
IP欺骗设置IP工具:IP Wizard 开启IP欺骗时会关闭DHCP(也就是关闭IP自动获取 更改为手动设置IP) 注:添加IP欺骗,和释放IP,都要重启机器后才会生效,IP Wizard要管理员身 ...
- 码途有道----基于系统观的核心能力构建-by-韩宏老师
原文链接:http://blog.sina.com.cn/s/blog_7d5a09f90102v341.html 有感于同学们在大学中如何学习计算机技术有些感概,将我书(老码识途)中的序言整理了一下 ...
- PHP 查看安装信息
1.运行PHP脚本,查看phpinfo函数的输出. 2.在系统环境变量Path中配好php.exe可执行文件的路径,命令管理器CMD中,执行`php.exe -i`查看. 3.在phpinfo()的输 ...
- 转:IOC框架
CSND上看了王泽滨的博客关于IOC的,觉得说的很透彻,地址为:http://blog.csdn.net/wanghao72214/article/details/3969594 1 IoC理论的背景 ...
- appStore上传苹果应用程序软件发布流程
如有疑问,或者需要人帮忙,可以到QQ群:460325065首先确定帐号是否能发布, https://developer.apple.com/account,如果你打开Provisioning Port ...
- Apache 服务器搭建 总结
安装素材准备:<1>下载jdk <2>下载apache2.0.55 <3>下载tomcat5.5 <4>下载jk(mod_jk-apache-2.0.5 ...
- FreeCodeCamp心得
<img> <input> tags are self-closing. So that there is only one tag without a slash i ...