java连接mysql(一)
import java.sql.*; public class MysqlTest
{
public static void main(String[] args) throws SQLException,ClassNotFoundException{
// TODO Auto-generated method stub String url = "jdbc:mysql://localhost/xh";
String username = "xiaohengdada";
String password = "123456";
//DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Class.forName("org.gjt.mm.mysql.Driver"); Connection connection = DriverManager.getConnection(url,username,password); Statement stat = connection.createStatement(); // 执行查找操作
ResultSet rsResultSet = stat.executeQuery("select * from students"); while (rsResultSet.next()) {
System.out.println("id = "+ rsResultSet.getObject("id"));
System.out.println("name = "+ rsResultSet.getObject("name"));
System.out.println("sex = "+ rsResultSet.getObject("sex"));
System.out.println("age = "+ rsResultSet.getObject("age"));
} // 执行更新操作
String sql = "update students set name = 'xiaoheng' where name = 'Ender'";
System.out.println(sql);
int statentnum = stat.executeUpdate(sql);
System.out.println(statentnum);
if (statentnum>0) {
System.out.println("update ok");
} // 执行删除操
sql = "delete from students where name = 'Peter'";
System.out.println(sql);
statentnum = stat.executeUpdate(sql);
System.out.println(statentnum);//为什么这里输出的结果为0
if (statentnum>0) {
System.out.println("delete ok");
} //执行插入操作
sql="insert into students values(8,'nimeide','fema','255')";
System.out.println(sql);
statentnum = stat.executeUpdate(sql);
System.out.println(statentnum);//为什么这里输出的结果为0
if (statentnum>0) {
System.out.println("insert ok");
} // 资源的释放
rsResultSet.close();
stat.close();
connection.close();
}
}
上面相当于普通的交互过程,每处理一条数据,就需要访问一次数据库。
故可采用批处理和事务来进行处理。
批处理:累积到一定数量,再一次性提交到数据库,减少了与数据库的交互操作,所以效率会提高。
事务:事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功,默认是关闭事务的。
SQL 注入的防范
SQL 注入是用户利用某些系统没有对输入数据进行充分的检查,从而进行恶意破坏的行为。
1、statement存在sql注入攻击问题,例如登陆用户名采用' or 1=1 or username=‘
2、对于防范 SQL 注入,可以采用PreparedStatement取代Statement。
PreparedStatement
PreperedStatement是Statement的孩子,它的实例对象可以通过调用Connection.preparedStatement()方法获得,相对于Statement对象而言的优势:
(1) 防止SQL注入:PreperedStatement可以避免SQL注入的问题。
(2) 预编译SQL语句:Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。PreparedStatement 可对SQL进行预编译,从而提高数据库的执行效率。
(3) 使用占位符简化语句:并且PreperedStatement对于sql中的参数,允许使用占位符的形式进行替换,简化sql语句的编写。 (例如多次循环插入数据)
java连接mysql(一)的更多相关文章
- java连接mysql
Java 连接 MySQL 需要驱动包,最新版下载地址为:http://dev.mysql.com/downloads/connector/j/,解压后得到jar库文件,然后在对应的项目中导入该库文件 ...
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- java 连接 MySQL
java 连接 MySQL 1.准备工作 需要下载的工具: MySQL:http://www.mysql.com/downloads/ MySQL的可视化工具SQLyog:https://www.we ...
- Java连接MySQL数据库及简单操作代码
1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...
- 转载:Java连接MySQL 数据库的正确操作流程
转载网址:http://www.bitscn.com/pdb/mysql/201005/186551.html 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例 ...
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- 【JDBC】Java 连接 MySQL 基本过程以及封装数据库工具类
一. 常用的JDBC API 1. DriverManager类 : 数据库管理类,用于管理一组JDBC驱动程序的基本服务.应用程序和数据库之间可以通过此类建立连接.常用的静态方法如下 static ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- Java 连接 MySQL 数据库
最近想学习一下 Java 连接 MySQL 数据库,于是有了这样的一些问题&解决办法. 首先是解决 JDBC(Java Data Base Connectivity)驱动问题,因为默认安装的J ...
- java连接mysql的过程
今天突然心血来潮,想要用java连接mysql,记得以前是在vs2010的环境下用C#连接sql sever,其实他们的方法都差不多. 现在就可以简单的介绍下java如何连接mysql 第一步,设计m ...
随机推荐
- linux下的缓存机制及清理buffer/cache/swap的方法梳理
(1)缓存机制 为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接 ...
- 使用c#创建php可以调用的dll
1. 创建一个 C# Class Library ,命名为:ClassLibraryDemo 2. 打开项目的属性,在点选左边的 “Application”(就是第一个tab) , 然后点击 Asse ...
- [6]Telerik TreeView 复选框
参考连接:http://demos.telerik.com/aspnet-mvc/razor/treeview/clientsideapi 问题: Telerik TreeView 选择或取消 父选项 ...
- Linux Linux程序练习十二(select实现QQ群聊)
//头文件--helper.h #ifndef _vzhang #define _vzhang #ifdef __cplusplus extern "C" { #endif #de ...
- C语言 字符串操作两头堵模型
//字符串操作两头堵模型练习 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #inc ...
- 【Mysql】 my.ini配置一例
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-co ...
- 小程序基础09:视图层之WXML
1.WXML WXML是框架设计的一套标签语言,结合基础组件,事件系统,可以构建出页面的结构. 用以下的例子来看看WXML有什么能力: 1.1数据绑定 <view>{{age}}</ ...
- 访问图片可以使用闭包map
1 imageView.animationImages = [ UIImage(named:"panda1"), UIImage(named:"panda2") ...
- unity3d 赛车游戏——复位点检测优化、反向检测、圈数检测、赛道长度计算
接着上一篇文章说 因为代码简短且思路简单 所以我就把这几个功能汇总为一篇文章 因为我之前就是做游戏外挂的 经过验证核实,**飞车的复位点检测.圈数检测就是以下的方法实现的 至于反向检测和赛道长度计算, ...
- EF实体框架之CodeFirst三
前两篇博客学习了数据库映射和表映射,今天学习下数据库初始化.种子数据.EF执行sql以及执行存储过程这几个知识. 一.数据库初始化策略 数据库初始化有4种策略 策略一:数据库不存在时重新创建数据库 D ...