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操作数据库 ...
随机推荐
- MPlayer-2016-bin-noConsole
运行 Install-RMenu.cmd 添加右键播放功能 ; 往前0.05秒 大概10多个帧 ' 往后0.05秒 大概10多个帧 鼠标右键 快速定位 鼠标中键 退出 F1 缩小 F2 原始大小 F3 ...
- DataStage
parallel job shell调用:dsjob ./dsjob -run -mode NORMAL -paramfile xxx.param <PROJECT> <JOB> ...
- ABAP ALV单个单元格状态编辑-简单版本
*&---------------------------------------------------------------------* *& Report ZPPR0024 ...
- NHibernate实战详解(一)领域模型设计
关于NHibernate的资料本身就不多,中文的就更少了,好在有一些翻译文章含金量很高,另外NHibernate与Hibernate的使用方式可谓神似,所以也有不少经验可以去参考Hibernate. ...
- 【leetcode】Distinct Subsequences(hard)
Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...
- 【leetcode】 Palindrome Partitioniong (middle) (*^__^*)
Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...
- 使用charles 抓取手机上的操作
Charles上的设置要截取iPhone上的网络请求,我们首先需要将Charles的代理功能打开.在Charles的菜单栏上选择“Proxy”->“Proxy Settings”,填入代理端口8 ...
- windows系统查看80端口被占用的程序并结束该程序运行
一.背景 最近系统更新以后,我在Idea中适用80端口启动项目的时候发现80端口被占用了,就查了资料看怎么找到占用80端口的程序并结束其运行,下面把解决方式共享给大家. 二.解决步骤 1.首先打开控制 ...
- iOS 设备的屏幕尺寸一览
最近在做iPad开发项目 iPhone 设备: iPhone 1G --- 320x480iPhone 3G --- 320x480iPhone 3GS --- 320x480iPhone 4 --- ...
- 《Thinking in Java》十四章类型信息_习题解
1~10 Page 318 练习1. 在ToyTest.java中,将Toy的默认构造器注释掉,并解释发生的现象. 书中代码如下(略有改动): package org.cc.foo_008; p ...