JDBC操作MySQL数据库案例

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement; import org.junit.Test; public class JDBCTest {
@Test
public void test() throws Exception {
Connection con = null;//定义引用
Statement stmt = null;
ResultSet rs = null;
//规范的代码格式,try catch finally
try {
String driverClassName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/exam";
String username = "root";
String password = "123"; Class.forName(driverClassName); //加载
con = DriverManager.getConnection(url, username, password); //连接
stmt = con.createStatement(); //可以理解为创建SQL语句发射器 //executeUpdate方法,可以执行增删改语句(INSERT, UPDATE, DELETE),返回被改变的记录条数
String sql="DELETE FROM stu";
int r = stmt.executeUpdate(sql);
System.out.println("共删除了"+r+"条记录!"); //executeQuery方法,用于执行查询操作(SELECT),返回结果集
String sql2="select * from emp";
rs = stmt.executeQuery(sql2);
while(rs.next()) { //把光标向下移动一行,并判断下一行是否存在!
int empno = rs.getInt(1); //通过列编号来获取该列的值!
String ename = rs.getString("ename"); //通过列名称来获取该列的值
double sal = rs.getDouble("sal");
System.out.println(empno + ", " + ename + ", " + sal);
}
} catch(Exception e) {
throw new RuntimeException(e);
} finally {
// 一定要关闭!!!!!!
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(con != null) con.close();
}
}
@Test
/**
* 预处理方式
* 优点:灵活,效率高,防SQL攻击
* SQL攻击例子:
* 若:sql = "select * from t_user where username='" + username + "' and password='" + password + "'";
* username = "a' or 'a'='a";
* password = "a' or 'a'='a";
* 最后拼成的语句为:
* select * from t_user where username='a' or 'a'='a" and password='a' or 'a'='a'
* 永远为true。
*/
public void test2() throws Exception {
Connection con = null;//定义引用
ResultSet rs = null;
PreparedStatement pstmt=null;
try {
String driverClassName = "com.mysql.jdbc.Driver";
//mysql默认预处理是关闭的,加上这两个参数之后可以开启预处理
String url = "jdbc:mysql://localhost:3306/exam?useServerPrepStmts=true&cachePrepStmts=true";
String username = "root";
String password = "123";
Class.forName(driverClassName);
con = DriverManager.getConnection(url, username, password); String sql="select * from emp where empno=? and job=?";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, 1001);
pstmt.setString(2, "文员");
rs =pstmt.executeQuery();
if(rs.next())
{
System.out.println(rs.getString("ename"));
}
} catch(Exception e) {
throw new RuntimeException(e);
} finally {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(con != null) con.close();
}
}
}

JDBC操作MySQL数据库案例的更多相关文章

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

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

  2. 原生Jdbc操作Mysql数据库开发步骤

    原生Jdbc操作Mysql数据库开发步骤 原生的Jdbc就是指,不使用任何框架,仅用java.sql包下的方法实现数据库查询等的操作. 下面是开发步骤:        1.导入数据库驱动包       ...

  3. java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据

    package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...

  4. 使用JDBC操作MySQL数据库

    一.JDBC简介 JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组 ...

  5. 原生jdbc操作mysql数据库详解

    首先给大家说一下使用JDBC链接数据库的步骤 1.加载链接数据库驱动 2.建立数据库链接 3.创建数据库操作对象 4.编写sql语句,执行sql语句 5.获取结果集 6.释放资源 我这边采用的是mav ...

  6. JavaWeb用Jdbc操作MySql数据库(一)

    一.添加开发包.在JavaWeb中用jdbc操作数据库,使用方法与java一样,但是在处理开发包的问题上有点差别.JavaWeb不能将mysql-connector-java-5.1.7-bin.ja ...

  7. Java学习笔记(十一)——通过JDBC操作mysql数据库

    [前面的话] 时间总是好快,每次都感觉还没有怎么好好去过,对于好多事情,希望自己可以做的更多一点.心情能够好一点,平淡一点就行了. 学习过程中的知识点总结,基础知识,选择阅读. [JDBC定义] 定义 ...

  8. Java第三十五天,用JDBC操作MySQL数据库(一),基础入门

    一.JDBC的概念 Java DataBase Connectivity 从字面意思我们也不难理解,就是用Java语言连接数据库的意思 JDBC定义了Java语言操作所有关系型数据库的规则(接口).即 ...

  9. JavaEE系列之(三)JDBC操作MySQL数据库

    一.JDBC简介        JDBC(Java Data Base Connectivity)java数据库连接        SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库 ...

随机推荐

  1. properties配置文件的读取和写入

    /** * 类名:PropertiesUtil * 功能:提供对properties配置文件的读取和写入 * @author ChengTao */package com.xy.xyd.rest.bi ...

  2. Delphi XE5 常见问题解答

    Delphi XE5 常见问题解答 有关于新即时试用的问题吗?请看看 RAD Studio 即时试用常见问答. 常见问题 什么是 Delphi? Embarcadero? Delphi? XE5 是易 ...

  3. 手记-数学分析(高等数学)中有关算法效率的公式列举(O,Θ,Ω)

      权当数据结构与算法分析的学习手记     系数为一的幂级数部分和公式 ∑ n2 = 12 + 22 + 32 + ... + n2 = n(n+1)(2n+1)/6 = O(n3) ∑ n3 =  ...

  4. 6.js模式-中介者模式

    1. 中介者模式 所有对象通过中介者进行通信 var playDirector = (function(){ var players = []; var options = {}; options.a ...

  5. 关闭window 8.1 的skydrive

    gpedit.msc-->计算机配置-->管理模板-->windows组件 -->skydrive-->阻止使用skydrive执行文件存储

  6. repeater 相关问题

    1.如果添加控件会显示代码有问题,把双引号(“)改为单引号(‘)就可以了

  7. codeforces 492C. Vanya and Exams 解题报告

    题目链接:http://codeforces.com/problemset/problem/492/C 题目意思:给出 3 个整数:n,  r,  avg.然后有 n 行,每行有两个数:第 i 行有 ...

  8. 【leetcode】Binary Search Tree Iterator(middle)

    Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ro ...

  9. 【编程题目】在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。

    第 17 题(字符串):题目:在一个字符串中找到第一个只出现一次的字符.如输入 abaccdeff,则输出 b. 思路:此题非常容易. 最开始是想开辟一块空间存储每个字符出现的次数. 但转念一想,似乎 ...

  10. 【资料】Boost的资料

    http://blog.csdn.net/pongba/article/details/1561110