内容:供程序员调用的接口与类,集成在java.sql和javax.sql包中,如:
DriverManager类
Connection接口
Statement接口
ResultSet接口

1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

2.Connection conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databasename=data", "sa", "123");

Statement stm=con.createStatement();
String sql="select * from users where username='"+name+"' and userpwd="+pwd;
ResultSet rs=stm.executeQuery(sql);
if(rs.next()){
System.out.println("成功");
}else{
System.out.println("不成功");
}

//得到连接Connection
public static Connection getConn(){
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");//加载驱动包

conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger");
//创建连接数据库的流

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return conn;
}
/*关闭连接的方法:先关结果集 再关船 再关连接
* 铁船继承普通船
*/
public static void closeConn(ResultSet rs,Statement st,Connection conn){

try {
if(rs!=null){
rs.close();
}
if(st!=null){
st.close();
}
if(conn!=null){
conn.close();
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

//1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.建连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");

/*3.准备sql语句:
* 一次插入50条数据
*/
String sql = "insert into student values(seq_stu.nextval,?,?,?,to_date(?,'yyyy-mm-dd'),?)";

//4.创建铁船
PreparedStatement pst = conn.prepareStatement(sql);
for(int i=0;i<50;i++){
pst.setString(1, "小菜"+i);
pst.setString(2, "女");
pst.setDouble(3, 100.0);
pst.setString(4, "1900-1-1");
pst.setString(5,"马兰山马兰坡");
//把数据存入Batch容器
pst.addBatch();
}
int[] arr = pst.executeBatch();

///*5.执行sql语句并返回结果
if(arr.length>=50){
System.out.println("添加成功");
}

//6.关连接
pst.close();
conn.close();
System.out.println("程序结束");

事务:
public static void main(String[] args) throws Exception {
//1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.建连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
System.out.println(conn);
//开启事务:设置不自动提交
conn.setAutoCommit(false);

/*3.准备sql语句:
* 小强1的钱减少100
* 小强3的钱增加100
*/
String sql = "update student set stu_money=stu_money-100 where stu_id=23";
String sql2 = "update student set stu_money=stu_money+100 where stu_id=24";

//4.创建Statement;普通船
Statement st = conn.createStatement();

///*5.执行sql语句并返回结果

int a = st.executeUpdate(sql);
int b = st.executeUpdate(sql2);

if(a>0&&b>0){
//如果两个操作都成功了 提交事 务
conn.commit();
}else{
//回滚:恢复到原来的状态
conn.rollback();
}

//6.关连接
st.close();
conn.close();
System.out.println("程序结束");

}

Java:JDBC操作的更多相关文章

  1. java jdbc操作数据库通用代码

    1.准备工作 1> 新建一个配置文件,名为jdbc.properties将其放入src中 2>在项目中导入jdbc驱动,注意连接不同的数据库,所用到的驱动是不一样的,这些在网上都能找到 具 ...

  2. Java jdbc 操作数据库详解

    原文地址https://www.cnblogs.com/huguodong/p/5910859.html JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  3. java JDBC操作MySQL数据库

    一,首先在MYSQL建立一个数据库,例如Geek99DB: create database Geek99DB; use Geek99DB; 然后建立一个表CustomerTab: create tab ...

  4. Java -- JDBC 操作mysql数据库

    1. Demo1 导包时 不要导具体的mysql包, 为了兼容性,导JDBC 中 sql的包既可以了. public class Demo1 { /** * @param args * @throws ...

  5. Java JDBC 操作二进制数据、日期时间

    二进制数据 mysql提供了四种类型来存储二进制数据: TinyBlob    最多可存储255字节 Blob   最多可存储65KB MediumBlob    最多可存储16MB LongBlob ...

  6. Java JDBC数据库链接

    好久没有编写有关数据库应用程序啦,这里回顾一下java JDBC. 1.使用Java JDBC操作数据库一般需要6步: (1)建立JDBC桥接器,加载数据库驱动: (2)连接数据库,获得Connect ...

  7. Java的JDBC操作

    Java的JDBC操作 [TOC] 1.JDBC入门 1.1.什么是JDBC JDBC从物理结构上来说就是java语言访问数据库的一套接口集合,本质上是java语言根数据库之间的协议.JDBC提供一组 ...

  8. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  9. Java JDBC批处理插入数据操作

    在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及 ...

  10. java jdbc数据库操作

    package shb.java.demo3; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQ ...

随机推荐

  1. 【codeforces 367C】Sereja and the Arrangement of Numbers

    [题目链接]:http://codeforces.com/problemset/problem/367/C [题意] 我们称一个数列a[N]美丽; 当且仅当,数列中出现的每一对数字都有相邻的. 给你n ...

  2. 2015 Multi-University Training Contest 4 hdu 5335 Walk Out

    Walk Out Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  3. HTML5实战与剖析之媒体元素(3、媒体元素的事件及方法)

    HTML5中的媒体元素除了拥有非常多的属性之外,video标签和audio标签还能够出发非常多事件和方法. 这些方法监控着不同的属性的变化,这些变化有可能是媒体播放的结果,也可能是用户操作媒体的结果. ...

  4. Swift中实现Array数组和NSArray数组的相互转换与遍历

    Array是Swift中的数组数据类型.而NSArray是OC中的数组数据类型.两者有差别有联系.在Swift中有时候难免会使用到OC中的一些东西.今天我们就来Swift中使用NSArray和Arra ...

  5. HDU 1114 Piggy-Bank(一维背包)

    题目地址:HDU 1114 把dp[0]初始化为0,其它的初始化为INF.这样就能保证最后的结果一定是满的,即一定是从0慢慢的加上来的. 代码例如以下: #include <algorithm& ...

  6. hdu 1075 What Are You Talking About(map)

    What Are You Talking About Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 102400/204800 K ...

  7. JS实现文字图片无缝滚动

    今天做项目遇到一个滚动的效果,本来打算用marquee做的,因为它是html自带的标签,写起来简单,但是有一个问题就是marquee不能实现无缝滚动,上网找了一些方法,发现marquee可以实现无缝, ...

  8. Activity的启动模式和onNewIntent()

    1:首先,在默认情况下,当您通过Intent启到一个Activity的时候,就算已经存在一个相同的正在运行的Activity,系统都会创建一个新的Activity实例并显示出来.为了不让Activit ...

  9. sql sever 创建临时表的两种方法

    创建临时表       方法一:     create table #临时表名( 字段1 约束条件,             字段2 约束条件,                  .....)     ...

  10. Xrdp - 通过Windows的RDP连接Linux远程桌面(Ubuntu/CentOS/Redhat 7)(转载)

            您多久访问一次Linux桌面? 您使用什么工具来访问远程桌面? Xrdp是一个开源工具,允许用户通过Windows RDP访问Linux远程桌面. 除了Windows RDP之外,xr ...