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对日期/时间做了封装,此类提供了对年.月.日.时.分.秒 ...
随机推荐
- GridView利用PagerTemplate做分页显示设置上一页下一页转到下拉转页
效果如图: 代码如下: aspx页: <asp:GridView ID="GridViewMain" runat="server" OnPageIndex ...
- 语言模型kenlm的训练及使用
一.背景 近期研究了一下语言模型,同事推荐了一个比较好用的工具包kenlm,记录下使用过程. 二.使用kenlm训练 n-gram 1.工具介绍:http://kheafield.com/code/k ...
- 一些LINQ的使用
var list = from staff in staffList from extraRecord in extraList where staff.staffID == extraRecord. ...
- IIS部署遇到的一些问题
IIS部署时候会遇到一些具体的问题,记录一下.此处的部署环境为Windows Server 2012 64位版本 1.基本部署:角色和功能管理-->web服务器,勾选相应的服务与功能,然后安装即 ...
- dubbo实践
最近公司准备重构内部服务模块,准备使用dubbo,故研究一下. 官方文档:http://alibaba.github.io/dubbo-doc-static/Home-zh.htm 1. 用maven ...
- PYTHON lambda表达式
lambda相当于def定义函数 一一对应
- angularjs向后台传递数据,与后端进行交互
angularjs之数据交互 function loadLeftFirstNodes (){ $http.get(sourceUrl,{ params:{ mpId: mpId, visits: ce ...
- JS验证只能输入数字,数字和字母等的正则表达式
JS判断只能是数字和小数点 0.不能输入中文1)<input onpaste="return false;" type="text" name=" ...
- powershell例子
例子如下: $ErrorActionPreference="Stop" function getlist{ ls D:\tmp2|select name,extension,ful ...
- 算法练习_图的连通性问题(JAVA)
一.问题 1.问题描述: 有n个点(1...n),输入整数对(8,9),表示8,9点之间存在相互的连接关系. 动态连通性问题--编写一段程序过滤掉所以无意义的整数对,即为在不破坏图连通性的前提下,以最 ...