JDBC操作MySQL数据库案例
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数据库案例的更多相关文章
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- 原生Jdbc操作Mysql数据库开发步骤
原生Jdbc操作Mysql数据库开发步骤 原生的Jdbc就是指,不使用任何框架,仅用java.sql包下的方法实现数据库查询等的操作. 下面是开发步骤: 1.导入数据库驱动包 ...
- java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据
package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...
- 使用JDBC操作MySQL数据库
一.JDBC简介 JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组 ...
- 原生jdbc操作mysql数据库详解
首先给大家说一下使用JDBC链接数据库的步骤 1.加载链接数据库驱动 2.建立数据库链接 3.创建数据库操作对象 4.编写sql语句,执行sql语句 5.获取结果集 6.释放资源 我这边采用的是mav ...
- JavaWeb用Jdbc操作MySql数据库(一)
一.添加开发包.在JavaWeb中用jdbc操作数据库,使用方法与java一样,但是在处理开发包的问题上有点差别.JavaWeb不能将mysql-connector-java-5.1.7-bin.ja ...
- Java学习笔记(十一)——通过JDBC操作mysql数据库
[前面的话] 时间总是好快,每次都感觉还没有怎么好好去过,对于好多事情,希望自己可以做的更多一点.心情能够好一点,平淡一点就行了. 学习过程中的知识点总结,基础知识,选择阅读. [JDBC定义] 定义 ...
- Java第三十五天,用JDBC操作MySQL数据库(一),基础入门
一.JDBC的概念 Java DataBase Connectivity 从字面意思我们也不难理解,就是用Java语言连接数据库的意思 JDBC定义了Java语言操作所有关系型数据库的规则(接口).即 ...
- JavaEE系列之(三)JDBC操作MySQL数据库
一.JDBC简介 JDBC(Java Data Base Connectivity)java数据库连接 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库 ...
随机推荐
- QPS计算方法
2016年3月14日 13:55:39 星期一 好久没写文章了, 神烦.....
- jquery单选框radio值改变change事件
2015年11月25日 13:39:03 $().ready(function(){ //默认显示#input_div if ($("input[name='type']:checked&q ...
- 使用eclipse开发的兼容性配置
通常使用eclipse开发程序的时候,正常情况下放到Linux中运行一般是没有什么问题,最明显的就是编码问题,这个一般都会统一为utf-8,另外还有Windows和Linux的换行符不同的原因,还有当 ...
- Enum:EXTENDED LIGHTS OUT(POJ 1222)
亮灯 题目大意:有一个5*6的灯组,按一盏灯会让其他上下左右4栈和他自己灯变为原来相反的状态,要怎么按才会把所有的灯都按灭? 3279翻版题目,不多说,另外这一题还可以用其他方法,比如DFS,BFS, ...
- oracle触发器设置uuid变量
create or replace trigger tri_org_department after insert or update on bjlt.sys_org for each row dec ...
- objective-c数组笔记
数组与可变数组 2015年6月14日 1.数组 数组的初始化方式 1.初始化一个空数组 NSArray *array = [[NSArray alloc] init];//不可变数组,数组内不可以添加 ...
- [Android Pro] linux下查看一个文件的属性(ls,lsattr,file,stat)
reference to : http://blog.chinaunix.net/uid-28458801-id-4615294.html 查看文件属性有多种方法,且这些方法中偏向不同,具体如下: 1 ...
- TortoiseSVN中Branching和Merging实践
转自:http://blog.csdn.net/eggcalm/article/details/6606520 使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及 ...
- Android 图片闪烁(延迟切换)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...
- iPad开发(Universal Applications)
一.iPad 1.判断是否在iPad上 BOOL iPad = ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdi ...